From 86042b7ced948cda215f002c125c8d850887eff0 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 9 Oct 2019 16:44:29 +0200 Subject: Build: add WITH_TBB option, in preparation of sculpt using it It should no longer be tied to OpenVDB and OpenImageDenoise then. Differential Revision: https://developer.blender.org/D6029 --- build_files/cmake/platform/platform_apple.cmake | 21 +++++++++++++------ build_files/cmake/platform/platform_unix.cmake | 22 ++++++++++++++------ build_files/cmake/platform/platform_win32.cmake | 27 ++++++++++++++++--------- 3 files changed, 49 insertions(+), 21 deletions(-) (limited to 'build_files/cmake/platform') diff --git a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platform/platform_apple.cmake index 249546dd216..5cea7a418bd 100644 --- a/build_files/cmake/platform/platform_apple.cmake +++ b/build_files/cmake/platform/platform_apple.cmake @@ -313,9 +313,7 @@ endif() if(WITH_OPENVDB) set(OPENVDB ${LIBDIR}/openvdb) set(OPENVDB_INCLUDE_DIRS ${OPENVDB}/include) - set(TBB_INCLUDE_DIRS ${LIBDIR}/tbb/include) - set(TBB_LIBRARIES ${LIBDIR}/tbb/lib/libtbb.a) - set(OPENVDB_LIBRARIES openvdb blosc ${TBB_LIBRARIES}) + set(OPENVDB_LIBRARIES openvdb blosc) set(OPENVDB_LIBPATH ${LIBDIR}/openvdb/lib) set(OPENVDB_DEFINITIONS) endif() @@ -386,14 +384,25 @@ endif() if(WITH_OPENIMAGEDENOISE) find_package(OpenImageDenoise) - find_package(TBB) if(NOT OPENIMAGEDENOISE_FOUND) set(WITH_OPENIMAGEDENOISE OFF) message(STATUS "OpenImageDenoise not found") - elseif(NOT TBB_FOUND) + endif() +endif() + +if(WITH_TBB) + find_package(TBB) +endif() + +if(NOT WITH_TBB OR NOT TBB_FOUND) + if(WITH_OPENIMAGEDENOISE) + message(STATUS "TBB not found, disabling OpenImageDenoise") set(WITH_OPENIMAGEDENOISE OFF) - message(STATUS "TBB not found") + endif() + if(WITH_OPENVDB) + message(STATUS "TBB not found, disabling OpenVDB") + set(WITH_OPENVDB OFF) endif() endif() diff --git a/build_files/cmake/platform/platform_unix.cmake b/build_files/cmake/platform/platform_unix.cmake index e655234eb34..c48780ebd6a 100644 --- a/build_files/cmake/platform/platform_unix.cmake +++ b/build_files/cmake/platform/platform_unix.cmake @@ -260,13 +260,8 @@ endif() if(WITH_OPENVDB) find_package_wrapper(OpenVDB) - find_package_wrapper(TBB) find_package_wrapper(Blosc) - if(NOT TBB_FOUND) - set(WITH_OPENVDB OFF) - set(WITH_OPENVDB_BLOSC OFF) - message(STATUS "TBB not found, disabling OpenVDB") - elseif(NOT OPENVDB_FOUND) + if(NOT OPENVDB_FOUND) set(WITH_OPENVDB OFF) set(WITH_OPENVDB_BLOSC OFF) message(STATUS "OpenVDB not found, disabling it") @@ -432,6 +427,21 @@ if(WITH_OPENSUBDIV) endif() endif() +if(WITH_TBB) + find_package_wrapper(TBB) +endif() + +if(NOT WITH_TBB OR NOT TBB_FOUND) + if(WITH_OPENIMAGEDENOISE) + message(STATUS "TBB not found, disabling OpenImageDenoise") + set(WITH_OPENIMAGEDENOISE OFF) + endif() + if(WITH_OPENVDB) + message(STATUS "TBB not found, disabling OpenVDB") + set(WITH_OPENVDB OFF) + endif() +endif() + # OpenSuse needs lutil, ArchLinux not, for now keep, can avoid by using --as-needed if(HAIKU) list(APPEND PLATFORM_LINKLIBS -lnetwork) diff --git a/build_files/cmake/platform/platform_win32.cmake b/build_files/cmake/platform/platform_win32.cmake index 7956a299320..f64dd4a4aa3 100644 --- a/build_files/cmake/platform/platform_win32.cmake +++ b/build_files/cmake/platform/platform_win32.cmake @@ -491,25 +491,20 @@ endif() if(WITH_OPENVDB) set(BLOSC_LIBRARIES optimized ${LIBDIR}/blosc/lib/libblosc.lib debug ${LIBDIR}/blosc/lib/libblosc_d.lib) - set(TBB_LIBRARIES optimized ${LIBDIR}/tbb/lib/tbb.lib debug ${LIBDIR}/tbb/lib/tbb_debug.lib) - set(TBB_INCLUDE_DIR ${LIBDIR}/tbb/include) set(OPENVDB ${LIBDIR}/openVDB) set(OPENVDB_LIBPATH ${OPENVDB}/lib) - set(OPENVDB_INCLUDE_DIRS ${OPENVDB}/include ${TBB_INCLUDE_DIR}) - set(OPENVDB_LIBRARIES optimized ${OPENVDB_LIBPATH}/openvdb.lib debug ${OPENVDB_LIBPATH}/openvdb_d.lib ${TBB_LIBRARIES} ${BLOSC_LIBRARIES}) + set(OPENVDB_INCLUDE_DIRS ${OPENVDB}/include) + set(OPENVDB_LIBRARIES optimized ${OPENVDB_LIBPATH}/openvdb.lib debug ${OPENVDB_LIBPATH}/openvdb_d.lib ${BLOSC_LIBRARIES}) set(OPENVDB_DEFINITIONS -DNOMINMAX) endif() if(WITH_OPENIMAGEDENOISE) - set(TBB_LIBRARIES optimized ${LIBDIR}/tbb/lib/tbb.lib debug ${LIBDIR}/tbb/lib/tbb_debug.lib) - set(TBB_INCLUDE_DIR ${LIBDIR}/tbb/include) set(OPENIMAGEDENOISE ${LIBDIR}/OpenImageDenoise) set(OPENIMAGEDENOISE_LIBPATH ${LIBDIR}/OpenImageDenoise/lib) - set(OPENIMAGEDENOISE_INCLUDE_DIRS ${OPENIMAGEDENOISE}/include ${TBB_INCLUDE_DIR}) + set(OPENIMAGEDENOISE_INCLUDE_DIRS ${OPENIMAGEDENOISE}/include) set(OPENIMAGEDENOISE_LIBRARIES optimized ${OPENIMAGEDENOISE_LIBPATH}/OpenImageDenoise.lib ${OPENIMAGEDENOISE_LIBPATH}/common.lib ${OPENIMAGEDENOISE_LIBPATH}/mkldnn.lib - debug ${OPENIMAGEDENOISE_LIBPATH}/OpenImageDenoise_d.lib ${OPENIMAGEDENOISE_LIBPATH}/common_d.lib ${OPENIMAGEDENOISE_LIBPATH}/mkldnn_d.lib - ${TBB_LIBRARIES}) + debug ${OPENIMAGEDENOISE_LIBPATH}/OpenImageDenoise_d.lib ${OPENIMAGEDENOISE_LIBPATH}/common_d.lib ${OPENIMAGEDENOISE_LIBPATH}/mkldnn_d.lib) set(OPENIMAGEDENOISE_DEFINITIONS) endif() @@ -574,6 +569,20 @@ if(WITH_SYSTEM_AUDASPACE) set(AUDASPACE_PY_LIBRARIES ${LIBDIR}/audaspace/lib/audaspace-py.lib) endif() +if(WITH_TBB) + set(TBB_LIBRARIES optimized ${LIBDIR}/tbb/lib/tbb.lib debug ${LIBDIR}/tbb/lib/tbb_debug.lib) + set(TBB_INCLUDE_DIR ${LIBDIR}/tbb/include) +else() + if(WITH_OPENIMAGEDENOISE) + message(STATUS "TBB disabled, also disabling OpenImageDenoise") + set(WITH_OPENIMAGEDENOISE OFF) + endif() + if(WITH_OPENVDB) + message(STATUS "TBB disabled, also disabling OpenVDB") + set(WITH_OPENVDB OFF) + endif() +endif() + # used in many places so include globally, like OpenGL blender_include_dirs_sys("${PTHREADS_INCLUDE_DIRS}") -- cgit v1.2.3