CMake/Tests/RunCMake/XcodeProject
Gregor Jasny 10c9c73d58 Xcode: Control emission of EFFECTIVE_PLATFORM_NAME
When building with multiple SDKs within one project Xcode requires
the usage of ${EFFECTIVE_PLATFORM_NAME} to put temporary and build
outout into separate directories. For example an iOS device and
simulator build use two different SDKs (iphoneos and iphonesimulator).

In the past cmake tries to detect embedded toolchains that could
possibly use simulators and emitted EFFECTIVE_PLATFORM_NAME (EPN)
at the proper locations. In #16253 Mark noticed that if he
uses macosx and iphoneos in combination the necessary EPN is not
emitted. This is because CMake by default assumes macosx SDK which
does not trigger EPN emission.

The fist naive approach - enabling EPN unconditionally revealed that
then the EPN leaks into generator expressions like $<TARGET_FILE:xxx>
which might be a regression and thus is unacceptable.

The next approach was to add an CMake property to enable EPN emission
unconditionally. This solved the reported problem.

But the EPN leakage also happened for the embedded toolchains already
without anyone noticing. So the control property was turned into a
tri-state one:

 * No definition: EPN is activated for embedded toolchains like before
 * ON: EPN is always emitted
 * OFF: EPN is never emitted

That approach gives the user the chance to disable EPN for embedded
toolchains and restores generator expression functionality for those.

Closes: #16253
2017-01-20 13:51:48 -05:00
..
CMakeLists.txt
foo.cpp Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
main.c
main.cpp Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
main.m Fix iOS Bundle layouts (#15669) 2015-08-24 09:50:20 -04:00
osx.cmake Darwin: Add support for tbd library stub files 2015-08-24 22:29:33 +02:00
PerConfigPerSourceFlags-result.txt Tests: Add case for Xcode per-config per-source COMPILE_FLAGS diagnostic 2016-10-28 11:18:15 -04:00
PerConfigPerSourceFlags-stderr.txt Tests: Add case for Xcode per-config per-source COMPILE_FLAGS diagnostic 2016-10-28 11:18:15 -04:00
PerConfigPerSourceFlags.cmake Tests: Add case for Xcode per-config per-source COMPILE_FLAGS diagnostic 2016-10-28 11:18:15 -04:00
RunCMakeTest.cmake Xcode: Control emission of EFFECTIVE_PLATFORM_NAME 2017-01-20 13:51:48 -05:00
someFileWithoutSpecialChars Xcode: Also quote strings containing // (#15487) 2015-04-04 22:13:45 +02:00
src-default
src-explicit
src-lastKnown
XcodeAttributeGenex-check.cmake Xcode: Parse variant and genex for CMAKE_XCODE_ATTRIBUTE (#14947) 2016-01-03 22:31:12 +01:00
XcodeAttributeGenex.cmake Xcode: Parse variant and genex for CMAKE_XCODE_ATTRIBUTE (#14947) 2016-01-03 22:31:12 +01:00
XcodeAttributeGenexError-result.txt Xcode: Teach XCODE_ATTRIBUTE target properties about generator expressions 2015-02-12 13:35:31 -05:00
XcodeAttributeGenexError-stderr.txt Xcode: Teach XCODE_ATTRIBUTE target properties about generator expressions 2015-02-12 13:35:31 -05:00
XcodeAttributeGenexError.cmake Xcode: Teach XCODE_ATTRIBUTE target properties about generator expressions 2015-02-12 13:35:31 -05:00
XcodeAttributeLocation-check.cmake Fix XCODE_ATTRIBUTE_..._LOCATION target property lookup 2016-09-22 11:29:52 -04:00
XcodeAttributeLocation.cmake Fix XCODE_ATTRIBUTE_..._LOCATION target property lookup 2016-09-22 11:29:52 -04:00
XcodeBundles-install-check.cmake Add tests for BUNDLE_EXTENSION 2016-07-21 23:18:56 -07:00
XcodeBundles.cmake Add tests for BUNDLE_EXTENSION 2016-07-21 23:18:56 -07:00
XcodeFileType-check.cmake Xcode: Refine quoting rules for Strings 2015-04-17 21:50:05 +02:00
XcodeFileType.cmake
XcodeInstallIOS-install-stdout.txt Xcode: Add unit test for iOS project install (#12506) 2015-08-26 20:54:52 +02:00
XcodeInstallIOS.cmake Xcode: Add unit test for iOS project install (#12506) 2015-08-26 20:54:52 +02:00
XcodeIOSInstallCombined-install-check.cmake Xcode: Add support for combined install on iOS 2015-12-10 22:36:12 +01:00
XcodeIOSInstallCombined.cmake Xcode: Add support for combined install on iOS 2015-12-10 22:36:12 +01:00
XcodeIOSInstallCombinedPrune-install-check.cmake Xcode: Add support for combined install on iOS 2015-12-10 22:36:12 +01:00
XcodeIOSInstallCombinedPrune-install-stdout.txt Xcode: Add support for combined install on iOS 2015-12-10 22:36:12 +01:00
XcodeIOSInstallCombinedPrune.cmake Xcode: Add support for combined install on iOS 2015-12-10 22:36:12 +01:00
XcodeIOSInstallCombinedSingleArch-install-check.cmake Fix iOS combined feature for single architecture targets 2016-03-15 10:09:50 -04:00
XcodeIOSInstallCombinedSingleArch.cmake Fix iOS combined feature for single architecture targets 2016-03-15 10:09:50 -04:00
XcodeMultiplatform.cmake Xcode: Control emission of EFFECTIVE_PLATFORM_NAME 2017-01-20 13:51:48 -05:00
XcodeObjectNeedsEscape-check.cmake Xcode: Escape all backslashes in strings (#15328) 2016-01-07 13:23:24 -05:00
XcodeObjectNeedsEscape.cmake Xcode: Escape all backslashes in strings (#15328) 2016-01-07 13:23:24 -05:00
XcodeObjectNeedsQuote-check.cmake Xcode: Also quote strings containing // (#15487) 2015-04-04 22:13:45 +02:00
XcodeObjectNeedsQuote.cmake Xcode: Also quote strings containing // (#15487) 2015-04-04 22:13:45 +02:00
XcodeOptimizationFlags-check.cmake Xcode: Use regular expression to extract all optimisation flags (#15794) 2015-10-23 19:29:09 +02:00
XcodeOptimizationFlags.cmake Xcode: Use regular expression to extract all optimisation flags (#15794) 2015-10-23 19:29:09 +02:00
XcodePlatformFrameworks.cmake OS X: Add platform-specific Frameworks search path 2015-02-23 13:10:52 -05:00
XcodePreserveNonOptimizationFlags-check.cmake Xcode: Use regular expression to extract all optimisation flags (#15794) 2015-10-23 19:29:09 +02:00
XcodePreserveNonOptimizationFlags.cmake Xcode: Use regular expression to extract all optimisation flags (#15794) 2015-10-23 19:29:09 +02:00
XcodePreserveObjcFlag-check.cmake Xcode: Use regular expression to extract all optimisation flags (#15794) 2015-10-23 19:29:09 +02:00
XcodePreserveObjcFlag.cmake Xcode: Use regular expression to extract all optimisation flags (#15794) 2015-10-23 19:29:09 +02:00
XcodeTbdStub-stdout.txt Darwin: Add support for tbd library stub files 2015-08-24 22:29:33 +02:00
XcodeTbdStub.cmake Darwin: Add support for tbd library stub files 2015-08-24 22:29:33 +02:00