aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLRFLEW <LRFLEW@aol.com>2018-10-23 17:49:48 -0600
committerRobert Schumacher <roschuma@microsoft.com>2018-10-23 16:49:48 -0700
commit16e7f4187bd2864705b11e24b29896a2987deaeb (patch)
tree1cb87ac6d8b23ec7451319bb170a5a7ff10cc351
parentc99f891b305ae0c3a0c72ad127480ac5851cfbd7 (diff)
downloadvcpkg-16e7f4187bd2864705b11e24b29896a2987deaeb.tar.gz
vcpkg-16e7f4187bd2864705b11e24b29896a2987deaeb.zip
Create macOS configuration variables for triplets (#4477)
* Create macOS configuration variables for triplets * Add new macOS configuration variables to documentation * [vcpkg-configure-cmake] Fix typo
-rw-r--r--docs/users/triplets.md11
-rw-r--r--scripts/cmake/vcpkg_configure_cmake.cmake11
-rw-r--r--scripts/toolchains/osx.cmake2
3 files changed, 24 insertions, 0 deletions
diff --git a/docs/users/triplets.md b/docs/users/triplets.md
index 2bb9c74b3..9ff372aed 100644
--- a/docs/users/triplets.md
+++ b/docs/users/triplets.md
@@ -69,6 +69,17 @@ This option also has forms for configuration-specific and C flags:
- `VCPKG_C_FLAGS_DEBUG`
- `VCPKG_C_FLAGS_RELEASE`
+## macOS Variables
+
+### VCPKG_INSTALL_NAME_DIR
+Sets the install name used when building macOS dynamic libraries. Default value is `@rpath`. See the CMake documentation for [CMAKE_INSTALL_NAME_DIR](https://cmake.org/cmake/help/latest/variable/CMAKE_INSTALL_NAME_DIR.html) for more information.
+
+### VCPKG_OSX_DEPLOYMENT_TARGET
+Sets the minimum macOS version for compiled binaries. This also changes what versions of the macOS platform SDK that CMake will search for. See the CMake documentation for [CMAKE_OSX_DEPLOYMENT_TARGET](https://cmake.org/cmake/help/latest/variable/CMAKE_OSX_DEPLOYMENT_TARGET.html) for more information.
+
+### VCPKG_OSX_SYSROOT
+Set the name or path of the macOS platform SDK that will be used by CMake. See the CMake documentation for [CMAKE_OSX_SYSROOT](https://cmake.org/cmake/help/latest/variable/CMAKE_OSX_SYSROOT.html) for more information.
+
## Per-port customization
The CMake Macro `PORT` will be set when interpreting the triplet file and can be used to change settings (such as `VCPKG_LIBRARY_LINKAGE`) on a per-port basis.
diff --git a/scripts/cmake/vcpkg_configure_cmake.cmake b/scripts/cmake/vcpkg_configure_cmake.cmake
index e89ac660e..617fe1a0f 100644
--- a/scripts/cmake/vcpkg_configure_cmake.cmake
+++ b/scripts/cmake/vcpkg_configure_cmake.cmake
@@ -201,6 +201,17 @@ function(vcpkg_configure_cmake)
)
endif()
+ # Sets configuration variables for macOS builds
+ if(DEFINED VCPKG_INSTALL_NAME_DIR)
+ list(APPEND _csc_OPTIONS "-DCMAKE_INSTALL_NAME_DIR=${VCPKG_INSTALL_NAME_DIR}")
+ endif()
+ if(DEFINED VCPKG_OSX_DEPLOYMENT_TARGET)
+ list(APPEND _csc_OPTIONS "-DCMAKE_OSX_DEPLOYMENT_TARGET=${VCPKG_OSX_DEPLOYMENT_TARGET}")
+ endif()
+ if(DEFINED VCPKG_OSX_SYSROOT)
+ list(APPEND _csc_OPTIONS "-DCMAKE_OSX_SYSROOT=${VCPKG_OSX_SYSROOT}")
+ endif()
+
set(rel_command
${CMAKE_COMMAND} ${_csc_SOURCE_PATH} "${_csc_OPTIONS}" "${_csc_OPTIONS_RELEASE}"
-G ${GENERATOR}
diff --git a/scripts/toolchains/osx.cmake b/scripts/toolchains/osx.cmake
index 9c4fdb12e..296d74ebe 100644
--- a/scripts/toolchains/osx.cmake
+++ b/scripts/toolchains/osx.cmake
@@ -9,6 +9,8 @@ else()
endif()
set(CMAKE_SYSTEM_NAME Darwin CACHE STRING "")
+set(CMAKE_MACOSX_RPATH ON CACHE BOOL "")
+
get_property( _CMAKE_IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE )
if(NOT _CMAKE_IN_TRY_COMPILE)
set(CMAKE_CXX_FLAGS "${VCPKG_CXX_FLAGS} -fPIC" CACHE STRING "")