Skip to content

Commit

Permalink
[cmake][llvm] Limit the number of Xcode schemes created by default (l…
Browse files Browse the repository at this point in the history
…lvm#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.
  • Loading branch information
jroelofs authored and banach-space committed Aug 7, 2024
1 parent 06a188c commit 36d82d3
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 0 deletions.
2 changes: 2 additions & 0 deletions clang/cmake/modules/AddClang.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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)
Expand Down
1 change: 1 addition & 0 deletions lldb/cmake/modules/AddLLDB.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
13 changes: 13 additions & 0 deletions llvm/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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()
2 changes: 2 additions & 0 deletions llvm/cmake/modules/AddLLVM.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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.
Expand Down

0 comments on commit 36d82d3

Please sign in to comment.