Merge topic 'xcode-ios-compiler-id'

b91020f6 Xcode: Fix compiler id detection when code signing is required
c48f6e12 Xcode: Fix compiler id detection for iOS tools (#15214)
This commit is contained in:
Brad King 2014-10-23 08:32:32 -04:00 committed by CMake Topic Stage
commit b2a7f60a46
2 changed files with 19 additions and 3 deletions

View File

@ -261,11 +261,20 @@ Id flags: ${testflags}
else()
set(id_deployment_target "")
endif()
set(id_product_type "com.apple.product-type.tool")
if(CMAKE_OSX_SYSROOT)
set(id_sdkroot "SDKROOT = \"${CMAKE_OSX_SYSROOT}\";")
if(CMAKE_OSX_SYSROOT MATCHES "(^|/)[Ii][Pp][Hh][Oo][Nn][Ee]")
set(id_product_type "com.apple.product-type.bundle.unit-test")
endif()
else()
set(id_sdkroot "")
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)
set(v 3)
set(ext xcodeproj)
@ -298,7 +307,7 @@ Id flags: ${testflags}
# ...
# /path/to/cc ...CompilerId${lang}/...
# to extract the compiler front-end for the language.
if("${CMAKE_${lang}_COMPILER_ID_OUTPUT}" MATCHES "\nLd[^\n]*(\n[ \t]+[^\n]*)*\n[ \t]+([^ \t\r\n]+)[^\r\n]*-o[^\r\n]*CompilerId${lang}/(\\./)?CompilerId${lang}[ \t\n\\\"]")
if("${CMAKE_${lang}_COMPILER_ID_OUTPUT}" MATCHES "\nLd[^\n]*(\n[ \t]+[^\n]*)*\n[ \t]+([^ \t\r\n]+)[^\r\n]*-o[^\r\n]*CompilerId${lang}(/CompilerId${lang}.xctest)?/(\\./)?CompilerId${lang}[ \t\n\\\"]")
set(_comp "${CMAKE_MATCH_2}")
if(EXISTS "${_comp}")
set(CMAKE_${lang}_COMPILER_ID_TOOL "${_comp}" PARENT_SCOPE)
@ -366,7 +375,13 @@ ${CMAKE_${lang}_COMPILER_ID_OUTPUT}
# binary dir.
file(GLOB files
RELATIVE ${CMAKE_${lang}_COMPILER_ID_DIR}
${CMAKE_${lang}_COMPILER_ID_DIR}/*)
# normal case
${CMAKE_${lang}_COMPILER_ID_DIR}/*
# com.apple.package-type.bundle.unit-test
${CMAKE_${lang}_COMPILER_ID_DIR}/*.xctest/*
)
list(REMOVE_ITEM files "${src}")
set(COMPILER_${lang}_PRODUCED_FILES "")
foreach(file ${files})

View File

@ -29,7 +29,7 @@
);
name = CompilerId@id_lang@;
productName = CompilerId@id_lang@;
productType = "com.apple.product-type.tool";
productType = "@id_product_type@";
};
08FB7793FE84155DC02AAC07 = {
isa = PBXProject;
@ -81,6 +81,7 @@
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
ONLY_ACTIVE_ARCH = YES;
@id_code_sign_identity@
CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)";
SYMROOT = .;
@id_toolset@