Xcode: Fix compiler id detection when code signing is required

The iOS product type 'com.apple.package-type.bundle.unit-test' requires
code signing on Xcode 6.  Other iOS target types do too.  Until CMake
learns to add the CODE_SIGN_IDENTITY build attribute itself, toolchain
files can set CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY to tell the Xcode
generator to add the attribute.  Teach CMakeDetermineCompilerId to
recognize this variable and add the CODE_SIGN_IDENTITY build attribute
to the compiler id project.
This commit is contained in:
Brad King 2014-10-22 09:57:53 -04:00
parent c48f6e1229
commit b91020f659
2 changed files with 6 additions and 0 deletions

View File

@ -270,6 +270,11 @@ Id flags: ${testflags}
else() else()
set(id_sdkroot "") set(id_sdkroot "")
endif() endif()
if(CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY)
set(id_code_sign_identity "CODE_SIGN_IDENTITY = \"${CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY}\";")
else()
set(id_code_sign_identity "")
endif()
if(NOT ${XCODE_VERSION} VERSION_LESS 3) if(NOT ${XCODE_VERSION} VERSION_LESS 3)
set(v 3) set(v 3)
set(ext xcodeproj) set(ext xcodeproj)

View File

@ -81,6 +81,7 @@
buildSettings = { buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)"; ARCHS = "$(ARCHS_STANDARD_32_BIT)";
ONLY_ACTIVE_ARCH = YES; ONLY_ACTIVE_ARCH = YES;
@id_code_sign_identity@
CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)"; CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)";
SYMROOT = .; SYMROOT = .;
@id_toolset@ @id_toolset@