Skip to content

Commit 234fe95

Browse files
authored
Merge pull request #2547 from SCIInstitute/amorris/2546-windows-ci
Fix Windows CI dep build broken by env-injected CXXFLAGS
2 parents 351ea9b + 43c40d8 commit 234fe95

2 files changed

Lines changed: 31 additions & 13 deletions

File tree

build_dependencies.sh

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,24 @@ WIN_LFLAGS="-DEBUG" # windows release compilation flags
3939
#FLAGS="-g" # turn on symbols for all builds
4040
FLAGS=""
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+
4260
usage()
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 "## $*"
482500
echo "##"
483501
echo ""
484502

485-
if [[ $OSTYPE != "msys" ]]; then
503+
if [[ $OSTYPE != msys* ]]; then
486504
verify_qt
487505
fi
488506

install_shapeworks.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ function install_conda() {
120120
CONDA_PACKAGES+=(zlib=1.2.13 patchelf=0.17.2)
121121
fi
122122

123-
if [[ $OSTYPE == "msys" ]]; then
123+
if [[ $OSTYPE == msys* || $OSTYPE == cygwin* ]]; then
124124
CONDA_PACKAGES+=(zlib)
125125
fi
126126

0 commit comments

Comments
 (0)