Browse Source

Xcode: Use ad-hoc signing during compiler id on macOS

Xcode 14 no longer accepts an empty signing identity for macOS.
However, Xcode in general does not accept an ad-hoc signing
identity for iOS.  Switch based on the target platform.

Fixes: #23609
Brad King 3 years ago
parent
commit
89e1113e0c
2 changed files with 3 additions and 1 deletions
  1. 2 0
      Modules/CMakeDetermineCompilerId.cmake
  2. 1 1
      Modules/CompilerId/Xcode-3.pbxproj.in

+ 2 - 0
Modules/CMakeDetermineCompilerId.cmake

@@ -594,6 +594,7 @@ Id flags: ${testflags} ${CMAKE_${lang}_COMPILER_ID_FLAGS_ALWAYS}
       endif()
     endif()
     if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_OSX_SYSROOT MATCHES "^$|[Mm][Aa][Cc][Oo][Ss]")
+      set(id_code_sign_identity "-")
       # When targeting macOS, use only the host architecture.
       if (_CMAKE_APPLE_ARCHS_DEFAULT)
         set(id_archs "ARCHS = \"${_CMAKE_APPLE_ARCHS_DEFAULT}\";")
@@ -603,6 +604,7 @@ Id flags: ${testflags} ${CMAKE_${lang}_COMPILER_ID_FLAGS_ALWAYS}
         set(id_arch_active "ONLY_ACTIVE_ARCH = YES;")
       endif()
     else()
+      set(id_code_sign_identity "")
       set(id_archs "")
       set(id_arch_active "ONLY_ACTIVE_ARCH = YES;")
     endif()

+ 1 - 1
Modules/CompilerId/Xcode-3.pbxproj.in

@@ -72,7 +72,7 @@
 		1DEB928608733DD80010E9CD = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				CODE_SIGN_IDENTITY = "";
+				CODE_SIGN_IDENTITY = "@id_code_sign_identity@";
 				PRODUCT_NAME = CompilerId@id_lang@;
 			};
 			name = Debug;