|
@@ -40,21 +40,30 @@ target_link_libraries(test3 framework)
|
|
|
add_executable(test4 test1.cpp)
|
|
|
target_link_libraries(test4 shared2)
|
|
|
|
|
|
+# executable to test a shared library dependency with build rpath
|
|
|
+add_executable(test5 test1.cpp)
|
|
|
+
|
|
|
+# avoid linking by 'target_link_libraries' so CMake
|
|
|
+# will not be able to set correct RPATH automatically
|
|
|
+add_dependencies(test5 shared)
|
|
|
+target_link_libraries(test5 "$<TARGET_FILE:shared>")
|
|
|
+set_target_properties(test5 PROPERTIES BUILD_RPATH "@loader_path/../lib")
|
|
|
+
|
|
|
set_target_properties(shared shared2 framework PROPERTIES
|
|
|
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/lib")
|
|
|
-set_target_properties(test1 test2 test3 test4 PROPERTIES
|
|
|
+set_target_properties(test1 test2 test3 test4 test5 PROPERTIES
|
|
|
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin")
|
|
|
foreach(config ${CMAKE_CONFIGURATION_TYPES})
|
|
|
string(TOUPPER ${config} CONFIG)
|
|
|
set_target_properties(shared shared2 framework PROPERTIES
|
|
|
LIBRARY_OUTPUT_DIRECTORY_${CONFIG}
|
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${config}/lib")
|
|
|
- set_target_properties(test1 test2 test3 test4 PROPERTIES
|
|
|
+ set_target_properties(test1 test2 test3 test4 test5 PROPERTIES
|
|
|
RUNTIME_OUTPUT_DIRECTORY_${CONFIG}
|
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${config}/bin")
|
|
|
endforeach()
|
|
|
|
|
|
-foreach(test test1 test2 test3 test4)
|
|
|
+foreach(test test1 test2 test3 test4 test5)
|
|
|
add_custom_target(${test}_run ALL
|
|
|
COMMAND ${test}
|
|
|
DEPENDS ${test}
|