diff --git a/.github/workflows/build-linux-debug.yml b/.github/workflows/build-linux-debug.yml index 99e1fa4d932..11caf354c30 100644 --- a/.github/workflows/build-linux-debug.yml +++ b/.github/workflows/build-linux-debug.yml @@ -73,7 +73,7 @@ jobs: - name: cmake shell: bash -l {0} - run: conda activate shapeworks && mkdir build && cd build && cmake -DCMAKE_CXX_FLAGS=-g -DITK_DIR=$HOME/install/lib/cmake/ITK-5.3 -DVTK_DIR=$HOME/install/lib/cmake/vtk-9.5 -DXLNT_DIR=$HOME/install -DLIBIGL_DIR=$HOME/install -DOpenVDB_DIR=$HOME/install/lib/cmake/OpenVDB -DGEOMETRYCENTRAL_DIR=$HOME/install -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBuild_Studio=ON -DJKQTCommonSharedLib_DIR=$HOME/install/lib/cmake/JKQTCommonSharedLib -DJKQTMathTextSharedLib_DIR=$HOME/install/lib/cmake/JKQTMathTextSharedLib -DJKQTPlotterSharedLib_DIR=$HOME/install/lib/cmake/JKQTPlotterSharedLib -DACVD_DIR=$HOME/install -DCMAKE_PREFIX_PATH=${CONDA_PREFIX} -DCMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/shapeworks-install -DUSE_ORIGIN_RPATH=ON .. + run: conda activate shapeworks && mkdir build && cd build && cmake -DCMAKE_CXX_FLAGS=-g -DITK_DIR=$HOME/install/lib/cmake/ITK-5.4 -DVTK_DIR=$HOME/install/lib/cmake/vtk-9.5 -DXLNT_DIR=$HOME/install -DLIBIGL_DIR=$HOME/install -DOpenVDB_DIR=$HOME/install/lib/cmake/OpenVDB -DGEOMETRYCENTRAL_DIR=$HOME/install -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBuild_Studio=ON -DJKQTCommonSharedLib_DIR=$HOME/install/lib/cmake/JKQTCommonSharedLib -DJKQTMathTextSharedLib_DIR=$HOME/install/lib/cmake/JKQTMathTextSharedLib -DJKQTPlotterSharedLib_DIR=$HOME/install/lib/cmake/JKQTPlotterSharedLib -DACVD_DIR=$HOME/install -DCMAKE_PREFIX_PATH=${CONDA_PREFIX} -DCMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/shapeworks-install -DUSE_ORIGIN_RPATH=ON .. - name: Check space6 run: df -h diff --git a/.github/workflows/build-linux.yml b/.github/workflows/build-linux.yml index 060aa835cc5..cbfbec7870d 100644 --- a/.github/workflows/build-linux.yml +++ b/.github/workflows/build-linux.yml @@ -72,7 +72,7 @@ jobs: - name: cmake shell: bash -l {0} - run: conda activate shapeworks && mkdir build && cd build && cmake -DCMAKE_CXX_FLAGS=-g -DITK_DIR=$HOME/install/lib/cmake/ITK-5.3 -DVTK_DIR=$HOME/install/lib/cmake/vtk-9.5 -DXLNT_DIR=$HOME/install -DLIBIGL_DIR=$HOME/install -DOpenVDB_DIR=$HOME/install/lib/cmake/OpenVDB -DGEOMETRYCENTRAL_DIR=$HOME/install -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBuild_Studio=ON -DJKQTCommonSharedLib_DIR=$HOME/install/lib/cmake/JKQTCommonSharedLib -DJKQTMathTextSharedLib_DIR=$HOME/install/lib/cmake/JKQTMathTextSharedLib -DJKQTPlotterSharedLib_DIR=$HOME/install/lib/cmake/JKQTPlotterSharedLib -DACVD_DIR=$HOME/install -DCMAKE_PREFIX_PATH=${CONDA_PREFIX} -DCMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/shapeworks-install -DUSE_ORIGIN_RPATH=ON -DGA_MEASUREMENT_ID=$GA_MEASUREMENT_ID -DGA_API_SECRET=$GA_API_SECRET .. + run: conda activate shapeworks && mkdir build && cd build && cmake -DCMAKE_CXX_FLAGS=-g -DITK_DIR=$HOME/install/lib/cmake/ITK-5.4 -DVTK_DIR=$HOME/install/lib/cmake/vtk-9.5 -DXLNT_DIR=$HOME/install -DLIBIGL_DIR=$HOME/install -DOpenVDB_DIR=$HOME/install/lib/cmake/OpenVDB -DGEOMETRYCENTRAL_DIR=$HOME/install -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBuild_Studio=ON -DJKQTCommonSharedLib_DIR=$HOME/install/lib/cmake/JKQTCommonSharedLib -DJKQTMathTextSharedLib_DIR=$HOME/install/lib/cmake/JKQTMathTextSharedLib -DJKQTPlotterSharedLib_DIR=$HOME/install/lib/cmake/JKQTPlotterSharedLib -DACVD_DIR=$HOME/install -DCMAKE_PREFIX_PATH=${CONDA_PREFIX} -DCMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/shapeworks-install -DUSE_ORIGIN_RPATH=ON -DGA_MEASUREMENT_ID=$GA_MEASUREMENT_ID -DGA_API_SECRET=$GA_API_SECRET .. - name: Check space5 run: df -h diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index 513dfaba284..9dcdc689b4e 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -109,7 +109,7 @@ jobs: # Note the current convention is to use the -S and -B options here to specify source # and build directories, but this is only available with CMake 3.13 and higher. # The CMake binaries on the Github Actions machines are (as of this writing) 3.12 - run: conda activate shapeworks && cmake $GITHUB_WORKSPACE -DCMAKE_CXX_FLAGS="-FS" -DCMAKE_C_FLAGS="-FS" -DCMAKE_CXX_FLAGS_RELEASE="-FS /Zm500 /Zi /GL /MD /O2 /Ob3 /DNDEBUG /EHsc" -DCMAKE_C_FLAGS_RELEASE="-FS /Zi /GL /MD /O2 /Ob3 /DNDEBUG /EHsc" -DCMAKE_SHARED_LINKER_FLAGS_RELEASE="-LTCG /DEBUG" -DCMAKE_EXE_LINKER_FLAGS_RELEASE="-LTCG /DEBUG" -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DITK_DIR="C:\deps\lib\cmake\ITK-5.3" -DVTK_DIR="C:\deps\lib\cmake\vtk-9.5" -DXLNT_DIR="C:\deps" -DLIBIGL_DIR="C:\deps" -DJKQTCommonSharedLib_DIR="C:/deps/lib/cmake/JKQTCommonSharedLib" -DJKQTMathTextSharedLib_DIR="C:/deps/lib/cmake/JKQTMathTextSharedLib" -DJKQTPlotterSharedLib_DIR="C:/deps/lib/cmake/JKQTPlotterSharedLib" -DOpenVDB_DIR="C:\deps\lib\cmake\OpenVDB" -DGEOMETRYCENTRAL_DIR="C:\deps" -DACVD_DIR="C:\deps" -DBuild_Studio=ON -DGA_MEASUREMENT_ID=$GA_MEASUREMENT_ID -DGA_API_SECRET=$GA_API_SECRET + run: conda activate shapeworks && cmake $GITHUB_WORKSPACE -DCMAKE_CXX_FLAGS="-FS" -DCMAKE_C_FLAGS="-FS" -DCMAKE_CXX_FLAGS_RELEASE="-FS /Zm500 /Zi /GL /MD /O2 /Ob3 /DNDEBUG /EHsc" -DCMAKE_C_FLAGS_RELEASE="-FS /Zi /GL /MD /O2 /Ob3 /DNDEBUG /EHsc" -DCMAKE_SHARED_LINKER_FLAGS_RELEASE="-LTCG /DEBUG" -DCMAKE_EXE_LINKER_FLAGS_RELEASE="-LTCG /DEBUG" -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DITK_DIR="C:\deps\lib\cmake\ITK-5.4" -DVTK_DIR="C:\deps\lib\cmake\vtk-9.5" -DXLNT_DIR="C:\deps" -DLIBIGL_DIR="C:\deps" -DJKQTCommonSharedLib_DIR="C:/deps/lib/cmake/JKQTCommonSharedLib" -DJKQTMathTextSharedLib_DIR="C:/deps/lib/cmake/JKQTMathTextSharedLib" -DJKQTPlotterSharedLib_DIR="C:/deps/lib/cmake/JKQTPlotterSharedLib" -DOpenVDB_DIR="C:\deps\lib\cmake\OpenVDB" -DGEOMETRYCENTRAL_DIR="C:\deps" -DACVD_DIR="C:\deps" -DBuild_Studio=ON -DGA_MEASUREMENT_ID=$GA_MEASUREMENT_ID -DGA_API_SECRET=$GA_API_SECRET - name: Build working-directory: "C:/build" diff --git a/Libs/Optimize/Container/GenericContainer.h b/Libs/Optimize/Container/GenericContainer.h index cc86a984343..1e87478a326 100644 --- a/Libs/Optimize/Container/GenericContainer.h +++ b/Libs/Optimize/Container/GenericContainer.h @@ -28,7 +28,7 @@ class GenericContainer : public itk::DataObject { itkNewMacro(Self); /** Run-time type information (and related methods). */ - itkTypeMacro(ParticleContainer, itk::DataObject); + itkTypeMacro(GenericContainer, itk::DataObject); /** Returns a reference to the object associated with index k. If the index k does not already exist, this method inserts a new entry for k. */ diff --git a/Libs/Optimize/Container/GenericContainerArray.h b/Libs/Optimize/Container/GenericContainerArray.h index 03cabe1dbd6..6298333605d 100644 --- a/Libs/Optimize/Container/GenericContainerArray.h +++ b/Libs/Optimize/Container/GenericContainerArray.h @@ -30,7 +30,7 @@ class GenericContainerArray : public std::vector::P itkNewMacro(Self); /** Run-time type information (and related methods). */ - itkTypeMacro(ParticleContainer, Observer); + itkTypeMacro(GenericContainerArray, Observer); /** Callbacks that may be defined by a subclass. If a subclass defines one of these callback methods, the corresponding flag in m_DefinedCallbacks diff --git a/Libs/Optimize/Container/MeanCurvatureContainer.h b/Libs/Optimize/Container/MeanCurvatureContainer.h index 7ea3b6b65b6..1ebded1aa24 100644 --- a/Libs/Optimize/Container/MeanCurvatureContainer.h +++ b/Libs/Optimize/Container/MeanCurvatureContainer.h @@ -31,7 +31,7 @@ class MeanCurvatureContainer : public GenericContainerArray { itkNewMacro(Self); /** Run-time type information (and related methods). */ - itkTypeMacro(ParticleMeanCurvatureAttribute, GenericContainerArray); + itkTypeMacro(MeanCurvatureContainer, GenericContainerArray); void SetVerbosity(unsigned int val) { m_verbosity = val; } diff --git a/Libs/Optimize/GradientDescentOptimizer.h b/Libs/Optimize/GradientDescentOptimizer.h index 57290502a6d..488f4053599 100644 --- a/Libs/Optimize/GradientDescentOptimizer.h +++ b/Libs/Optimize/GradientDescentOptimizer.h @@ -43,7 +43,7 @@ class GradientDescentOptimizer : public itk::Object { typedef shapeworks::ImageDomainWithGradients DomainType; /** Run-time type information (and related methods). */ - itkTypeMacro(ParticleGradientDescentPositionOptimizer, Object); + itkTypeMacro(GradientDescentOptimizer, Object); /** Dimensionality of the domain of the particle system. */ itkStaticConstMacro(Dimension, unsigned int, VDimension); diff --git a/Support/xlnt.patch b/Support/xlnt.patch new file mode 100644 index 00000000000..1af7488a533 --- /dev/null +++ b/Support/xlnt.patch @@ -0,0 +1,12 @@ +diff --git a/include/xlnt/cell/phonetic_run.hpp b/include/xlnt/cell/phonetic_run.hpp +index cbf62ea7..9f20384e 100644 +--- a/include/xlnt/cell/phonetic_run.hpp ++++ b/include/xlnt/cell/phonetic_run.hpp +@@ -24,6 +24,7 @@ + #pragma once + + #include ++#include + + #include + diff --git a/Testing/CMakeLists.txt b/Testing/CMakeLists.txt index 94422c2a5dd..8a95dd2f933 100644 --- a/Testing/CMakeLists.txt +++ b/Testing/CMakeLists.txt @@ -1,6 +1,9 @@ # GTest setup #find_package(GTest REQUIRED) +set(BUILD_SHARED_LIBS_SAVED ${BUILD_SHARED_LIBS}) +set(BUILD_SHARED_LIBS OFF) + # fetch googletest include(FetchContent) FetchContent_Declare( @@ -14,6 +17,10 @@ if(NOT googletest_POPULATED) add_subdirectory(${googletest_SOURCE_DIR} ${googletest_BINARY_DIR}) endif() +set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) + +# Restore BUILD_SHARED_LIBS +set(BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS_SAVED}) # NOTE: must call enable_testing() before this in the top-level CMakeLists.txt diff --git a/build_dependencies.sh b/build_dependencies.sh index 0a61a007ce4..cad68bb11ca 100755 --- a/build_dependencies.sh +++ b/build_dependencies.sh @@ -22,8 +22,8 @@ BUILD_TYPE="Release" BUILD_LOG="build_dependencies.log" VTK_VER="v9.5.0" VTK_VER_STR="9.5" -ITK_VER="v5.3.0" -ITK_VER_STR="5.3" +ITK_VER="v5.4.4" +ITK_VER_STR="5.4" QT_MIN_VER="5.15.4" XLNT_VER="538f80794c7d736afc0a452d21313606cc5538fc" JKQTPLOTTER_VER="v2022.11.30-refix-rpath" @@ -201,6 +201,9 @@ build_xlnt() # move conflicting file out of the way so it builds on osx mv third-party/libstudxml/version third-party/libstudxml/version.bak + # Fix for GCC 13 + echo '#include ' >> include/xlnt/xlnt_config.hpp + # fix rpath sed -i'.original' -e 's/INSTALL_NAME_DIR.*/)/' source/CMakeLists.txt