OS X: Add CMP0042 to enable MACOSX_RPATH by default

Also adding documentation for CMAKE_MACOSX_RPATH, and improving
documentation for MACOSX_RPATH.
This commit is contained in:
Clinton Stimpson
2013-12-18 21:25:29 -07:00
committed by Brad King
parent 2a384e08cc
commit d25ad482e9
30 changed files with 223 additions and 14 deletions
+4 -2
View File
@@ -10,13 +10,15 @@ add_library(shared2 SHARED shared.cpp shared.h)
set_target_properties(shared2 PROPERTIES
BUILD_WITH_INSTALL_RPATH 1 INSTALL_NAME_DIR "@rpath")
cmake_policy(SET CMP0042 NEW)
# a framework library
add_library(framework SHARED framework.cpp framework.h)
set_target_properties(framework PROPERTIES MACOSX_RPATH 1 FRAMEWORK 1)
set_target_properties(framework PROPERTIES FRAMEWORK 1)
# another framework
add_library(framework2 SHARED framework2.cpp framework2.h)
set_target_properties(framework2 PROPERTIES MACOSX_RPATH 1 FRAMEWORK 1)
set_target_properties(framework2 PROPERTIES FRAMEWORK 1)
# executable to test a shared library dependency with install rpaths
add_executable(test1 test1.cpp)
@@ -1,5 +1,7 @@
enable_language(CXX)
cmake_policy(SET CMP0042 NEW)
add_library(foo SHARED empty_vs6_1.cpp)
add_library(bar SHARED empty_vs6_2.cpp)
target_link_libraries(bar foo)
@@ -1,6 +1,8 @@
project(CMP0022-WARN)
cmake_policy(SET CMP0042 NEW)
add_library(foo SHARED empty_vs6_1.cpp)
add_library(bar SHARED empty_vs6_2.cpp)
add_library(bat SHARED empty_vs6_3.cpp)
@@ -0,0 +1 @@
0
@@ -0,0 +1 @@
^$
+4
View File
@@ -0,0 +1,4 @@
cmake_policy(SET CMP0042 NEW)
add_library(foo SHARED empty.cpp)
@@ -0,0 +1 @@
0
@@ -0,0 +1 @@
^$
+4
View File
@@ -0,0 +1,4 @@
cmake_policy(SET CMP0042 OLD)
add_library(foo SHARED empty.cpp)
@@ -0,0 +1 @@
0
@@ -0,0 +1,10 @@
CMake Warning \(dev\):
Policy CMP0042 is not set: MACOSX_RPATH is enabled by default. Run "cmake
--help-policy CMP0042" for policy details. Use the cmake_policy command to
set the policy and suppress this warning.
MACOSX_RPATH is not specified for the following targets:
foo
This warning is for project developers. Use -Wno-dev to suppress it.
@@ -0,0 +1,9 @@
add_library(foo SHARED empty.cpp)
add_library(foo-static STATIC empty.cpp)
add_library(foo2 SHARED empty.cpp)
set_target_properties(foo2 PROPERTIES MACOSX_RPATH 1)
add_library(foo3 SHARED empty.cpp)
set_target_properties(foo3 PROPERTIES BUILD_WITH_INSTALL_RPATH 1 INSTALL_NAME_DIR "@loader_path")
add_library(foo4 SHARED empty.cpp)
set_target_properties(foo4 PROPERTIES BUILD_WITH_INSTALL_RPATH 1 INSTALL_NAME_DIR "@rpath")
+3
View File
@@ -0,0 +1,3 @@
cmake_minimum_required(VERSION 2.8)
project(${RunCMake_TEST} CXX)
include(${RunCMake_TEST}.cmake NO_POLICY_SCOPE)
@@ -0,0 +1,5 @@
include(RunCMake)
run_cmake(CMP0042-OLD)
run_cmake(CMP0042-NEW)
run_cmake(CMP0042-WARN)
+7
View File
@@ -0,0 +1,7 @@
#ifdef _WIN32
__declspec(dllexport)
#endif
int empty()
{
return 0;
}
+3
View File
@@ -61,6 +61,9 @@ add_RunCMake_test(CMP0038)
add_RunCMake_test(CMP0039)
add_RunCMake_test(CMP0040)
add_RunCMake_test(CMP0041)
if(CMAKE_SYSTEM_NAME MATCHES Darwin AND CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG)
add_RunCMake_test(CMP0042)
endif()
add_RunCMake_test(CTest)
if(UNIX AND "${CMAKE_TEST_GENERATOR}" MATCHES "Unix Makefiles")
add_RunCMake_test(CompilerChange)