Author: Jon Roelofs Date: 2024-07-30T17:17:04-07:00 New Revision: a982cabea3cfbf456a01ed85499fa7dfc7ec18c7
URL: https://github.com/llvm/llvm-project/commit/a982cabea3cfbf456a01ed85499fa7dfc7ec18c7 DIFF: https://github.com/llvm/llvm-project/commit/a982cabea3cfbf456a01ed85499fa7dfc7ec18c7.diff LOG: [cmake][llvm] Limit the number of Xcode schemes created by default (#101243) CMake -GXcode would otherwise offer to create one scheme for each target, which ends up being a lot. For now, limit the default to the `check-*` LIT targets, plus `ALL_BUILD` and `install`. For targets that aren't in the default list, we now have a configuration variable to promote an extra list of targets into schemes, for example `-DLLVM_XCODE_EXTRA_TARGET_SCHEMES="TargetParserTests;SupportTests"` to add schemes for `TargetParserTests` and `SupportTests` respectively. Added: Modified: clang/cmake/modules/AddClang.cmake lldb/cmake/modules/AddLLDB.cmake llvm/CMakeLists.txt llvm/cmake/modules/AddLLVM.cmake Removed: ################################################################################ diff --git a/clang/cmake/modules/AddClang.cmake b/clang/cmake/modules/AddClang.cmake index 9d09be1936847..5327b5d2f0892 100644 --- a/clang/cmake/modules/AddClang.cmake +++ b/clang/cmake/modules/AddClang.cmake @@ -147,6 +147,7 @@ endmacro(add_clang_library) macro(add_clang_executable name) add_llvm_executable( ${name} ${ARGN} ) set_clang_windows_version_resource_properties(${name}) + set_target_properties(${name} PROPERTIES XCODE_GENERATE_SCHEME ON) endmacro(add_clang_executable) macro(add_clang_tool name) @@ -181,6 +182,7 @@ macro(add_clang_tool name) set_property(GLOBAL APPEND PROPERTY CLANG_EXPORTS ${name}) endif() endif() + set_target_properties(${name} PROPERTIES XCODE_GENERATE_SCHEME ON) endmacro() macro(add_clang_symlink name dest) diff --git a/lldb/cmake/modules/AddLLDB.cmake b/lldb/cmake/modules/AddLLDB.cmake index 538029037dd46..0a81ec5092185 100644 --- a/lldb/cmake/modules/AddLLDB.cmake +++ b/lldb/cmake/modules/AddLLDB.cmake @@ -258,6 +258,7 @@ function(add_lldb_tool name) endif() add_lldb_executable(${name} GENERATE_INSTALL ${ARG_UNPARSED_ARGUMENTS}) + set_target_properties(${name} PROPERTIES XCODE_GENERATE_SCHEME ON) endfunction() # The test suite relies on finding LLDB.framework binary resources in the diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt index 12618966c4adf..699de1ccd870c 100644 --- a/llvm/CMakeLists.txt +++ b/llvm/CMakeLists.txt @@ -1423,3 +1423,16 @@ endif() if (LLVM_INCLUDE_UTILS AND LLVM_INCLUDE_TOOLS) add_subdirectory(utils/llvm-locstats) endif() + +if (XCODE) + # For additional targets that you would like to add schemes, specify e.g: + # + # -DLLVM_XCODE_EXTRA_TARGET_SCHEMES="TargetParserTests;SupportTests" + # + # at CMake configure time. + set(LLVM_XCODE_EXTRA_TARGET_SCHEMES "" CACHE STRING "Specifies an extra list of targets to turn into schemes") + + foreach(target ${LLVM_XCODE_EXTRA_TARGET_SCHEMES}) + set_target_properties(${target} PROPERTIES XCODE_GENERATE_SCHEME ON) + endforeach() +endif() diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake index 03f4e1f190fd9..ac47e884ac229 100644 --- a/llvm/cmake/modules/AddLLVM.cmake +++ b/llvm/cmake/modules/AddLLVM.cmake @@ -1452,6 +1452,7 @@ macro(llvm_add_tool project name) endif() get_subproject_title(subproject_title) set_target_properties(${name} PROPERTIES FOLDER "${subproject_title}/Tools") + set_target_properties(${name} PROPERTIES XCODE_GENERATE_SCHEME ON) endmacro(llvm_add_tool project name) macro(add_llvm_tool name) @@ -2043,6 +2044,7 @@ function(add_lit_target target comment) # Tests should be excluded from "Build Solution". set_target_properties(${target} PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD ON) + set_target_properties(${target} PROPERTIES XCODE_GENERATE_SCHEME ON) endfunction() # Convert a target name like check-clang to a variable name like CLANG. _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits