# https://cmake.org/cmake/help/latest/variable/MSVC_VERSION.html if (MSVC_VERSION EQUAL 1800) # 1800 = VS 12.0 (v120 toolset) set(DEP_VS_VER "12") set(DEP_BOOST_TOOLSET "msvc-12.0") elseif (MSVC_VERSION EQUAL 1900) # 1900 = VS 14.0 (v140 toolset) set(DEP_VS_VER "14") set(DEP_BOOST_TOOLSET "msvc-14.0") elseif (MSVC_VERSION LESS 1920) # 1910-1919 = VS 15.0 (v141 toolset) set(DEP_VS_VER "15") set(DEP_BOOST_TOOLSET "msvc-14.1") elseif (MSVC_VERSION LESS 1930) # 1920-1929 = VS 16.0 (v142 toolset) set(DEP_VS_VER "16") set(DEP_BOOST_TOOLSET "msvc-14.2") else () message(FATAL_ERROR "Unsupported MSVC version") endif () if (CMAKE_CXX_COMPILER_ID STREQUAL Clang) set(DEP_BOOST_TOOLSET "clang-win") endif () if (${DEPS_BITS} EQUAL 32) set(DEP_MSVC_GEN "Visual Studio ${DEP_VS_VER}") set(DEP_PLATFORM "Win32") else () if (DEP_VS_VER LESS 16) set(DEP_MSVC_GEN "Visual Studio ${DEP_VS_VER} Win64") else () set(DEP_MSVC_GEN "Visual Studio ${DEP_VS_VER}") endif () set(DEP_PLATFORM "x64") endif () if (${DEP_DEBUG}) set(DEP_BOOST_DEBUG "debug") else () set(DEP_BOOST_DEBUG "") endif () macro(add_debug_dep _dep) if (${DEP_DEBUG}) ExternalProject_Get_Property(${_dep} BINARY_DIR) ExternalProject_Add_Step(${_dep} build_debug DEPENDEES build DEPENDERS install COMMAND msbuild /m /P:Configuration=Debug INSTALL.vcxproj WORKING_DIRECTORY "${BINARY_DIR}" ) endif () endmacro() # ExternalProject_Add(dep_boost # EXCLUDE_FROM_ALL 1 # URL "https://dl.bintray.com/boostorg/release/1.75.0/source/boost_1_75_0.tar.gz" # URL_HASH SHA256=aeb26f80e80945e82ee93e5939baebdca47b9dee80a07d3144be1e1a6a66dd6a # BUILD_IN_SOURCE 1 # CONFIGURE_COMMAND bootstrap.bat # BUILD_COMMAND b2.exe # -j "${NPROC}" # --with-system # --with-iostreams # --with-filesystem # --with-thread # --with-log # --with-locale # --with-regex # --with-date_time # "--prefix=${DESTDIR}/usr/local" # "address-model=${DEPS_BITS}" # "toolset=${DEP_BOOST_TOOLSET}" # link=static # variant=release # threading=multi # boost.locale.icu=off # --disable-icu # "${DEP_BOOST_DEBUG}" release install # INSTALL_COMMAND "" # b2 does that already # ) # ExternalProject_Add(dep_cereal # EXCLUDE_FROM_ALL 1 # URL "https://github.com/USCiLab/cereal/archive/v1.2.2.tar.gz" # # URL_HASH SHA256=c6dd7a5701fff8ad5ebb45a3dc8e757e61d52658de3918e38bab233e7fd3b4ae # CMAKE_GENERATOR "${DEP_MSVC_GEN}" # CMAKE_GENERATOR_PLATFORM "${DEP_PLATFORM}" # CMAKE_ARGS # -DJUST_INSTALL_CEREAL=on # "-DCMAKE_INSTALL_PREFIX:PATH=${DESTDIR}\\usr\\local" # BUILD_COMMAND msbuild /m /P:Configuration=Release INSTALL.vcxproj # INSTALL_COMMAND "" # ) # if (${DEPS_BITS} EQUAL 32) # set(DEP_LIBCURL_TARGET "x86") # else () # set(DEP_LIBCURL_TARGET "x64") # endif () # ExternalProject_Add(dep_libcurl # EXCLUDE_FROM_ALL 1 # URL "https://curl.haxx.se/download/curl-7.58.0.tar.gz" # URL_HASH SHA256=cc245bf9a1a42a45df491501d97d5593392a03f7b4f07b952793518d97666115 # BUILD_IN_SOURCE 1 # CONFIGURE_COMMAND "" # BUILD_COMMAND cd winbuild && nmake /f Makefile.vc mode=static "VC=${DEP_VS_VER}" GEN_PDB=yes DEBUG=no "MACHINE=${DEP_LIBCURL_TARGET}" # INSTALL_COMMAND cd builds\\libcurl-*-release-*-winssl # && "${CMAKE_COMMAND}" -E copy_directory include "${DESTDIR}\\usr\\local\\include" # && "${CMAKE_COMMAND}" -E copy_directory lib "${DESTDIR}\\usr\\local\\lib" # ) # if (${DEP_DEBUG}) # ExternalProject_Get_Property(dep_libcurl SOURCE_DIR) # ExternalProject_Add_Step(dep_libcurl build_debug # DEPENDEES build # DEPENDERS install # COMMAND cd winbuild && nmake /f Makefile.vc mode=static "VC=${DEP_VS_VER}" GEN_PDB=yes DEBUG=yes "MACHINE=${DEP_LIBCURL_TARGET}" # WORKING_DIRECTORY "${SOURCE_DIR}" # ) # ExternalProject_Add_Step(dep_libcurl install_debug # DEPENDEES install # COMMAND cd builds\\libcurl-*-debug-*-winssl # && "${CMAKE_COMMAND}" -E copy_directory include "${DESTDIR}\\usr\\local\\include" # && "${CMAKE_COMMAND}" -E copy_directory lib "${DESTDIR}\\usr\\local\\lib" # WORKING_DIRECTORY "${SOURCE_DIR}" # ) # endif () # ExternalProject_Add(dep_qhull # EXCLUDE_FROM_ALL 1 # #URL "https://github.com/qhull/qhull/archive/v7.3.2.tar.gz" # #URL_HASH SHA256=619c8a954880d545194bc03359404ef36a1abd2dde03678089459757fd790cb0 # GIT_REPOSITORY https://github.com/qhull/qhull.git # GIT_TAG 7afedcc73666e46a9f1d74632412ebecf53b1b30 # v7.3.2 plus the mac build patch # CMAKE_GENERATOR "${DEP_MSVC_GEN}" # CMAKE_ARGS # -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr/local # -DBUILD_SHARED_LIBS=OFF # -DCMAKE_POSITION_INDEPENDENT_CODE=ON # -DCMAKE_DEBUG_POSTFIX=d # BUILD_COMMAND msbuild /m /P:Configuration=Release INSTALL.vcxproj # INSTALL_COMMAND "" # ) # add_debug_dep(dep_qhull) if (${DEPS_BITS} EQUAL 32) set(DEP_WXWIDGETS_TARGET "") set(DEP_WXWIDGETS_LIBDIR "vc_lib") else () set(DEP_WXWIDGETS_TARGET "TARGET_CPU=X64") set(DEP_WXWIDGETS_LIBDIR "vc_x64_lib") endif () find_package(Git REQUIRED) # ExternalProject_Add(dep_blosc # EXCLUDE_FROM_ALL 1 # #URL https://github.com/Blosc/c-blosc/archive/v1.17.0.zip # #URL_HASH SHA256=7463a1df566704f212263312717ab2c36b45d45cba6cd0dccebf91b2cc4b4da9 # GIT_REPOSITORY https://github.com/Blosc/c-blosc.git # GIT_TAG e63775855294b50820ef44d1b157f4de1cc38d3e #v1.17.0 # CMAKE_GENERATOR "${DEP_MSVC_GEN}" # CMAKE_GENERATOR_PLATFORM "${DEP_PLATFORM}" # CMAKE_ARGS # -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr/local # -DBUILD_SHARED_LIBS=OFF # -DCMAKE_POSITION_INDEPENDENT_CODE=ON # -DCMAKE_DEBUG_POSTFIX=d # -DBUILD_SHARED=OFF # -DBUILD_STATIC=ON # -DBUILD_TESTS=OFF # -DBUILD_BENCHMARKS=OFF # -DPREFER_EXTERNAL_ZLIB=ON # -DBLOSC_IS_SUBPROJECT:BOOL=ON # -DBLOSC_INSTALL:BOOL=ON # PATCH_COMMAND ${GIT_EXECUTABLE} checkout -f -- . && git clean -df && # ${GIT_EXECUTABLE} apply --whitespace=fix ${CMAKE_CURRENT_SOURCE_DIR}/blosc-mods.patch # BUILD_COMMAND msbuild /m /P:Configuration=Release INSTALL.vcxproj # INSTALL_COMMAND "" # ) # add_debug_dep(dep_blosc) # ExternalProject_Add(dep_openexr # EXCLUDE_FROM_ALL 1 # GIT_REPOSITORY https://github.com/openexr/openexr.git # GIT_TAG eae0e337c9f5117e78114fd05f7a415819df413a #v2.4.0 # CMAKE_GENERATOR "${DEP_MSVC_GEN}" # CMAKE_GENERATOR_PLATFORM "${DEP_PLATFORM}" # CMAKE_ARGS # -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr/local # -DBUILD_SHARED_LIBS=OFF # -DCMAKE_POSITION_INDEPENDENT_CODE=ON # -DBUILD_TESTING=OFF # -DPYILMBASE_ENABLE:BOOL=OFF # -DOPENEXR_VIEWERS_ENABLE:BOOL=OFF # -DOPENEXR_BUILD_UTILS:BOOL=OFF # BUILD_COMMAND msbuild /m /P:Configuration=Release INSTALL.vcxproj # INSTALL_COMMAND "" # ) # add_debug_dep(dep_openexr) # ExternalProject_Add(dep_openvdb # EXCLUDE_FROM_ALL 1 # #URL https://github.com/AcademySoftwareFoundation/openvdb/archive/v6.2.1.zip # #URL_HASH SHA256=dc337399dce8e1c9f21f20e97b1ce7e4933cb0a63bb3b8b734d8fcc464aa0c48 # GIT_REPOSITORY https://github.com/AcademySoftwareFoundation/openvdb.git # GIT_TAG aebaf8d95be5e57fd33949281ec357db4a576c2e #v6.2.1 # DEPENDS dep_blosc dep_openexr dep_tbb dep_boost # CMAKE_GENERATOR "${DEP_MSVC_GEN}" # CMAKE_GENERATOR_PLATFORM "${DEP_PLATFORM}" # CMAKE_ARGS # -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr/local # -DCMAKE_DEBUG_POSTFIX=d # -DCMAKE_PREFIX_PATH=${DESTDIR}/usr/local # -DBUILD_SHARED_LIBS=OFF # -DCMAKE_POSITION_INDEPENDENT_CODE=ON # -DOPENVDB_BUILD_PYTHON_MODULE=OFF # -DUSE_BLOSC=ON # -DOPENVDB_CORE_SHARED=OFF # -DOPENVDB_CORE_STATIC=ON # -DTBB_STATIC=ON # -DOPENVDB_BUILD_VDB_PRINT=ON # BUILD_COMMAND msbuild /m /P:Configuration=Release INSTALL.vcxproj # PATCH_COMMAND ${GIT_EXECUTABLE} checkout -f -- . && git clean -df && # ${GIT_EXECUTABLE} apply --whitespace=fix ${CMAKE_CURRENT_SOURCE_DIR}/openvdb-mods.patch # INSTALL_COMMAND "" # ) # if (${DEP_DEBUG}) # ExternalProject_Get_Property(dep_openvdb BINARY_DIR) # ExternalProject_Add_Step(dep_openvdb build_debug # DEPENDEES build # DEPENDERS install # COMMAND ${CMAKE_COMMAND} ../dep_openvdb -DOPENVDB_BUILD_VDB_PRINT=OFF # COMMAND msbuild /m /P:Configuration=Debug INSTALL.vcxproj # WORKING_DIRECTORY "${BINARY_DIR}" # ) # endif ()