@@ -39,6 +39,24 @@ WIN_LFLAGS="-DEBUG" # windows release compilation flags
3939# FLAGS="-g" # turn on symbols for all builds
4040FLAGS=" "
4141
42+ # Normalize Windows OSTYPE flavors. The GHA windows-2022 runner image now
43+ # reports "cygwin" (was "msys" before the recent bump). Both are git-bash-
44+ # like environments and we want every Windows check below to fire for any
45+ # of them. Without this, the script falls through to the macOS branch and
46+ # adds clang-only flags that MSVC then rejects with D8021.
47+ echo " OSTYPE=[$OSTYPE ]"
48+ case " $OSTYPE " in
49+ cygwin* ) OSTYPE=" msys" ;;
50+ esac
51+ echo " OSTYPE (normalized)=[$OSTYPE ]"
52+
53+ # Defensive: clear compiler-flag env vars on Windows. CMake reads CXXFLAGS
54+ # into CMAKE_CXX_FLAGS, and cl.exe also prepends $CL / appends $_CL_ to
55+ # every invocation. Cheap insurance against future env leaks.
56+ if [[ $OSTYPE == msys* ]]; then
57+ unset CXXFLAGS CFLAGS CL _CL_
58+ fi
59+
4260usage ()
4361{
4462 echo " usage: ./build_dependencies.sh [[-n=<num-procs>] [-i=<install_path>] [-b=<build_path>] [--clean] | [-h | --help]]"
@@ -136,8 +154,8 @@ build_vtk()
136154 patch -p1 < ${SCRIPT_DIR} /Support/vtk-9.5.patch
137155 if [[ $BUILD_CLEAN = 1 ]]; then rm -rf build; fi
138156 mkdir -p build && cd build
139- if [[ $OSTYPE == " msys" ]]; then
140- cmake -DCMAKE_CXX_FLAGS_RELEASE=" $WIN_CFLAGS " -DCMAKE_C_FLAGS_RELEASE=" $WIN_CFLAGS " -DCMAKE_SHARED_LINKER_FLAGS_RELEASE=" $WIN_LFLAGS " -DCMAKE_EXE_LINKER_FLAGS_RELEASE=" $WIN_LFLAGS " -DCMAKE_INSTALL_PREFIX=" ${INSTALL_DIR} " -DBUILD_SHARED_LIBS:BOOL=OFF -DBUILD_TESTING:BOOL=OFF -DVTK_Group_Qt:BOOL=ON -DVTK_QT_VERSION=5 -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DVTK_PYTHON_VERSION=3 -DVTK_GROUP_ENABLE_Qt=YES -DVTK_MODULE_ENABLE_VTK_GUISupportQtQuick:STRING=DONT_WANT -DVTK_MODULE_ENABLE_VTK_hdf5=NO -DBUILD_EXAMPLES:BOOL=OFF -DVTK_SMP_ENABLE_TBB=ON -DVTK_SMP_IMPLEMENTATION_TYPE=TBB -Wno-dev ..
157+ if [[ $OSTYPE == msys* ]]; then
158+ cmake -DCMAKE_CXX_FLAGS= " " -DCMAKE_C_FLAGS= " " - DCMAKE_CXX_FLAGS_RELEASE=" $WIN_CFLAGS " -DCMAKE_C_FLAGS_RELEASE=" $WIN_CFLAGS " -DCMAKE_SHARED_LINKER_FLAGS_RELEASE=" $WIN_LFLAGS " -DCMAKE_EXE_LINKER_FLAGS_RELEASE=" $WIN_LFLAGS " -DCMAKE_INSTALL_PREFIX=" ${INSTALL_DIR} " -DBUILD_SHARED_LIBS:BOOL=OFF -DBUILD_TESTING:BOOL=OFF -DVTK_Group_Qt:BOOL=ON -DVTK_QT_VERSION=5 -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DVTK_PYTHON_VERSION=3 -DVTK_GROUP_ENABLE_Qt=YES -DVTK_MODULE_ENABLE_VTK_GUISupportQtQuick:STRING=DONT_WANT -DVTK_MODULE_ENABLE_VTK_hdf5=NO -DBUILD_EXAMPLES:BOOL=OFF -DVTK_SMP_ENABLE_TBB=ON -DVTK_SMP_IMPLEMENTATION_TYPE=TBB -Wno-dev ..
141159 cmake --build . --config ${BUILD_TYPE} --parallel || exit 1
142160 cmake --build . --config ${BUILD_TYPE} --target install
143161 VTK_DIR=" ${INSTALL_DIR} /lib/cmake/vtk-${VTK_VER_STR} "
@@ -179,8 +197,8 @@ build_itk()
179197 if [[ $BUILD_CLEAN = 1 ]]; then rm -rf build; fi
180198 mkdir -p build && cd build
181199
182- if [[ $OSTYPE == " msys" ]]; then
183- cmake -DCMAKE_CXX_FLAGS_RELEASE=" $WIN_CFLAGS " -DCMAKE_C_FLAGS_RELEASE=" $WIN_CFLAGS " -DCMAKE_SHARED_LINKER_FLAGS_RELEASE=" $WIN_LFLAGS " -DCMAKE_EXE_LINKER_FLAGS_RELEASE=" $WIN_LFLAGS " -DCMAKE_INSTALL_PREFIX=" ${INSTALL_DIR} " -DBUILD_SHARED_LIBS:BOOL=OFF -DBUILD_TESTING:BOOL=OFF -DBUILD_EXAMPLES:BOOL=OFF -DVTK_DIR=" ${VTK_DIR} " -DITK_USE_SYSTEM_EIGEN=on -DEigen3_DIR=${EIGEN_DIR} -DModule_ITKVtkGlue:BOOL=ON -DModule_ITKDeprecated:BOOL=ON -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DModule_ITKIOHDF5=OFF -DITK_USE_SYSTEM_HDF5=ON -DZLIB_SYMBOL_PREFIX=" itkzlib_" -Wno-dev ..
200+ if [[ $OSTYPE == msys* ]]; then
201+ cmake -DCMAKE_CXX_FLAGS= " " -DCMAKE_C_FLAGS= " " - DCMAKE_CXX_FLAGS_RELEASE=" $WIN_CFLAGS " -DCMAKE_C_FLAGS_RELEASE=" $WIN_CFLAGS " -DCMAKE_SHARED_LINKER_FLAGS_RELEASE=" $WIN_LFLAGS " -DCMAKE_EXE_LINKER_FLAGS_RELEASE=" $WIN_LFLAGS " -DCMAKE_INSTALL_PREFIX=" ${INSTALL_DIR} " -DBUILD_SHARED_LIBS:BOOL=OFF -DBUILD_TESTING:BOOL=OFF -DBUILD_EXAMPLES:BOOL=OFF -DVTK_DIR=" ${VTK_DIR} " -DITK_USE_SYSTEM_EIGEN=on -DEigen3_DIR=${EIGEN_DIR} -DModule_ITKVtkGlue:BOOL=ON -DModule_ITKDeprecated:BOOL=ON -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DModule_ITKIOHDF5=OFF -DITK_USE_SYSTEM_HDF5=ON -DZLIB_SYMBOL_PREFIX=" itkzlib_" -Wno-dev ..
184202
185203 cmake --build . --config ${BUILD_TYPE} --parallel || exit 1
186204 cmake --build . --config ${BUILD_TYPE} --target install
@@ -216,8 +234,8 @@ build_xlnt()
216234 if [[ $BUILD_CLEAN = 1 ]]; then rm -rf build; fi
217235 mkdir -p build && cd build
218236
219- if [[ $OSTYPE == " msys" ]]; then
220- cmake -DCMAKE_CXX_FLAGS_RELEASE=" $WIN_CFLAGS " -DCMAKE_C_FLAGS_RELEASE=" $WIN_CFLAGS " -DCMAKE_SHARED_LINKER_FLAGS_RELEASE=" $WIN_LFLAGS " -DCMAKE_EXE_LINKER_FLAGS_RELEASE=" $WIN_LFLAGS " -DCMAKE_INSTALL_PREFIX=" ${INSTALL_DIR} " -DSTATIC=OFF ..
237+ if [[ $OSTYPE == msys* ]]; then
238+ cmake -DCMAKE_CXX_FLAGS= " " -DCMAKE_C_FLAGS= " " - DCMAKE_CXX_FLAGS_RELEASE=" $WIN_CFLAGS " -DCMAKE_C_FLAGS_RELEASE=" $WIN_CFLAGS " -DCMAKE_SHARED_LINKER_FLAGS_RELEASE=" $WIN_LFLAGS " -DCMAKE_EXE_LINKER_FLAGS_RELEASE=" $WIN_LFLAGS " -DCMAKE_INSTALL_PREFIX=" ${INSTALL_DIR} " -DSTATIC=OFF ..
221239 cmake --build . --config ${BUILD_TYPE} --parallel || exit 1
222240 cmake --build . --config ${BUILD_TYPE} --target install
223241 else
@@ -246,7 +264,7 @@ build_jkqtplotter()
246264 if [[ $BUILD_CLEAN = 1 ]]; then rm -rf build; fi
247265 mkdir -p build && cd build
248266
249- if [[ $OSTYPE == " msys" ]]; then
267+ if [[ $OSTYPE == msys* ]]; then
250268 cmake -DCMAKE_CXX_FLAGS=" -FS" -DCMAKE_C_FLAGS=" -FS" -DJKQtPlotter_BUILD_EXAMPLES=OFF -DCMAKE_INSTALL_PREFIX=" ${INSTALL_DIR} " ..
251269 cmake --build . --config ${BUILD_TYPE} --parallel || exit 1
252270 cmake --build . --config ${BUILD_TYPE} --target install
@@ -276,8 +294,8 @@ build_openvdb()
276294
277295 CONCURRENT_FLAG=" -DCONCURRENT_MALLOC=None"
278296
279- if [[ $OSTYPE == " msys" ]]; then
280- cmake -DCMAKE_CXX_FLAGS_RELEASE=" $WIN_CFLAGS " -DCMAKE_C_FLAGS_RELEASE=" $WIN_CFLAGS " -DCMAKE_SHARED_LINKER_FLAGS_RELEASE=" $WIN_LFLAGS " -DCMAKE_EXE_LINKER_FLAGS_RELEASE=" $WIN_LFLAGS " -DCMAKE_SHARED_LINKER_FLAGS_RELEASE=" $WIN_LFLAGS " -DUSE_BLOSC=OFF -DCMAKE_PREFIX_PATH=${CONDA_PREFIX} -DOPENVDB_CORE_STATIC=OFF -DUSE_EXPLICIT_INSTANTIATION=OFF -DOPENVDB_BUILD_BINARIES=OFF -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} ..
297+ if [[ $OSTYPE == msys* ]]; then
298+ cmake -DCMAKE_CXX_FLAGS= " " -DCMAKE_C_FLAGS= " " - DCMAKE_CXX_FLAGS_RELEASE=" $WIN_CFLAGS " -DCMAKE_C_FLAGS_RELEASE=" $WIN_CFLAGS " -DCMAKE_SHARED_LINKER_FLAGS_RELEASE=" $WIN_LFLAGS " -DCMAKE_EXE_LINKER_FLAGS_RELEASE=" $WIN_LFLAGS " -DCMAKE_SHARED_LINKER_FLAGS_RELEASE=" $WIN_LFLAGS " -DUSE_BLOSC=OFF -DCMAKE_PREFIX_PATH=${CONDA_PREFIX} -DOPENVDB_CORE_STATIC=OFF -DUSE_EXPLICIT_INSTANTIATION=OFF -DOPENVDB_BUILD_BINARIES=OFF -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} ..
281299 cmake --build . --config ${BUILD_TYPE} || exit 1
282300 cmake --build . --config ${BUILD_TYPE} --target install
283301 elif [[ " $OSTYPE " == " linux" * ]]; then
@@ -317,7 +335,7 @@ build_geometry_central()
317335 if [[ $BUILD_CLEAN = 1 ]]; then rm -rf build; fi
318336 mkdir -p build && cd build
319337
320- if [[ $OSTYPE == " msys" ]]; then
338+ if [[ $OSTYPE == msys* ]]; then
321339 cmake -DCMAKE_CXX_FLAGS=" -FS" -DCMAKE_C_FLAGS=" -FS" -DCMAKE_INSTALL_PREFIX=" ${INSTALL_DIR} " ..
322340 cmake --build . --config ${BUILD_TYPE} --parallel || exit 1
323341 # no make install, so we do this manually
@@ -356,7 +374,7 @@ build_acvd()
356374 if [[ $BUILD_CLEAN = 1 ]]; then rm -rf build; fi
357375 mkdir -p build && cd build
358376
359- if [[ $OSTYPE == " msys" ]]; then
377+ if [[ $OSTYPE == msys* ]]; then
360378 cmake -DCMAKE_CXX_FLAGS=" -FS" -DCMAKE_C_FLAGS=" -FS" -DCMAKE_INSTALL_PREFIX=" ${INSTALL_DIR} " -DVTK_DIR=" ${VTK_DIR} " -DBUILD_EXAMPLES:BOOL=OFF -DBUILD_SHARED_LIBS:BOOL=OFF ..
361379 cmake --build . --config ${BUILD_TYPE} --parallel || exit 1
362380 cmake --build . --config ${BUILD_TYPE} --target install
@@ -482,7 +500,7 @@ echo "## $*"
482500echo " ##"
483501echo " "
484502
485- if [[ $OSTYPE != " msys" ]]; then
503+ if [[ $OSTYPE != msys* ]]; then
486504 verify_qt
487505fi
488506
0 commit comments