mirror of
https://github.com/Kitware/CMake.git
synced 2026-05-02 12:19:54 -05:00
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:
committed by
Brad King
parent
2a384e08cc
commit
d25ad482e9
@@ -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 @@
|
||||
^$
|
||||
@@ -0,0 +1,4 @@
|
||||
|
||||
cmake_policy(SET CMP0042 NEW)
|
||||
|
||||
add_library(foo SHARED empty.cpp)
|
||||
@@ -0,0 +1 @@
|
||||
0
|
||||
@@ -0,0 +1 @@
|
||||
^$
|
||||
@@ -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")
|
||||
@@ -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)
|
||||
@@ -0,0 +1,7 @@
|
||||
#ifdef _WIN32
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
int empty()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user