From 9478ad0945d76fc24eba1c3e88ef001ed22f160f Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 9 Dec 2009 10:56:30 -0500 Subject: [PATCH] Create CMakeLibTests output dir for Xcode Xcode 2.x forgets to create the target output directory before linking the individual architecture pieces of a universal binary for the target CMakeLibTests. Then it passes the directory to -L and -F options when linking the and warns that the directory does not exist. We work around the problem by using a pre-build rule on the target to create the output directory. --- Tests/CMakeLib/CMakeLists.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Tests/CMakeLib/CMakeLists.txt b/Tests/CMakeLib/CMakeLists.txt index 90bc04efb..bda2fa5f8 100644 --- a/Tests/CMakeLib/CMakeLists.txt +++ b/Tests/CMakeLib/CMakeLists.txt @@ -17,6 +17,16 @@ create_test_sourcelist(CMakeLib_TEST_SRCS CMakeLibTests.cxx ${CMakeLib_TESTS}) add_executable(CMakeLibTests ${CMakeLib_TEST_SRCS}) target_link_libraries(CMakeLibTests CMakeLib) +# Xcode 2.x forgets to create the output directory before linking +# the individual architectures. +if(CMAKE_OSX_ARCHITECTURES AND XCODE + AND NOT "${XCODE_VERSION}" MATCHES "^[^12]") + add_custom_command( + TARGET CMakeLibTests + PRE_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CFG_INTDIR}" + ) +endif() + foreach(test ${CMakeLib_TESTS}) add_test(CMakeLib.${test} CMakeLibTests ${test}) endforeach()