From 0a5debd2787bfab42d57455555ceb93bc8ba7490 Mon Sep 17 00:00:00 2001 From: Eric Wasylishen Date: Mon, 29 May 2023 20:30:49 -0600 Subject: [PATCH] build: fix Linux packaging - rename the tbb + tbbmalloc .so files from .so.X.Y to .so.X - set rpath to be "$ORIGIN" so the .so files are found --- CMakeLists.txt | 5 +++++ light/CMakeLists.txt | 16 +++++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a292e3df..01b66a5e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -43,6 +43,11 @@ set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON) set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_DEBUG OFF) set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELWITHDEBINFO OFF) +if (UNIX AND NOT APPLE) + set(CMAKE_INSTALL_RPATH "$ORIGIN") + set(CMAKE_BUILD_WITH_INSTALL_RPATH YES) +endif () + add_definitions(-DERICWTOOLS_VERSION="${GIT_DESCRIBE}") if (WIN32) diff --git a/light/CMakeLists.txt b/light/CMakeLists.txt index ca8209fa..78432d5e 100644 --- a/light/CMakeLists.txt +++ b/light/CMakeLists.txt @@ -102,19 +102,29 @@ if (embree_FOUND) if(UNIX) # HACK: preferred method is installing the symlink instead of the actual .so get_target_property(TBB_SO_FILE_SYMLINK TBB::tbb IMPORTED_LOCATION_RELEASE) - get_filename_component(TBB_SO_FILE "${TBB_SO_FILE_SYMLINK}" REALPATH) + message(STATUS "TBB .so symlink: ${TBB_SO_FILE_SYMLINK}") + # just the name part of the symlink + get_filename_component(TBB_SO_FILE_SYMLINK_NAME "${TBB_SO_FILE_SYMLINK}" NAME) + message(STATUS "TBB .so symlink name: ${TBB_SO_FILE_SYMLINK_NAME}") + + get_filename_component(TBB_SO_FILE "${TBB_SO_FILE_SYMLINK}" REALPATH) message(STATUS "TBB .so file: ${TBB_SO_FILE}") - install(FILES ${TBB_SO_FILE} DESTINATION bin) + install(FILES ${TBB_SO_FILE} DESTINATION bin RENAME "${TBB_SO_FILE_SYMLINK_NAME}") # tbbmalloc get_target_property(TBBMALLOC_SO_FILE_SYMLINK TBB::tbbmalloc IMPORTED_LOCATION_RELEASE) + message(STATUS "TBBMALLOC .so symlink: ${TBBMALLOC_SO_FILE_SYMLINK}") + + get_filename_component(TBBMALLOC_SO_FILE_SYMLINK_NAME "${TBBMALLOC_SO_FILE_SYMLINK}" NAME) + message(STATUS "TBBMALLOC .so symlink name: ${TBBMALLOC_SO_FILE_SYMLINK_NAME}") + get_filename_component(TBBMALLOC_SO_FILE "${TBBMALLOC_SO_FILE_SYMLINK}" REALPATH) message(STATUS "TBBMALLOC .so file: ${TBBMALLOC_SO_FILE}") - install(FILES ${TBBMALLOC_SO_FILE} DESTINATION bin) + install(FILES ${TBBMALLOC_SO_FILE} DESTINATION bin RENAME "${TBBMALLOC_SO_FILE_SYMLINK_NAME}") else() # preferred method install(FILES $ DESTINATION bin)