diff --git a/CMakeLists.txt b/CMakeLists.txt index d7c4ff8..123e50f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -302,7 +302,6 @@ if(OPENVDB_INSTALL_CMAKE_MODULES) cmake/FindLog4cplus.cmake cmake/FindOpenEXR.cmake cmake/FindOpenVDB.cmake - cmake/FindTBB.cmake cmake/OpenVDBGLFW3Setup.cmake cmake/OpenVDBHoudiniSetup.cmake cmake/OpenVDBMayaSetup.cmake diff --git a/cmake/FindOpenVDB.cmake b/cmake/FindOpenVDB.cmake index 01a2f04..16b71bb 100644 --- a/cmake/FindOpenVDB.cmake +++ b/cmake/FindOpenVDB.cmake @@ -299,7 +299,7 @@ endif() # Add standard dependencies find_package(IlmBase REQUIRED COMPONENTS Half) -find_package(TBB REQUIRED COMPONENTS tbb) +find_package(TBB CONFIG REQUIRED) find_package(ZLIB REQUIRED) if(NOT OPENVDB_USE_STATIC_LIBS) diff --git a/openvdb/CMakeLists.txt b/openvdb/CMakeLists.txt index 9501ff1..ab14fd9 100644 --- a/openvdb/CMakeLists.txt +++ b/openvdb/CMakeLists.txt @@ -48,6 +48,7 @@ message(STATUS "----------------------------------------------------") # Collect and configure lib dependencies +if(0) if(USE_EXR) find_package(IlmBase ${MINIMUM_ILMBASE_VERSION} REQUIRED) find_package(OpenEXR ${MINIMUM_OPENEXR_VERSION} REQUIRED) @@ -76,6 +77,14 @@ if(OPENVDB_FUTURE_DEPRECATION AND FUTURE_MINIMUM_TBB_VERSION) "is deprecated and will be removed.") endif() endif() +endif() + +if(USE_EXR) + find_package(IlmBase REQUIRED) + find_package(OpenEXR REQUIRED) +else() + find_package(IlmBase REQUIRED COMPONENTS Half) +endif() find_package(ZLIB ${MINIMUM_ZLIB_VERSION} REQUIRED) @@ -127,10 +136,10 @@ if(CONCURRENT_MALLOC STREQUAL "Jemalloc") message(WARNING "Unable to find Jemalloc, attempting to fall back to TBB malloc. It is recommended to use Jemalloc for optimum performance." ) - find_package(TBB ${MINIMUM_TBB_VERSION} REQUIRED COMPONENTS tbbmalloc tbbmalloc_proxy) + find_package(TBB CONFIG REQUIRED) endif() elseif(CONCURRENT_MALLOC STREQUAL "Tbbmalloc") - find_package(TBB ${MINIMUM_TBB_VERSION} REQUIRED COMPONENTS tbbmalloc tbbmalloc_proxy) + find_package(TBB CONFIG REQUIRED) endif() # Set deps. Note that the order here is important. If we're building against @@ -142,15 +151,15 @@ endif() set(OPENVDB_CORE_DEPENDENT_LIBS Boost::iostreams Boost::system - IlmBase::Half + ${Ilmbase_HALF_LIBRARY} ) if(USE_EXR) list(APPEND OPENVDB_CORE_DEPENDENT_LIBS - IlmBase::IlmThread - IlmBase::Iex - IlmBase::Imath - OpenEXR::IlmImf + ${Ilmbase_ILMTHREAD_LIBRARY} + ${Ilmbase_IEX_LIBRARY} + ${Ilmbase_IMATH_LIBRARY} + ${OPENEXR_ILMIMF_LIBRARY} ) endif() @@ -162,7 +171,7 @@ endif() # See FindOpenVDB.cmake if(USE_BLOSC) - list(APPEND OPENVDB_CORE_DEPENDENT_LIBS Blosc::blosc) + list(APPEND OPENVDB_CORE_DEPENDENT_LIBS ${BLOSC_blosc_LIBRARY}) endif() list(APPEND OPENVDB_CORE_DEPENDENT_LIBS @@ -197,7 +206,11 @@ endif() # @todo Should be target definitions if(WIN32) - add_definitions(-D_WIN32 -DNOMINMAX -DOPENVDB_DLL) + add_definitions(-D_WIN32 -DNOMINMAX) + add_definitions(-D__TBB_NO_IMPLICIT_LINKAGE -D__TBBMALLOC_NO_IMPLICIT_LINKAGE) + if (OPENVDB_SHARED) + add_definitions(-DOPENEXR_DLL -DOPENVDB_DLL) + endif() endif() ##### Core library configuration @@ -415,6 +428,7 @@ if(USE_BLOSC) list(APPEND OPENVDB_CORE_PRIVATE_DEFINES "-DOPENVDB_USE_BLOSC") endif() +list(APPEND OPENVDB_CORE_PRIVATE_DEFINES "$<$:/bigobj>") # Public defines if(USE_EXR) diff --git a/openvdb/cmd/CMakeLists.txt b/openvdb/cmd/CMakeLists.txt index 1e5ef0d..8e78efe 100644 --- a/openvdb/cmd/CMakeLists.txt +++ b/openvdb/cmd/CMakeLists.txt @@ -133,9 +133,9 @@ if(OPENVDB_BUILD_VDB_RENDER) # headers target_link_libraries(vdb_render - OpenEXR::IlmImf - IlmBase::IlmThread - IlmBase::Iex + ${OPENEXR_ILMIMF_LIBRARY} + ${Ilmbase_ILMTHREAD_LIBRARY} + ${Ilmbase_IEX_LIBRARY} ${OPENVDB_BINARIES_DEPENDENT_LIBS} )