Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'build_files/cmake/platform/platform_unix.cmake')
-rw-r--r--build_files/cmake/platform/platform_unix.cmake121
1 files changed, 65 insertions, 56 deletions
diff --git a/build_files/cmake/platform/platform_unix.cmake b/build_files/cmake/platform/platform_unix.cmake
index 35103ec441b..405afcec836 100644
--- a/build_files/cmake/platform/platform_unix.cmake
+++ b/build_files/cmake/platform/platform_unix.cmake
@@ -70,10 +70,6 @@ if(EXISTS ${LIBDIR})
set(CLANG_ROOT_DIR ${LIBDIR}/llvm)
endif()
-if(WITH_STATIC_LIBS)
- string(APPEND CMAKE_EXE_LINKER_FLAGS " -static-libstdc++")
-endif()
-
# Wrapper to prefer static libraries
macro(find_package_wrapper)
if(WITH_STATIC_LIBS)
@@ -83,15 +79,6 @@ macro(find_package_wrapper)
endif()
endmacro()
-# Utility to install precompiled shared libraries.
-macro(add_bundled_libraries library)
- if(EXISTS ${LIBDIR})
- file(GLOB _all_library_versions ${LIBDIR}/${library}/lib/*\.so*)
- list(APPEND PLATFORM_BUNDLED_LIBRARIES ${_all_library_versions})
- unset(_all_library_versions)
- endif()
-endmacro()
-
# ----------------------------------------------------------------------------
# Precompiled Libraries
#
@@ -174,7 +161,10 @@ endif()
if(WITH_IMAGE_OPENEXR)
find_package_wrapper(OpenEXR) # our own module
- if(NOT OPENEXR_FOUND)
+ if(OPENEXR_FOUND)
+ add_bundled_libraries(openexr/lib)
+ add_bundled_libraries(imath/lib)
+ else()
set(WITH_IMAGE_OPENEXR OFF)
endif()
endif()
@@ -342,16 +332,20 @@ if(WITH_CYCLES_DEVICE_ONEAPI)
endif()
if(WITH_OPENVDB)
- find_package_wrapper(OpenVDB)
+ find_package(OpenVDB)
find_package_wrapper(Blosc)
- if(NOT OPENVDB_FOUND)
+ if(OPENVDB_FOUND)
+ add_bundled_libraries(openvdb/lib)
+
+ if(NOT EXISTS ${LIBDIR} AND NOT BLOSC_FOUND)
+ set(WITH_OPENVDB_BLOSC OFF)
+ message(STATUS "Blosc not found, disabling it for OpenVBD")
+ endif()
+ else()
set(WITH_OPENVDB OFF)
set(WITH_OPENVDB_BLOSC OFF)
message(STATUS "OpenVDB not found, disabling it")
- elseif(NOT BLOSC_FOUND)
- set(WITH_OPENVDB_BLOSC OFF)
- message(STATUS "Blosc not found, disabling it for OpenVBD")
endif()
endif()
@@ -377,9 +371,11 @@ if(WITH_ALEMBIC)
endif()
if(WITH_USD)
- find_package_wrapper(USD)
+ find_package(USD)
- if(NOT USD_FOUND)
+ if(USD_FOUND)
+ add_bundled_libraries(usd/lib)
+ else()
set(WITH_USD OFF)
endif()
endif()
@@ -388,7 +384,7 @@ if(WITH_BOOST)
# uses in build instructions to override include and library variables
if(NOT BOOST_CUSTOM)
if(WITH_STATIC_LIBS)
- set(Boost_USE_STATIC_LIBS ON)
+ set(Boost_USE_STATIC_LIBS OFF)
endif()
set(Boost_USE_MULTITHREADED ON)
set(__boost_packages filesystem regex thread date_time)
@@ -404,6 +400,9 @@ if(WITH_BOOST)
if(WITH_OPENVDB)
list(APPEND __boost_packages iostreams)
endif()
+ if(WITH_USD AND USD_PYTHON_SUPPORT)
+ list(APPEND __boost_packages python${PYTHON_VERSION_NO_DOTS})
+ endif()
list(APPEND __boost_packages system)
find_package(Boost 1.48 COMPONENTS ${__boost_packages})
if(NOT Boost_FOUND)
@@ -430,6 +429,8 @@ if(WITH_BOOST)
find_package(IcuLinux)
list(APPEND BOOST_LIBRARIES ${ICU_LIBRARIES})
endif()
+
+ add_bundled_libraries(boost/lib)
endif()
if(WITH_PUGIXML)
@@ -459,7 +460,6 @@ if(WITH_OPENIMAGEIO)
${ZLIB_LIBRARIES}
${BOOST_LIBRARIES}
)
- set(OPENIMAGEIO_LIBPATH) # TODO, remove and reference the absolute path everywhere
set(OPENIMAGEIO_DEFINITIONS "")
if(WITH_IMAGE_TIFF)
@@ -472,7 +472,9 @@ if(WITH_OPENIMAGEIO)
list(APPEND OPENIMAGEIO_LIBRARIES "${WEBP_LIBRARIES}")
endif()
- if(NOT OPENIMAGEIO_FOUND)
+ if(OPENIMAGEIO_FOUND)
+ add_bundled_libraries(openimageio/lib)
+ else()
set(WITH_OPENIMAGEIO OFF)
message(STATUS "OpenImageIO not found, disabling WITH_CYCLES")
endif()
@@ -533,12 +535,11 @@ if(WITH_LLVM)
endif()
if(WITH_OPENSUBDIV)
- find_package_wrapper(OpenSubdiv)
+ find_package(OpenSubdiv)
- set(OPENSUBDIV_LIBRARIES ${OPENSUBDIV_LIBRARIES})
- set(OPENSUBDIV_LIBPATH) # TODO, remove and reference the absolute path everywhere
-
- if(NOT OPENSUBDIV_FOUND)
+ if(OPENSUBDIV_FOUND)
+ add_bundled_libraries(opensubdiv/lib)
+ else()
set(WITH_OPENSUBDIV OFF)
message(STATUS "OpenSubdiv not found")
endif()
@@ -546,7 +547,9 @@ endif()
if(WITH_TBB)
find_package_wrapper(TBB)
- if(NOT TBB_FOUND)
+ if(TBB_FOUND)
+ add_bundled_libraries(tbb/lib)
+ elseif(EXISTS ${LIBDIR})
message(WARNING "TBB not found, disabling WITH_TBB")
set(WITH_TBB OFF)
endif()
@@ -740,41 +743,41 @@ if(WITH_GHOST_WAYLAND)
endif()
if(WITH_GHOST_WAYLAND)
- if(WITH_GHOST_WAYLAND_DBUS)
- pkg_check_modules(dbus REQUIRED dbus-1)
- endif()
+ if(WITH_GHOST_WAYLAND_DBUS)
+ pkg_check_modules(dbus REQUIRED dbus-1)
+ endif()
- if(WITH_GHOST_WAYLAND_LIBDECOR)
- pkg_check_modules(libdecor REQUIRED libdecor-0>=0.1)
- endif()
+ if(WITH_GHOST_WAYLAND_LIBDECOR)
+ pkg_check_modules(libdecor REQUIRED libdecor-0>=0.1)
+ endif()
+ list(APPEND PLATFORM_LINKLIBS
+ ${xkbcommon_LINK_LIBRARIES}
+ )
+
+ if(NOT WITH_GHOST_WAYLAND_DYNLOAD)
list(APPEND PLATFORM_LINKLIBS
- ${xkbcommon_LINK_LIBRARIES}
+ ${wayland-client_LINK_LIBRARIES}
+ ${wayland-egl_LINK_LIBRARIES}
+ ${wayland-cursor_LINK_LIBRARIES}
)
+ endif()
- if(NOT WITH_GHOST_WAYLAND_DYNLOAD)
- list(APPEND PLATFORM_LINKLIBS
- ${wayland-client_LINK_LIBRARIES}
- ${wayland-egl_LINK_LIBRARIES}
- ${wayland-cursor_LINK_LIBRARIES}
- )
- endif()
+ if(WITH_GHOST_WAYLAND_DBUS)
+ list(APPEND PLATFORM_LINKLIBS
+ ${dbus_LINK_LIBRARIES}
+ )
+ add_definitions(-DWITH_GHOST_WAYLAND_DBUS)
+ endif()
- if(WITH_GHOST_WAYLAND_DBUS)
+ if(WITH_GHOST_WAYLAND_LIBDECOR)
+ if(NOT WITH_GHOST_WAYLAND_DYNLOAD)
list(APPEND PLATFORM_LINKLIBS
- ${dbus_LINK_LIBRARIES}
+ ${libdecor_LIBRARIES}
)
- add_definitions(-DWITH_GHOST_WAYLAND_DBUS)
- endif()
-
- if(WITH_GHOST_WAYLAND_LIBDECOR)
- if(NOT WITH_GHOST_WAYLAND_DYNLOAD)
- list(APPEND PLATFORM_LINKLIBS
- ${libdecor_LIBRARIES}
- )
- endif()
- add_definitions(-DWITH_GHOST_WAYLAND_LIBDECOR)
endif()
+ add_definitions(-DWITH_GHOST_WAYLAND_LIBDECOR)
+ endif()
if(EXISTS "${LIBDIR}/wayland/bin/wayland-scanner")
set(WAYLAND_SCANNER "${LIBDIR}/wayland/bin/wayland-scanner")
@@ -1113,4 +1116,10 @@ if(PLATFORM_BUNDLED_LIBRARIES)
# and because the build and install folder may be different.
set(CMAKE_SKIP_BUILD_RPATH FALSE)
list(APPEND CMAKE_BUILD_RPATH $ORIGIN/lib ${CMAKE_INSTALL_PREFIX_WITH_CONFIG}/lib)
+
+ # Environment variables to run precompiled executables that needed libraries.
+ list(JOIN PLATFORM_BUNDLED_LIBRARY_DIRS ":" _library_paths)
+ set(PLATFORM_ENV_BUILD "LD_LIBRARY_PATH=\"${_library_paths};${LD_LIBRARY_PATH}\"")
+ set(PLATFORM_ENV_INSTALL "LD_LIBRARY_PATH=${CMAKE_INSTALL_PREFIX_WITH_CONFIG}/lib/;$LD_LIBRARY_PATH")
+ unset(_library_paths)
endif()