aboutsummaryrefslogtreecommitdiffhomepage
path: root/cmake/install.cmake
diff options
context:
space:
mode:
authorGravatar Mizux <dev@mizux.net>2018-05-22 21:52:07 +0200
committerGravatar Feng Xiao <xfxyjwf@gmail.com>2018-05-22 12:52:07 -0700
commit7306f549bf913c301fb141796b24c5bb7b0ed53a (patch)
tree917a962e0809695edd994618d83073e9686f9575 /cmake/install.cmake
parentd39a73f2038194c415c482514242ffb5268e9d7e (diff)
CMake OSX rpath management (#4620)
* CMake: Add comment for CMP0048 * CMake: osx use @rpath/ as target's install name (CMP0042) On MacoS library should use @rpath/ as prefix path instead of absolute build path e.g. otool -L libprotobuf.dylib libprotobuf.dylib: @rpath/libprotobuf.dylib (...) ... * CMake: add rpath to target for LINUX and APPLE
Diffstat (limited to 'cmake/install.cmake')
-rw-r--r--cmake/install.cmake14
1 files changed, 14 insertions, 0 deletions
diff --git a/cmake/install.cmake b/cmake/install.cmake
index 82036cb6..9b2ae93c 100644
--- a/cmake/install.cmake
+++ b/cmake/install.cmake
@@ -15,6 +15,13 @@ foreach(_library ${_protobuf_libraries})
PROPERTY INTERFACE_INCLUDE_DIRECTORIES
$<BUILD_INTERFACE:${protobuf_source_dir}/src>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
+ if (UNIX AND NOT APPLE)
+ set_property(TARGET ${_library}
+ PROPERTY INSTALL_RPATH "$ORIGIN")
+ elseif (APPLE)
+ set_property(TARGET ${_library}
+ PROPERTY INSTALL_RPATH "@loader_path")
+ endif()
install(TARGETS ${_library} EXPORT protobuf-targets
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${_library}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT ${_library}
@@ -24,6 +31,13 @@ endforeach()
if (protobuf_BUILD_PROTOC_BINARIES)
install(TARGETS protoc EXPORT protobuf-targets
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT protoc)
+ if (UNIX AND NOT APPLE)
+ set_property(TARGET protoc
+ PROPERTY INSTALL_RPATH "$ORIGIN/../lib")
+ elseif (APPLE)
+ set_property(TARGET protoc
+ PROPERTY INSTALL_RPATH "@loader_path/../lib")
+ endif()
endif (protobuf_BUILD_PROTOC_BINARIES)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/protobuf.pc ${CMAKE_CURRENT_BINARY_DIR}/protobuf-lite.pc DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")