Skip to content

Commit 1c6510e

Browse files
committed
CMake: move rpath settings to installLSLApp, fix LSL_UNIXFOLDERS handling, lslver rpath
1 parent 12a8e7c commit 1c6510e

File tree

2 files changed

+21
-15
lines changed

2 files changed

+21
-15
lines changed

CMakeLists.txt

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -201,15 +201,12 @@ set_target_properties(lsl PROPERTIES
201201
VERSION ${liblsl_VERSION_MAJOR}.${liblsl_VERSION_MINOR}.${liblsl_VERSION_PATCH}
202202
)
203203

204-
set(LSL_EXPORT_TARGETS lsl lslobj lslboost lslver)
204+
set(LSL_EXPORT_TARGETS lsl lslobj lslboost)
205205
if(LSL_BUILD_STATIC)
206206
add_library(lsl-static STATIC)
207207
target_link_libraries(lsl-static PUBLIC lslobj PRIVATE lslboost)
208208
# for LSL_CPP_API export header
209209
target_compile_definitions(lsl-static INTERFACE LIBLSL_STATIC)
210-
add_executable(lslver-static testing/lslver.c)
211-
target_link_libraries(lslver-static PRIVATE lsl-static)
212-
list(APPEND LSL_EXPORT_TARGETS lsl-static)
213210
endif()
214211

215212
if(LSL_FORCE_FANCY_LIBNAME)
@@ -230,9 +227,6 @@ else()
230227
set(CMAKE_INSTALL_DATAROOTDIR LSL/share)
231228
endif()
232229

233-
add_executable(lslver testing/lslver.c)
234-
target_link_libraries(lslver PRIVATE lsl)
235-
236230
include(CMakePackageConfigHelpers)
237231
write_basic_package_version_file(
238232
"${CMAKE_CURRENT_BINARY_DIR}/LSLConfigVersion.cmake"
@@ -280,6 +274,15 @@ install(FILES
280274

281275
include(cmake/LSLCMake.cmake)
282276

277+
add_executable(lslver testing/lslver.c)
278+
target_link_libraries(lslver PRIVATE lsl)
279+
installLSLApp(lslver)
280+
if(LSL_BUILD_STATIC)
281+
add_executable(lslver-static testing/lslver.c)
282+
target_link_libraries(lslver-static PRIVATE lsl-static)
283+
installLSLApp(lslver-static)
284+
endif()
285+
283286
if(LSL_UNITTESTS)
284287
add_subdirectory(testing)
285288
endif()

cmake/LSLCMake.cmake

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,6 @@ endif()
2424
# Generate folders for IDE targets (e.g., VisualStudio solutions)
2525
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
2626

27-
# Set runtime path, i.e. where shared libs are searched relative to the exe
28-
if(APPLE)
29-
list(APPEND CMAKE_INSTALL_RPATH "@executable_path/../LSL/lib")
30-
list(APPEND CMAKE_INSTALL_RPATH "@executable_path/../lib")
31-
list(APPEND CMAKE_INSTALL_RPATH "@executable_path/")
32-
elseif(UNIX)
33-
list(APPEND CMAKE_INSTALL_RPATH "\$ORIGIN/../LSL/lib:\$ORIGIN/../lib/:\$ORIGIN")
34-
endif()
3527

3628
set(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "limited configs" FORCE)
3729

@@ -82,6 +74,17 @@ function(installLSLApp target)
8274
set_property(INSTALL "${PROJECT_NAME}/$<TARGET_FILE_NAME:${target}>" PROPERTY
8375
CPACK_START_MENU_SHORTCUTS "${target}")
8476

77+
78+
# Set runtime path, i.e. where shared libs are searched relative to the exe
79+
set(LIBDIRGENEXPR "../$<IF:$<BOOL:${LSL_UNIXFOLDERS}>,lib/,LSL/lib/>")
80+
if(APPLE)
81+
set_property(TARGET ${target} APPEND
82+
PROPERTY INSTALL_RPATH "@executable_path/;@executable_path/${LIBDIRGENEXPR}")
83+
elseif(UNIX)
84+
set_property(TARGET ${target}
85+
PROPERTY INSTALL_RPATH "\$ORIGIN:\$ORIGIN/${LIBDIRGENEXPR}")
86+
endif()
87+
8588
if(LSL_UNIXFOLDERS)
8689
include(GNUInstallDirs)
8790
set(lsldir "\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")

0 commit comments

Comments
 (0)