diff options
24 files changed, 141 insertions, 36 deletions
diff --git a/Modules/Compiler/ARMClang-ASM.cmake b/Modules/Compiler/ARMClang-ASM.cmake index ceff3e8..6a299be 100644 --- a/Modules/Compiler/ARMClang-ASM.cmake +++ b/Modules/Compiler/ARMClang-ASM.cmake @@ -3,7 +3,7 @@ include(Compiler/ARMClang) set(CMAKE_ASM_OUTPUT_EXTENSION ".o") set(CMAKE_ASM_OUTPUT_EXTENSION_REPLACE 1) -set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> <INCLUDES> <FLAGS> -c -o <OBJECT> <SOURCE>") +set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -c -o <OBJECT> <SOURCE>") set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS S;s;asm;msa) __compiler_armclang(ASM) diff --git a/Modules/FindPython/Support.cmake b/Modules/FindPython/Support.cmake index 1d68c44..6dd3b8e 100644 --- a/Modules/FindPython/Support.cmake +++ b/Modules/FindPython/Support.cmake @@ -607,14 +607,24 @@ function (_PYTHON_GET_VERSION) # ABI not used on Windows set (abi "") else() - if (config MATCHES "#[ ]*define[ ]+Py_DEBUG[ ]+1") - string (APPEND abi "d") - endif() - if (config MATCHES "#[ ]*define[ ]+WITH_PYMALLOC[ ]+1") - string (APPEND abi "m") - endif() - if (config MATCHES "#[ ]*define[ ]+Py_UNICODE_SIZE[ ]+4") - string (APPEND abi "u") + if (NOT config) + # pyconfig.h can be a wrapper to a platform specific pyconfig.h + # In this case, try to identify ABI from include directory + if (_${_PYTHON_PREFIX}_INCLUDE_DIR MATCHES "python${version_major}\.${version_minor}+([dmu]*)") + set (abi "${CMAKE_MATCH_1}") + else() + set (abi "") + endif() + else() + if (config MATCHES "#[ ]*define[ ]+Py_DEBUG[ ]+1") + string (APPEND abi "d") + endif() + if (config MATCHES "#[ ]*define[ ]+WITH_PYMALLOC[ ]+1") + string (APPEND abi "m") + endif() + if (config MATCHES "#[ ]*define[ ]+Py_UNICODE_SIZE[ ]+4") + string (APPEND abi "u") + endif() endif() set (${_PGV_PREFIX}ABI "${abi}" PARENT_SCOPE) endif() diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 5292bb7..535a580 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,7 +1,7 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 18) -set(CMake_VERSION_PATCH 20200902) +set(CMake_VERSION_PATCH 20200903) #set(CMake_VERSION_RC 0) set(CMake_VERSION_IS_DIRTY 0) diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx index 3cfdb8a..e3a51dd 100644 --- a/Source/cmGlobalNinjaGenerator.cxx +++ b/Source/cmGlobalNinjaGenerator.cxx @@ -1215,7 +1215,8 @@ void cmGlobalNinjaGenerator::AppendTargetDependsClosure( for (auto const& dep_target : this->GetTargetDirectDepends(target)) { if (!dep_target->IsInBuildSystem() || - (this->EnableCrossConfigBuild() && !dep_target.IsCross())) { + (target->GetType() != cmStateEnums::UTILITY && + this->EnableCrossConfigBuild() && !dep_target.IsCross())) { continue; } @@ -1911,6 +1912,7 @@ void cmGlobalNinjaGenerator::WriteTargetClean(std::ostream& os) byproducts.push_back( this->BuildAlias(GetByproductsForCleanTargetName(), config)); } + byproducts.emplace_back(GetByproductsForCleanTargetName()); build.Variables["TARGETS"] = cmJoin(byproducts, " "); for (auto const& fileConfig : configs) { diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index 1cd73a0..dbc95e6 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -679,6 +679,7 @@ void cmGlobalXCodeGenerator::ClearXCodeObjects() this->FileRefs.clear(); this->ExternalLibRefs.clear(); this->FileRefToBuildFileMap.clear(); + this->CommandsVisited.clear(); } void cmGlobalXCodeGenerator::addObject(std::unique_ptr<cmXCodeObject> obj) @@ -1271,6 +1272,16 @@ bool cmGlobalXCodeGenerator::CreateXCodeTarget( return true; } + auto& gtgt_visited = this->CommandsVisited[gtgt]; + auto& deps = this->GetTargetDirectDepends(gtgt); + for (auto& d : deps) { + // Take the union of visited source files of custom commands so far. + // ComputeTargetOrder ensures our dependencies already visited their + // custom commands and updated CommandsVisited. + auto& dep_visited = this->CommandsVisited[d]; + gtgt_visited.insert(dep_visited.begin(), dep_visited.end()); + } + if (gtgt->GetType() == cmStateEnums::UTILITY || gtgt->GetType() == cmStateEnums::INTERFACE_LIBRARY || gtgt->GetType() == cmStateEnums::GLOBAL_TARGET) { @@ -1628,8 +1639,9 @@ void cmGlobalXCodeGenerator::CreateCustomCommands( } // add all the sources std::vector<cmCustomCommand> commands; + auto& visited = this->CommandsVisited[gtgt]; for (auto sourceFile : classes) { - if (sourceFile->GetCustomCommand()) { + if (sourceFile->GetCustomCommand() && visited.insert(sourceFile).second) { commands.push_back(*sourceFile->GetCustomCommand()); } } @@ -1839,6 +1851,15 @@ void cmGlobalXCodeGenerator::CreateCustomRulesMakefile( for (auto const& command : commands) { cmCustomCommandGenerator ccg(command, configName, this->CurrentLocalGenerator); + std::vector<std::string> realDepends; + realDepends.reserve(ccg.GetDepends().size()); + for (auto const& d : ccg.GetDepends()) { + std::string dep; + if (this->CurrentLocalGenerator->GetRealDependency(d, configName, dep)) { + realDepends.emplace_back(std::move(dep)); + } + } + if (ccg.GetNumberOfCommands() > 0) { makefileStream << "\n"; const std::vector<std::string>& outputs = ccg.GetOutputs(); @@ -1854,12 +1875,8 @@ void cmGlobalXCodeGenerator::CreateCustomRulesMakefile( // There are no outputs. Use the generated force rule name. makefileStream << tname[&ccg.GetCC()] << ": "; } - for (auto const& d : ccg.GetDepends()) { - std::string dep; - if (this->CurrentLocalGenerator->GetRealDependency(d, configName, - dep)) { - makefileStream << "\\\n" << this->ConvertToRelativeForMake(dep); - } + for (auto const& dep : realDepends) { + makefileStream << "\\\n" << this->ConvertToRelativeForMake(dep); } makefileStream << "\n"; @@ -1888,6 +1905,17 @@ void cmGlobalXCodeGenerator::CreateCustomRulesMakefile( ccg.AppendArguments(c, cmd); makefileStream << "\t" << cmd << "\n"; } + + // Symbolic inputs are not expected to exist, so add dummy rules. + for (auto const& dep : realDepends) { + if (cmSourceFile* dsf = + target->GetLocalGenerator()->GetMakefile()->GetSource( + dep, cmSourceFileLocationKind::Known)) { + if (dsf->GetPropertyAsBool("SYMBOLIC")) { + makefileStream << this->ConvertToRelativeForMake(dep) << ":\n"; + } + } + } } } } diff --git a/Source/cmGlobalXCodeGenerator.h b/Source/cmGlobalXCodeGenerator.h index f9b6300..c02cc1d 100644 --- a/Source/cmGlobalXCodeGenerator.h +++ b/Source/cmGlobalXCodeGenerator.h @@ -306,6 +306,8 @@ private: std::string GeneratorToolset; std::map<cmGeneratorTarget const*, size_t> TargetOrderIndex; std::vector<std::string> EnabledLangs; + std::map<cmGeneratorTarget const*, std::set<cmSourceFile const*>> + CommandsVisited; }; #endif diff --git a/Source/cmNinjaUtilityTargetGenerator.cxx b/Source/cmNinjaUtilityTargetGenerator.cxx index 9508bb9..ad1d5f1 100644 --- a/Source/cmNinjaUtilityTargetGenerator.cxx +++ b/Source/cmNinjaUtilityTargetGenerator.cxx @@ -100,6 +100,8 @@ void cmNinjaUtilityTargetGenerator::Generate(const std::string& config) if (genTarget->Target->GetType() != cmStateEnums::GLOBAL_TARGET) { lg->AppendTargetOutputs(genTarget, gg->GetByproductsForCleanTarget(), config); + std::copy(util_outputs.begin(), util_outputs.end(), + std::back_inserter(gg->GetByproductsForCleanTarget())); } lg->AppendTargetDepends(genTarget, deps, config, config, DependOnTargetArtifact); diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index e0b8dff..ba648b7 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -325,6 +325,7 @@ cmTarget::cmTarget(std::string const& name, cmStateEnums::TargetType type, initProp("Fortran_MODULE_DIRECTORY"); initProp("Fortran_COMPILER_LAUNCHER"); initProp("Fortran_PREPROCESS"); + initProp("Fortran_VISIBILITY_PRESET"); initProp("GNUtoMS"); initProp("OSX_ARCHITECTURES"); initProp("IOS_INSTALL_COMBINED"); diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index b14b5b5..35f3fa2 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -144,14 +144,14 @@ if(CMAKE_GENERATOR MATCHES "Ninja") list(APPEND Ninja_ARGS -DTEST_Fortran=1) endif() if(CMake_TEST_Qt5 AND Qt5Core_FOUND) - list(APPEND Ninja_ARGS -DCMake_TEST_Qt5=1 -DCMAKE_TEST_Qt5Core_Version=${Qt5Core_VERSION}) + list(APPEND Ninja_ARGS -DCMake_TEST_Qt5=1 -DQt5Core_DIR=${Qt5Core_DIR} -DCMAKE_TEST_Qt5Core_Version=${Qt5Core_VERSION}) endif() add_RunCMake_test(Ninja) set(NinjaMultiConfig_ARGS -DCYGWIN=${CYGWIN} ) if(CMake_TEST_Qt5 AND Qt5Core_FOUND) - list(APPEND NinjaMultiConfig_ARGS -DCMake_TEST_Qt5=1) + list(APPEND NinjaMultiConfig_ARGS -DCMake_TEST_Qt5=1 -DQt5Core_DIR=${Qt5Core_DIR} -DCMAKE_TEST_Qt5Core_Version=${Qt5Core_VERSION}) endif() if(DEFINED CMake_TEST_CUDA) list(APPEND NinjaMultiConfig_ARGS -DCMake_TEST_CUDA=${CMake_TEST_CUDA}) diff --git a/Tests/RunCMake/CommandLine/BuildDir/CMakeLists.txt b/Tests/RunCMake/CommandLine/BuildDir/CMakeLists.txt index cf2c087..f6d72a9 100644 --- a/Tests/RunCMake/CommandLine/BuildDir/CMakeLists.txt +++ b/Tests/RunCMake/CommandLine/BuildDir/CMakeLists.txt @@ -1,8 +1,19 @@ add_custom_command( - OUTPUT output.txt - COMMAND ${CMAKE_COMMAND} -E echo CustomCommand > output.txt + OUTPUT output1.txt + COMMAND ${CMAKE_COMMAND} -E echo CustomCommand > output1.txt ) -add_custom_target(CustomTarget ALL DEPENDS output.txt) -add_custom_target(CustomTarget2 ALL DEPENDS output.txt) -add_custom_target(CustomTarget3 ALL DEPENDS output.txt) +add_custom_target(CustomTarget ALL DEPENDS output1.txt) + +add_custom_command( + OUTPUT output2.txt + COMMAND ${CMAKE_COMMAND} -E echo CustomCommand2 > output2.txt + ) +add_custom_target(CustomTarget2 ALL DEPENDS output2.txt) + +add_custom_command( + OUTPUT output3.txt + COMMAND ${CMAKE_COMMAND} -E echo CustomCommand2 > output3.txt + ) +add_custom_target(CustomTarget3 ALL DEPENDS output3.txt) + add_custom_target(CustomTargetFail COMMAND DoesNotExist) diff --git a/Tests/RunCMake/CommandLine/ExplicitDirs/CMakeLists.txt b/Tests/RunCMake/CommandLine/ExplicitDirs/CMakeLists.txt index fc62914..0fee56c 100644 --- a/Tests/RunCMake/CommandLine/ExplicitDirs/CMakeLists.txt +++ b/Tests/RunCMake/CommandLine/ExplicitDirs/CMakeLists.txt @@ -1,9 +1,20 @@ cmake_minimum_required(VERSION 3.14) project(ExplicitDirs NONE) + add_custom_command( - OUTPUT output.txt - COMMAND ${CMAKE_COMMAND} -E echo CustomCommand > output.txt + OUTPUT output1.txt + COMMAND ${CMAKE_COMMAND} -E echo CustomCommand > output1.txt ) -add_custom_target(CustomTarget ALL DEPENDS output.txt) -add_custom_target(CustomTarget2 ALL DEPENDS output.txt) -add_custom_target(CustomTarget3 ALL DEPENDS output.txt) +add_custom_target(CustomTarget ALL DEPENDS output1.txt) + +add_custom_command( + OUTPUT output2.txt + COMMAND ${CMAKE_COMMAND} -E echo CustomCommand2 > output2.txt + ) +add_custom_target(CustomTarget2 ALL DEPENDS output2.txt) + +add_custom_command( + OUTPUT output3.txt + COMMAND ${CMAKE_COMMAND} -E echo CustomCommand2 > output3.txt + ) +add_custom_target(CustomTarget3 ALL DEPENDS output3.txt) diff --git a/Tests/RunCMake/ExternalProject/MultiCommand.cmake b/Tests/RunCMake/ExternalProject/MultiCommand.cmake index a8dbfea..c8d0457 100644 --- a/Tests/RunCMake/ExternalProject/MultiCommand.cmake +++ b/Tests/RunCMake/ExternalProject/MultiCommand.cmake @@ -20,10 +20,6 @@ ExternalProject_Add(multiCommand COMMAND "${CMAKE_COMMAND}" -E echo "install 2" ) -# Workaround for issue 17229 (missing dependency between update and patch steps) -ExternalProject_Add_StepTargets(multiCommand NO_DEPENDS update) -ExternalProject_Add_StepDependencies(multiCommand patch multiCommand-update) - # Force all steps to be re-run by removing timestamps from any previous run ExternalProject_Get_Property(multiCommand STAMP_DIR) file(REMOVE_RECURSE "${STAMP_DIR}") diff --git a/Tests/RunCMake/Ninja/RunCMakeTest.cmake b/Tests/RunCMake/Ninja/RunCMakeTest.cmake index d43023b..e6f86a1 100644 --- a/Tests/RunCMake/Ninja/RunCMakeTest.cmake +++ b/Tests/RunCMake/Ninja/RunCMakeTest.cmake @@ -327,6 +327,7 @@ run_ChangeBuildType() function(run_Qt5AutoMocDeps) if(CMake_TEST_Qt5 AND CMAKE_TEST_Qt5Core_Version VERSION_GREATER_EQUAL 5.15.0) set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/Qt5AutoMocDeps-build) + set(RunCMake_TEST_OPTIONS "-DQt5Core_DIR=${Qt5Core_DIR}") run_cmake(Qt5AutoMocDeps) unset(RunCMake_TEST_OPTIONS) # Build the project. diff --git a/Tests/RunCMake/NinjaMultiConfig/CustomCommandsAndTargets-release-clean-build-check.cmake b/Tests/RunCMake/NinjaMultiConfig/CustomCommandsAndTargets-release-clean-build-check.cmake new file mode 100644 index 0000000..a6eb088 --- /dev/null +++ b/Tests/RunCMake/NinjaMultiConfig/CustomCommandsAndTargets-release-clean-build-check.cmake @@ -0,0 +1,3 @@ +check_files("${RunCMake_TEST_BINARY_DIR}" + INCLUDE + ) diff --git a/Tests/RunCMake/NinjaMultiConfig/CustomCommandsAndTargets-release-leaf-custom-ninja-check.cmake b/Tests/RunCMake/NinjaMultiConfig/CustomCommandsAndTargets-release-leaf-custom-ninja-check.cmake new file mode 100644 index 0000000..b142ed2 --- /dev/null +++ b/Tests/RunCMake/NinjaMultiConfig/CustomCommandsAndTargets-release-leaf-custom-ninja-check.cmake @@ -0,0 +1,6 @@ +check_files("${RunCMake_TEST_BINARY_DIR}" + INCLUDE + ${TARGET_BYPRODUCTS_LeafCustom} + ${TARGET_BYPRODUCTS_RootCustom} + ${TARGET_FILE_RootExe_Release} + ) diff --git a/Tests/RunCMake/NinjaMultiConfig/CustomCommandsAndTargets-release-leaf-exe-ninja-check.cmake b/Tests/RunCMake/NinjaMultiConfig/CustomCommandsAndTargets-release-leaf-exe-ninja-check.cmake new file mode 100644 index 0000000..3f51983 --- /dev/null +++ b/Tests/RunCMake/NinjaMultiConfig/CustomCommandsAndTargets-release-leaf-exe-ninja-check.cmake @@ -0,0 +1,6 @@ +check_files("${RunCMake_TEST_BINARY_DIR}" + INCLUDE + ${TARGET_FILE_LeafExe_Release} + ${TARGET_BYPRODUCTS_RootCustom} + ${TARGET_FILE_RootExe_Release} + ) diff --git a/Tests/RunCMake/NinjaMultiConfig/CustomCommandsAndTargets.cmake b/Tests/RunCMake/NinjaMultiConfig/CustomCommandsAndTargets.cmake index b2b24e8..b6f1152 100644 --- a/Tests/RunCMake/NinjaMultiConfig/CustomCommandsAndTargets.cmake +++ b/Tests/RunCMake/NinjaMultiConfig/CustomCommandsAndTargets.cmake @@ -34,6 +34,16 @@ add_subdirectory(CustomCommandsAndTargetsSubdir) create_targets(Top) +add_executable(RootExe main.c) +add_custom_target(RootCustom COMMAND ${CMAKE_COMMAND} -E touch Root.txt BYPRODUCTS Root.txt) +add_executable(LeafExe main.c) +add_custom_target(LeafCustom COMMAND ${CMAKE_COMMAND} -E touch Leaf.txt BYPRODUCTS Leaf.txt DEPENDS RootCustom RootExe) +add_dependencies(LeafExe RootExe RootCustom) +file(APPEND "${CMAKE_BINARY_DIR}/target_files_custom.cmake" +"set(TARGET_BYPRODUCTS_LeafCustom [==[${CMAKE_CURRENT_BINARY_DIR}/Leaf.txt]==]) +set(TARGET_BYPRODUCTS_RootCustom [==[${CMAKE_CURRENT_BINARY_DIR}/Root.txt]==]) +") + include(${CMAKE_CURRENT_LIST_DIR}/Common.cmake) -generate_output_files(TopPostBuild SubdirPostBuild) +generate_output_files(TopPostBuild SubdirPostBuild RootExe LeafExe) file(APPEND "${CMAKE_BINARY_DIR}/target_files.cmake" "include(\${CMAKE_CURRENT_LIST_DIR}/target_files_custom.cmake)\n") diff --git a/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake b/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake index 9249724..86d726b 100644 --- a/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake +++ b/Tests/RunCMake/NinjaMultiConfig/RunCMakeTest.cmake @@ -235,6 +235,10 @@ run_cmake_build(CustomCommandsAndTargets debug-in-release-graph-postbuild Releas run_ninja(CustomCommandsAndTargets release-postbuild build-Release.ninja SubdirPostBuild) run_cmake_build(CustomCommandsAndTargets debug-targetpostbuild Debug TopTargetPostBuild) run_ninja(CustomCommandsAndTargets release-targetpostbuild build-Release.ninja SubdirTargetPostBuild) +run_cmake_build(CustomCommandsAndTargets release-clean Release clean:all) +run_ninja(CustomCommandsAndTargets release-leaf-custom build-Release.ninja Leaf.txt) +run_cmake_build(CustomCommandsAndTargets release-clean Release clean:all) +run_ninja(CustomCommandsAndTargets release-leaf-exe build-Release.ninja LeafExe) unset(RunCMake_TEST_BINARY_DIR) @@ -305,7 +309,7 @@ endif() if(CMake_TEST_Qt5) set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/Qt5-build) - set(RunCMake_TEST_OPTIONS "-DCMAKE_CROSS_CONFIGS=all") + set(RunCMake_TEST_OPTIONS "-DCMAKE_CROSS_CONFIGS=all" "-DQt5Core_DIR=${Qt5Core_DIR}") run_cmake_configure(Qt5) unset(RunCMake_TEST_OPTIONS) include(${RunCMake_TEST_BINARY_DIR}/target_files.cmake) diff --git a/Tests/RunCMake/XcodeProject/DeploymentTarget.cmake b/Tests/RunCMake/XcodeProject/DeploymentTarget.cmake index 288735e..3d8fa17 100644 --- a/Tests/RunCMake/XcodeProject/DeploymentTarget.cmake +++ b/Tests/RunCMake/XcodeProject/DeploymentTarget.cmake @@ -5,15 +5,18 @@ project(DeploymentTarget C) if(CMAKE_SYSTEM_NAME STREQUAL "iOS") set(CMAKE_OSX_DEPLOYMENT_TARGET "9.1") + set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED "NO") set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO") set(CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE "NO") elseif(CMAKE_SYSTEM_NAME STREQUAL "watchOS") set(CMAKE_OSX_DEPLOYMENT_TARGET "2.0") + set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED "NO") set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO") set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "") set(CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE "YES") elseif(CMAKE_SYSTEM_NAME STREQUAL "tvOS") set(CMAKE_OSX_DEPLOYMENT_TARGET "9.0") + set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED "NO") set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO") set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "") set(CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE "YES") diff --git a/Tests/RunCMake/XcodeProject/XcodeBundles.cmake b/Tests/RunCMake/XcodeProject/XcodeBundles.cmake index 8c0b470..bc14874 100644 --- a/Tests/RunCMake/XcodeProject/XcodeBundles.cmake +++ b/Tests/RunCMake/XcodeProject/XcodeBundles.cmake @@ -4,12 +4,14 @@ cmake_minimum_required(VERSION 3.3) enable_language(C) if(CMAKE_SYSTEM_NAME STREQUAL "iOS") + set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED "NO") set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO") set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "") set(CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE "NO") endif() if(CMAKE_SYSTEM_NAME STREQUAL "tvOS" OR CMAKE_SYSTEM_NAME STREQUAL "watchOS") + set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED "NO") set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO") set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "") set(CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE "YES") diff --git a/Tests/RunCMake/XcodeProject/XcodeIOSInstallCombined.cmake b/Tests/RunCMake/XcodeProject/XcodeIOSInstallCombined.cmake index c221033..19f8e2f 100644 --- a/Tests/RunCMake/XcodeProject/XcodeIOSInstallCombined.cmake +++ b/Tests/RunCMake/XcodeProject/XcodeIOSInstallCombined.cmake @@ -10,6 +10,7 @@ if(NOT IOS) message(FATAL_ERROR "IOS variable is not set") endif() +set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED "NO") set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO") set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "") set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf") diff --git a/Tests/RunCMake/XcodeProject/XcodeIOSInstallCombinedPrune.cmake b/Tests/RunCMake/XcodeProject/XcodeIOSInstallCombinedPrune.cmake index 172f2e8..7d14d19 100644 --- a/Tests/RunCMake/XcodeProject/XcodeIOSInstallCombinedPrune.cmake +++ b/Tests/RunCMake/XcodeProject/XcodeIOSInstallCombinedPrune.cmake @@ -6,6 +6,7 @@ if(XCODE_VERSION VERSION_GREATER_EQUAL 9) set(CMAKE_OSX_DEPLOYMENT_TARGET 10) endif() +set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED "NO") set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO") set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "") set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf") diff --git a/Tests/RunCMake/XcodeProject/XcodeIOSInstallCombinedSingleArch.cmake b/Tests/RunCMake/XcodeProject/XcodeIOSInstallCombinedSingleArch.cmake index 038a890..974ae47 100644 --- a/Tests/RunCMake/XcodeProject/XcodeIOSInstallCombinedSingleArch.cmake +++ b/Tests/RunCMake/XcodeProject/XcodeIOSInstallCombinedSingleArch.cmake @@ -6,6 +6,7 @@ if(XCODE_VERSION VERSION_GREATER_EQUAL 9) set(CMAKE_OSX_DEPLOYMENT_TARGET 10) endif() +set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED "NO") set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO") set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "") set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf") diff --git a/Tests/XCTest/CMakeLists.txt b/Tests/XCTest/CMakeLists.txt index d0b07ea..a070651 100644 --- a/Tests/XCTest/CMakeLists.txt +++ b/Tests/XCTest/CMakeLists.txt @@ -2,6 +2,10 @@ cmake_minimum_required(VERSION 3.1) project(XCTest C) enable_testing() +set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED "NO") +set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO") +set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "") + find_package(XCTest REQUIRED) # Framework |