[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