You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@serf.apache.org by br...@apache.org on 2018/09/28 11:06:59 UTC
svn commit: r1842236 - in /serf/trunk: CMakeLists.txt
build/SerfPlatform.cmake
Author: brane
Date: Fri Sep 28 11:06:59 2018
New Revision: 1842236
URL: http://svn.apache.org/viewvc?rev=1842236&view=rev
Log:
In the CMake build on macOS, add an option to use @rpath in the shared library.
* CMakeLists.txt: Reorder build options before their use (style change only).
Put platform-relative build options last.
(RELATIVE_RPATH): New macOS-specific build option.
(serf_shared): Only add the INSTALL_LIB_DIR property on macOS,
depending on RELATIVE_RPATH.
* build/SerfPlatform.cmake (CMAKE_MACOSX_RPATH): Depends on RELATIVE_RPATH.
Modified:
serf/trunk/CMakeLists.txt
serf/trunk/build/SerfPlatform.cmake
Modified: serf/trunk/CMakeLists.txt
URL: http://svn.apache.org/viewvc/serf/trunk/CMakeLists.txt?rev=1842236&r1=1842235&r2=1842236&view=diff
==============================================================================
--- serf/trunk/CMakeLists.txt (original)
+++ serf/trunk/CMakeLists.txt Fri Sep 28 11:06:59 2018
@@ -45,18 +45,6 @@ message(WARNING
"Some features are not supported and the build "
"has not been tested on many supported platforms.")
-# Initialize the build type if it was not set on the command line.
-if(NOT CMAKE_BUILD_TYPE)
- if(DEBUG)
- set(CMAKE_BUILD_TYPE DEBUG CACHE STRING "Default to debug build.")
- else()
- set(CMAKE_BUILD_TYPE RELEASE CACHE STRING "Default to release build.")
- endif()
-endif()
-
-include(SerfPlatform)
-include(SerfWindowsToolkit)
-
# Build options
option(DEBUG "Enable debugging info and strict compile warnings" OFF)
@@ -65,16 +53,32 @@ option(SKIP_STATIC "Disable building sta
option(LIBDIR "Install directory for architecture-dependent libraries" "")
option(GSSAPI "Path to GSSAPI's install area" "")
option(BROTLI "Path to Brotli's install area" "")
-option(APR_STATIC "Windows: Link with static APR/-Util libraries" OFF)
-option(EXPAT "Windows: optional path to Expat's install area for APR_STATIC" "")
option(DISABLE_LOGGING "Disable the logging framework at compile time" OFF)
option(SKIP_TESTS "Disable building the unit tests and utilities" OFF)
option(ENABLE_SLOW_TESTS "Enable long-running unit tests" OFF)
+# Platform-specific build options
+option(APR_STATIC "Windows: Link with static APR/-Util libraries" OFF)
+option(EXPAT "Windows: optional path to Expat's install area for APR_STATIC" "")
+option(RELATIVE_RPATH "macOS: Use @rpath in installed shared library" OFF)
+
if(SKIP_SHARED AND SKIP_STATIC)
message(FATAL_ERROR "You have disabled both shared and static library builds.")
endif()
+# Initialize the build type if it was not set on the command line.
+if(NOT CMAKE_BUILD_TYPE)
+ if(DEBUG)
+ set(CMAKE_BUILD_TYPE DEBUG CACHE STRING "Default to debug build.")
+ else()
+ set(CMAKE_BUILD_TYPE RELEASE CACHE STRING "Default to release build.")
+ endif()
+endif()
+
+include(SerfPlatform)
+include(SerfWindowsToolkit)
+
+
# Public headers
list(APPEND HEADERS
"serf.h"
@@ -299,11 +303,13 @@ if(NOT SKIP_SHARED)
PRIVATE ${SERF_PRIVATE_TARGETS}
${SERF_STANDARD_LIBRARIES}
PUBLIC ${SERF_PUBLIC_TARGETS})
- set_target_properties(serf_shared
- PROPERTIES
+ set_target_properties(serf_shared PROPERTIES
VERSION ${SERF_VERSION}
- SOVERSION ${SERF_SOVERSION}
- INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib")
+ SOVERSION ${SERF_SOVERSION})
+ if(SERF_DARWIN AND NOT RELATIVE_RPATH)
+ set_target_properties(serf_shared PROPERTIES
+ INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib")
+ endif()
set(SERF_TARGETS "serf_shared")
if(SERF_WINDOWS)
Modified: serf/trunk/build/SerfPlatform.cmake
URL: http://svn.apache.org/viewvc/serf/trunk/build/SerfPlatform.cmake?rev=1842236&r1=1842235&r2=1842236&view=diff
==============================================================================
--- serf/trunk/build/SerfPlatform.cmake (original)
+++ serf/trunk/build/SerfPlatform.cmake Fri Sep 28 11:06:59 2018
@@ -19,7 +19,9 @@
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
set(SERF_DARWIN TRUE)
- set(CMAKE_MACOSX_RPATH FALSE)
+ if(NOT RELATIVE_RPATH)
+ set(CMAKE_MACOSX_RPATH FALSE)
+ endif()
message(STATUS "Target platform is Darwin (macOS)")
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
set(SERF_LINUX TRUE)