[Bf-blender-cvs] [eb7ac996cc2] master: Build: install all shared libraries regardless of build options

Brecht Van Lommel noreply at git.blender.org
Wed Jan 4 11:24:50 CET 2023


Commit: eb7ac996cc2a00e05aaa5644a684cf32d3f288c7
Author: Brecht Van Lommel
Date:   Fri Dec 16 13:55:46 2022 +0100
Branches: master
https://developer.blender.org/rBeb7ac996cc2a00e05aaa5644a684cf32d3f288c7

Build: install all shared libraries regardless of build options

There are dependencies between shared libraries, and Python modules which are
always installed on Linux and macOS can use these also.

Instead of adding logic for dealing with dependencies and conditional Python
module installs, just always install everything when using precompiled
libraries. This does not affect compile time which would be the main reason to
turn off build options, and it does not affect the case where system libraries
are used.

===================================================================

M	CMakeLists.txt
M	build_files/cmake/platform/platform_apple.cmake
M	build_files/cmake/platform/platform_unix.cmake
M	source/creator/CMakeLists.txt

===================================================================

diff --git a/CMakeLists.txt b/CMakeLists.txt
index b68fd630748..b3e9eb55c15 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -832,27 +832,22 @@ endif()
 # enable boost for cycles, audaspace or i18n
 # otherwise if the user disabled
 
-set_and_warn_dependency(WITH_BOOST WITH_CYCLES         OFF)
 set_and_warn_dependency(WITH_BOOST WITH_INTERNATIONAL  OFF)
 set_and_warn_dependency(WITH_BOOST WITH_OPENVDB        OFF)
-set_and_warn_dependency(WITH_BOOST WITH_OPENCOLORIO    OFF)
 set_and_warn_dependency(WITH_BOOST WITH_QUADRIFLOW     OFF)
 set_and_warn_dependency(WITH_BOOST WITH_USD            OFF)
-set_and_warn_dependency(WITH_BOOST WITH_ALEMBIC        OFF)
 if(WITH_CYCLES)
   set_and_warn_dependency(WITH_PUGIXML WITH_CYCLES_OSL   OFF)
 endif()
-set_and_warn_dependency(WITH_PUGIXML WITH_OPENIMAGEIO  OFF)
 
-if(WITH_BOOST AND NOT (WITH_CYCLES OR WITH_OPENIMAGEIO OR WITH_INTERNATIONAL OR
-  WITH_OPENVDB OR WITH_OPENCOLORIO OR WITH_USD OR WITH_ALEMBIC))
+if(WITH_BOOST AND NOT (WITH_INTERNATIONAL OR WITH_OPENVDB OR
+                       WITH_QUADRIFOLOW OR WITH_USD))
   message(STATUS "No dependencies need 'WITH_BOOST' forcing WITH_BOOST=OFF")
   set(WITH_BOOST OFF)
 endif()
 
 set_and_warn_dependency(WITH_TBB WITH_CYCLES            OFF)
 set_and_warn_dependency(WITH_TBB WITH_USD               OFF)
-set_and_warn_dependency(WITH_TBB WITH_OPENIMAGEDENOISE  OFF)
 set_and_warn_dependency(WITH_TBB WITH_OPENVDB           OFF)
 set_and_warn_dependency(WITH_TBB WITH_MOD_FLUID         OFF)
 
@@ -861,14 +856,10 @@ set_and_warn_dependency(WITH_OPENVDB WITH_NANOVDB       OFF)
 
 # OpenVDB and OpenColorIO uses 'half' type from OpenEXR
 set_and_warn_dependency(WITH_IMAGE_OPENEXR WITH_OPENVDB OFF)
-set_and_warn_dependency(WITH_IMAGE_OPENEXR WITH_OPENCOLORIO  OFF)
 
 # Haru needs `TIFFFaxBlackCodes` & `TIFFFaxWhiteCodes` symbols from TIFF.
 set_and_warn_dependency(WITH_IMAGE_TIFF WITH_HARU       OFF)
 
-# USD needs OpenSubDiv, since that is used by the Cycles Hydra render delegate.
-set_and_warn_dependency(WITH_OPENSUBDIV WITH_USD        OFF)
-
 # auto enable openimageio for cycles
 if(WITH_CYCLES)
   set(WITH_OPENIMAGEIO ON)
@@ -882,17 +873,6 @@ else()
   set(WITH_CYCLES_OSL OFF)
 endif()
 
-# auto enable openimageio linking dependencies
-if(WITH_OPENIMAGEIO)
-  set(WITH_IMAGE_OPENEXR ON)
-  set(WITH_IMAGE_TIFF ON)
-endif()
-
-# auto enable alembic linking dependencies
-if(WITH_ALEMBIC)
-  set(WITH_IMAGE_OPENEXR ON)
-endif()
-
 # don't store paths to libs for portable distribution
 if(WITH_INSTALL_PORTABLE)
   set(CMAKE_SKIP_BUILD_RPATH TRUE)
diff --git a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platform/platform_apple.cmake
index b2101662969..e9e07229b2d 100644
--- a/build_files/cmake/platform/platform_apple.cmake
+++ b/build_files/cmake/platform/platform_apple.cmake
@@ -86,16 +86,14 @@ endif()
 
 if(WITH_USD)
   find_package(USD REQUIRED)
-  add_bundled_libraries(usd/lib)
 endif()
+add_bundled_libraries(usd/lib)
 
 if(WITH_MATERIALX)
   find_package(MaterialX)
   set_and_warn_library_found("MaterialX" MaterialX_FOUND WITH_MATERIALX)
-  if(WITH_MATERIALX)
-    add_bundled_libraries(materialx/lib)
-  endif()
 endif()
+add_bundled_libraries(materialx/lib)
 
 if(WITH_VULKAN_BACKEND)
   find_package(MoltenVK REQUIRED)
@@ -117,8 +115,8 @@ endif()
 
 if(WITH_OPENSUBDIV)
   find_package(OpenSubdiv)
-  add_bundled_libraries(opensubdiv/lib)
 endif()
+add_bundled_libraries(opensubdiv/lib)
 
 if(WITH_CODEC_SNDFILE)
   find_package(SndFile)
@@ -156,9 +154,9 @@ list(APPEND FREETYPE_LIBRARIES
 
 if(WITH_IMAGE_OPENEXR)
   find_package(OpenEXR)
-  add_bundled_libraries(openexr/lib)
-  add_bundled_libraries(imath/lib)
 endif()
+add_bundled_libraries(openexr/lib)
+add_bundled_libraries(imath/lib)
 
 if(WITH_CODEC_FFMPEG)
   set(FFMPEG_ROOT_DIR ${LIBDIR}/ffmpeg)
@@ -270,12 +268,11 @@ if(WITH_BOOST)
   set(BOOST_INCLUDE_DIR ${Boost_INCLUDE_DIRS})
   set(BOOST_DEFINITIONS)
 
-  add_bundled_libraries(boost/lib)
-
   mark_as_advanced(Boost_LIBRARIES)
   mark_as_advanced(Boost_INCLUDE_DIRS)
   unset(_boost_FIND_COMPONENTS)
 endif()
+add_bundled_libraries(boost/lib)
 
 if(WITH_INTERNATIONAL OR WITH_CODEC_FFMPEG)
   string(APPEND PLATFORM_LINKFLAGS " -liconv") # boost_locale and ffmpeg needs it !
@@ -297,13 +294,13 @@ if(WITH_OPENIMAGEIO)
   )
   set(OPENIMAGEIO_DEFINITIONS "-DOIIO_STATIC_BUILD")
   set(OPENIMAGEIO_IDIFF "${LIBDIR}/openimageio/bin/idiff")
-  add_bundled_libraries(openimageio/lib)
 endif()
+add_bundled_libraries(openimageio/lib)
 
 if(WITH_OPENCOLORIO)
   find_package(OpenColorIO 2.0.0 REQUIRED)
-  add_bundled_libraries(opencolorio/lib)
 endif()
+add_bundled_libraries(opencolorio/lib)
 
 if(WITH_OPENVDB)
   find_package(OpenVDB)
@@ -314,8 +311,8 @@ if(WITH_OPENVDB)
     unset(BLOSC_LIBRARIES CACHE)
   endif()
   set(OPENVDB_DEFINITIONS)
-  add_bundled_libraries(openvdb/lib)
 endif()
+add_bundled_libraries(openvdb/lib)
 
 if(WITH_NANOVDB)
   find_package(NanoVDB)
@@ -363,8 +360,8 @@ endif()
 
 if(WITH_TBB)
   find_package(TBB REQUIRED)
-  add_bundled_libraries(tbb/lib)
 endif()
+add_bundled_libraries(tbb/lib)
 
 if(WITH_POTRACE)
   find_package(Potrace REQUIRED)
@@ -382,9 +379,9 @@ if(WITH_OPENMP)
     set(OpenMP_LIBRARY_DIR "${LIBDIR}/openmp/lib/")
     set(OpenMP_LINKER_FLAGS "-L'${OpenMP_LIBRARY_DIR}' -lomp")
     set(OpenMP_LIBRARY "${OpenMP_LIBRARY_DIR}/libomp.dylib")
-    add_bundled_libraries(openmp/lib)
   endif()
 endif()
+add_bundled_libraries(openmp/lib)
 
 if(WITH_XR_OPENXR)
   find_package(XR_OpenXR_SDK REQUIRED)
diff --git a/build_files/cmake/platform/platform_unix.cmake b/build_files/cmake/platform/platform_unix.cmake
index bdf39d04d32..787d0f87002 100644
--- a/build_files/cmake/platform/platform_unix.cmake
+++ b/build_files/cmake/platform/platform_unix.cmake
@@ -166,11 +166,9 @@ endif()
 if(WITH_IMAGE_OPENEXR)
   find_package_wrapper(OpenEXR)  # our own module
   set_and_warn_library_found("OpenEXR" OPENEXR_FOUND WITH_IMAGE_OPENEXR)
-  if(WITH_IMAGE_OPENEXR)
-    add_bundled_libraries(openexr/lib)
-    add_bundled_libraries(imath/lib)
-  endif()
 endif()
+add_bundled_libraries(openexr/lib)
+add_bundled_libraries(imath/lib)
 
 if(WITH_IMAGE_OPENJPEG)
   find_package_wrapper(OpenJPEG)
@@ -328,11 +326,8 @@ endif()
 if(WITH_OPENVDB)
   find_package(OpenVDB)
   set_and_warn_library_found("OpenVDB" OPENVDB_FOUND WITH_OPENVDB)
-
-  if(WITH_OPENVDB)
-    add_bundled_libraries(openvdb/lib)
-  endif()
 endif()
+add_bundled_libraries(openvdb/lib)
 
 if(WITH_NANOVDB)
   find_package_wrapper(NanoVDB)
@@ -351,18 +346,14 @@ endif()
 if(WITH_USD)
   find_package_wrapper(USD)
   set_and_warn_library_found("USD" USD_FOUND WITH_USD)
-  if(WITH_USD)
-    add_bundled_libraries(usd/lib)
-  endif()
 endif()
+add_bundled_libraries(usd/lib)
 
 if(WITH_MATERIALX)
   find_package_wrapper(MaterialX)
   set_and_warn_library_found("MaterialX" MaterialX_FOUND WITH_MATERIALX)
-  if(WITH_MATERIALX)
-    add_bundled_libraries(materialx/lib)
-  endif()
 endif()
+add_bundled_libraries(materialx/lib)
 
 if(WITH_BOOST)
   # uses in build instructions to override include and library variables
@@ -418,9 +409,8 @@ if(WITH_BOOST)
     find_package(IcuLinux)
     list(APPEND BOOST_LIBRARIES ${ICU_LIBRARIES})
   endif()
-
-  add_bundled_libraries(boost/lib)
 endif()
+add_bundled_libraries(boost/lib)
 
 if(WITH_PUGIXML)
   find_package_wrapper(PugiXML)
@@ -455,21 +445,16 @@ if(WITH_OPENIMAGEIO)
   endif()
 
   set_and_warn_library_found("OPENIMAGEIO" OPENIMAGEIO_FOUND WITH_OPENIMAGEIO)
-  if(WITH_OPENIMAGEIO)
-    add_bundled_libraries(openimageio/lib)
-  endif()
 endif()
+add_bundled_libraries(openimageio/lib)
 
 if(WITH_OPENCOLORIO)
   find_package_wrapper(OpenColorIO 2.0.0)
 
   set(OPENCOLORIO_DEFINITIONS)
   set_and_warn_library_found("OpenColorIO" OPENCOLORIO_FOUND WITH_OPENCOLORIO)
-
-  if(WITH_OPENCOLORIO)
-    add_bundled_libraries(opencolorio/lib)
-  endif()
 endif()
+add_bundled_libraries(opencolorio/lib)
 
 if(WITH_CYCLES AND WITH_CYCLES_EMBREE)
   find_package(Embree 3.8.0 REQUIRED)
@@ -510,18 +495,14 @@ if(WITH_OPENSUBDIV)
   set(OPENSUBDIV_LIBPATH)  # TODO, remove and reference the absolute path everywhere
 
   set_and_warn_library_found("OpenSubdiv" OPENSUBDIV_FOUND WITH_OPENSUBDIV)
-  if(WITH_OPENSUBDIV)
-    add_bundled_libraries(opensubdiv/lib)
-  endif()
 endif()
+add_bundled_libraries(opensubdiv/lib)
 
 if(WITH_TBB)
   find_package_wrapper(TBB)
   set_and_warn_library_found("TBB" TBB_FOUND WITH_TBB)
-  if(WITH_TBB)
-    add_bundled_libraries(tbb/lib)
-  endif()
 endif()
+add_bundled_libraries(tbb/lib)
 
 if(WITH_XR_OPENXR)
   find_package(XR_OpenXR_SDK)
@@ -1013,18 +994,6 @@ endfunction()
 
 configure_atomic_lib_if_needed()
 
-# Handle library inter-dependencies.
-# FIXME: find a better place to handle inter-library dependencies.
-# This is done near the end of the file to ensure bundled libraries are not added multiple times.
-if(WITH_USD)
-  if(NOT WITH_OPENIMAGEIO)
-    add_bundled_libraries(openimageio/lib)
-  endif()
-  if(NOT WITH_OPENVDB)
-    add_bundled_libraries(openvdb/lib)
-  endif()
-endif()
-
 if(PLATFORM_BUNDLED_LIBRARIES)
   # For the installed Python module and installed Blender executable, we set the
   # rpath to the relative path where the install step will copy the shared libraries.
diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt
index 3570e9e8b4a..1cf908b4821 100644
--- a/source/creator/CMakeLists.txt
+++ b/source/creator/CMakeLists.txt
@@ -494,27 +494,27 @@ if(WITH_OPENCOLORIO)
     DIRECTORY ${CMAKE_SOURCE_DIR}/release/datafiles/colormanagement
     DESTINATION ${TARGETDIR_VER}/datafiles
   )
-  if(WIN32)
-    if(EXISTS ${LIBDIR}/opencolorio/bin/opencolorio_2_2.dll) # 3.5
-      windows_install_shared_manifest(
-        FILES ${LIBDIR}/opencolorio/bin/opencolorio_2_2.dll
-        RELEASE
-      )
-      windows_install_shared_manifest(
-        FILES ${LIBDIR}/opencolorio/bin/opencolorio_d_2_2.dll
-        DEBUG
-      )
-      install(
-        FILES ${LIBDIR}/opencolorio/lib/site-packages-debug/PyOpenColorIO_d.pyd
-        DESTINATION ${TARGETDIR_VER}/python/lib/site-packages
-        CONFIGURATIONS Debug
-      )
-      install(
-        FILES ${LIBDIR}/opencolorio/lib/site-packages/PyOpenColorIO.pyd


@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list