From 0ee2a004e70e2d49423f5b4b393896258e8ab688 Mon Sep 17 00:00:00 2001
From: Gregor Jasny <gjasny@googlemail.com>
Date: Sun, 22 Feb 2015 19:00:11 +0100
Subject: OS X: Add platform-specific Frameworks search path

Otherwise find_library is unable to lookup the XCTest framework which
is not located in the SDK serach path:

In the 10.10 SDK the SDK frameworks are located here:

  $DEVELOPER_DIR/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks

whereas the Platform SDKs are located here:

  $DEVELOPER_DIR/Platforms/MacOSX.platform/Developer/Library/Frameworks

Signed-off-by: Gregor Jasny <gjasny@googlemail.com>
---
 Modules/Platform/Darwin.cmake                             | 7 +++++++
 Tests/RunCMake/CMakeLists.txt                             | 2 +-
 Tests/RunCMake/XcodeProject/RunCMakeTest.cmake            | 3 +++
 Tests/RunCMake/XcodeProject/XcodePlatformFrameworks.cmake | 6 ++++++
 4 files changed, 17 insertions(+), 1 deletion(-)
 create mode 100644 Tests/RunCMake/XcodeProject/XcodePlatformFrameworks.cmake

diff --git a/Modules/Platform/Darwin.cmake b/Modules/Platform/Darwin.cmake
index e5c5f36..b912d98 100644
--- a/Modules/Platform/Darwin.cmake
+++ b/Modules/Platform/Darwin.cmake
@@ -166,6 +166,13 @@ if(_CMAKE_OSX_SYSROOT_PATH)
     ${_CMAKE_OSX_SYSROOT_PATH}/Network/Library/Frameworks
     ${_CMAKE_OSX_SYSROOT_PATH}/System/Library/Frameworks
     )
+  # add platform developer framework path if exists
+  get_filename_component(_CMAKE_OSX_PLATFORM_FRAMEWORK_PATH
+    ${_CMAKE_OSX_SYSROOT_PATH}/../../Library/Frameworks ABSOLUTE)
+  if(IS_DIRECTORY ${_CMAKE_OSX_PLATFORM_FRAMEWORK_PATH})
+    list(APPEND CMAKE_SYSTEM_FRAMEWORK_PATH
+      ${_CMAKE_OSX_PLATFORM_FRAMEWORK_PATH})
+  endif()
 endif()
 list(APPEND CMAKE_SYSTEM_FRAMEWORK_PATH
   /Library/Frameworks
diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt
index fd01201..6663b88 100644
--- a/Tests/RunCMake/CMakeLists.txt
+++ b/Tests/RunCMake/CMakeLists.txt
@@ -176,7 +176,7 @@ if("${CMAKE_GENERATOR}" MATCHES "Visual Studio [^6]")
 endif()
 
 if(XCODE_VERSION AND NOT "${XCODE_VERSION}" VERSION_LESS 3)
-  add_RunCMake_test(XcodeProject)
+  add_RunCMake_test(XcodeProject -DXCODE_VERSION=${XCODE_VERSION})
 endif()
 
 add_RunCMake_test(File_Generate)
diff --git a/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake b/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake
index 792f40e..03d3cd3 100644
--- a/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake
+++ b/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake
@@ -3,3 +3,6 @@ include(RunCMake)
 run_cmake(XcodeFileType)
 run_cmake(XcodeAttributeGenex)
 run_cmake(XcodeAttributeGenexError)
+if (NOT XCODE_VERSION VERSION_LESS 6)
+  run_cmake(XcodePlatformFrameworks)
+endif()
diff --git a/Tests/RunCMake/XcodeProject/XcodePlatformFrameworks.cmake b/Tests/RunCMake/XcodeProject/XcodePlatformFrameworks.cmake
new file mode 100644
index 0000000..74dc978
--- /dev/null
+++ b/Tests/RunCMake/XcodeProject/XcodePlatformFrameworks.cmake
@@ -0,0 +1,6 @@
+enable_language(C)
+
+find_library(XCTEST_LIBRARY XCTest)
+if(NOT XCTEST_LIBRARY)
+  message(FATAL_ERROR "XCTest Framework not found.")
+endif()
-- 
cgit v0.12