[lldb] Revise IDE folder structure (#89748)

Update the folder titles for targets in the monorepository that have not
seen taken care of for some time. These are the folders that targets are
organized in Visual Studio and XCode
(`set_property(TARGET <target> PROPERTY FOLDER "<title>")`)
when using the respective CMake's IDE generator.

 * Ensure that every target is in a folder
 * Use a folder hierarchy with each LLVM subproject as a top-level folder
 * Use consistent folder names between subprojects
 * When using target-creating functions from AddLLVM.cmake, automatically
deduce the folder. This reduces the number of
`set_property`/`set_target_property`, but are still necessary when
`add_custom_target`, `add_executable`, `add_library`, etc. are used. A
LLVM_SUBPROJECT_TITLE definition is used for that in each subproject's
root CMakeLists.txt.
This commit is contained in:
Michael Kruse 2024-05-25 17:29:18 +02:00 committed by GitHub
parent 76e7c8f4aa
commit c3efb57655
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
21 changed files with 21 additions and 21 deletions

View File

@ -1,4 +1,5 @@
cmake_minimum_required(VERSION 3.20.0)
set(LLVM_SUBPROJECT_TITLE "LLDB")
if(NOT DEFINED LLVM_COMMON_CMAKE_UTILS)
set(LLVM_COMMON_CMAKE_UTILS ${CMAKE_CURRENT_SOURCE_DIR}/../cmake)

View File

@ -29,7 +29,6 @@ function(lldb_tablegen)
if(LTG_TARGET)
add_public_tablegen_target(${LTG_TARGET})
set_target_properties( ${LTG_TARGET} PROPERTIES FOLDER "LLDB tablegenning")
set_property(GLOBAL APPEND PROPERTY LLDB_TABLEGEN_TARGETS ${LTG_TARGET})
endif()
endfunction(lldb_tablegen)
@ -165,10 +164,10 @@ function(add_lldb_library name)
get_property(parent_dir DIRECTORY PROPERTY PARENT_DIRECTORY)
if(EXISTS ${parent_dir})
get_filename_component(category ${parent_dir} NAME)
set_target_properties(${name} PROPERTIES FOLDER "lldb plugins/${category}")
set_target_properties(${name} PROPERTIES FOLDER "LLDB/Plugins/${category}")
endif()
else()
set_target_properties(${name} PROPERTIES FOLDER "lldb libraries")
set_target_properties(${name} PROPERTIES FOLDER "LLDB/Libraries")
endif()
# If we want to export all lldb symbols (i.e LLDB_EXPORT_ALL_SYMBOLS=ON), we
@ -208,7 +207,6 @@ function(add_lldb_executable name)
else()
target_link_libraries(${name} PRIVATE ${ARG_CLANG_LIBS})
endif()
set_target_properties(${name} PROPERTIES FOLDER "lldb executables")
if (ARG_BUILD_RPATH)
set_target_properties(${name} PROPERTIES BUILD_RPATH "${ARG_BUILD_RPATH}")

View File

@ -266,7 +266,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
)
add_custom_target(lldb-headers)
set_target_properties(lldb-headers PROPERTIES FOLDER "lldb misc")
set_target_properties(lldb-headers PROPERTIES FOLDER "LLDB/Resources")
if (NOT CMAKE_CONFIGURATION_TYPES)
add_llvm_install_targets(install-lldb-headers

View File

@ -106,7 +106,7 @@ endforeach()
# Wrap output in a target, so lldb-framework can depend on it.
add_custom_target(liblldb-resource-headers DEPENDS lldb-sbapi-dwarf-enums ${lldb_staged_headers})
set_target_properties(liblldb-resource-headers PROPERTIES FOLDER "lldb misc")
set_target_properties(liblldb-resource-headers PROPERTIES FOLDER "LLDB/Resources")
add_dependencies(liblldb liblldb-resource-headers)
# At build time, copy the staged headers into the framework bundle (and do

View File

@ -118,8 +118,8 @@ if(LLVM_USE_FOLDERS)
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
endif()
set_target_properties(clang-tablegen-targets PROPERTIES FOLDER "lldb misc")
set_target_properties(intrinsics_gen PROPERTIES FOLDER "lldb misc")
set_target_properties(clang-tablegen-targets PROPERTIES FOLDER "Clang/Tablegenning")
set_target_properties(intrinsics_gen PROPERTIES FOLDER "LLVM/Tablegenning")
if(NOT DEFINED LLVM_COMMON_CMAKE_UTILS)
set(LLVM_COMMON_CMAKE_UTILS ${CMAKE_CURRENT_SOURCE_DIR}/../cmake)

View File

@ -13,6 +13,7 @@ if(DOXYGEN_FOUND)
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Generating LLDB C++ API reference with Doxygen" VERBATIM
)
set_target_properties(lldb-cpp-doc PROPERTIES FOLDER "LLDB/Docs")
endif()
if (LLVM_ENABLE_SPHINX)

View File

@ -38,6 +38,7 @@ add_custom_command(
)
add_custom_target(lldb-sbapi-dwarf-enums
DEPENDS ${sb_languages_file})
set_target_properties(lldb-sbapi-dwarf-enums PROPERTIES FOLDER "LLDB/Tablegenning")
add_lldb_library(liblldb SHARED ${option_framework}
SBAddress.cpp
@ -215,7 +216,6 @@ if (NOT CMAKE_SYSTEM_NAME MATCHES "Windows")
"Only the SB API is guaranteed to be stable.")
add_llvm_symbol_exports(liblldb "${LLDB_EXPORT_ALL_SYMBOLS_EXPORTS_FILE}")
endif()
set_target_properties(liblldb_exports PROPERTIES FOLDER "lldb misc")
elseif (LLDB_EXPORT_ALL_SYMBOLS)
MESSAGE("-- Symbols (liblldb): exporting all symbols from the lldb and lldb_private namespaces")
@ -254,7 +254,6 @@ elseif (LLDB_EXPORT_ALL_SYMBOLS)
)
add_llvm_symbol_exports(liblldb ${exported_symbol_file})
set_target_properties(liblldb_exports PROPERTIES FOLDER "lldb misc")
endif()
if (NOT MSVC)

View File

@ -1,4 +1,5 @@
add_custom_target(lldb-api-test-deps)
set_target_properties(lldb-api-test-deps PROPERTIES FOLDER "LLDB/Tests")
add_dependencies(lldb-api-test-deps lldb-test-depends)
add_lit_testsuites(LLDB-API

View File

@ -91,10 +91,11 @@ string(REPLACE ${CMAKE_CFG_INTDIR} ${LLVM_BUILD_MODE} LLDB_TOOLS_DIR ${LLVM_RUNT
# Create a custom target to track test dependencies.
add_custom_target(lldb-test-depends)
set_target_properties(lldb-test-depends PROPERTIES FOLDER "lldb misc")
set_target_properties(lldb-test-depends PROPERTIES FOLDER "LLDB/Tests")
# Create an alias for the legacy name of lldb-test-depends
add_custom_target(lldb-test-deps)
set_target_properties(lldb-test-deps PROPERTIES FOLDER "LLDB/Tests")
add_dependencies(lldb-test-deps lldb-test-depends)
function(add_lldb_test_dependency)
@ -265,7 +266,6 @@ add_lit_testsuite(check-lldb "Running lldb lit test suite"
lldb-api-test-deps
lldb-shell-test-deps
lldb-unit-test-deps)
set_target_properties(check-lldb PROPERTIES FOLDER "lldb tests")
if(LLDB_BUILT_STANDALONE)
# This has to happen *AFTER* add_lit_testsuite.

View File

@ -1,4 +1,5 @@
add_custom_target(lldb-shell-test-deps)
set_target_properties(lldb-shell-test-deps PROPERTIES FOLDER "LLDB/Tests")
add_dependencies(lldb-shell-test-deps lldb-test-depends)
add_lit_testsuites(LLDB-SHELL

View File

@ -1,4 +1,5 @@
add_custom_target(lldb-unit-test-deps)
set_target_properties(lldb-unit-test-deps PROPERTIES FOLDER "LLDB/Tests")
add_dependencies(lldb-unit-test-deps lldb-test-depends)
add_lit_testsuites(LLDB-UNIT

View File

@ -28,8 +28,6 @@ add_dependencies(lldb
${tablegen_deps}
)
set_target_properties(LLDBOptionsTableGen PROPERTIES FOLDER "lldb misc")
if(LLDB_BUILD_FRAMEWORK)
# In the build-tree, we know the exact path to the framework directory.
# The installed framework can be in different locations.

View File

@ -29,4 +29,5 @@ if(TARGET lldb-commandinterpreter-fuzzer)
COMMAND $<TARGET_FILE:lldb-commandinterpreter-fuzzer> -dict=${CMAKE_CURRENT_SOURCE_DIR}/inputdictionary.txt -only_ascii=1 -artifact_prefix=commandinterpreter-
USES_TERMINAL
)
set_target_properties(fuzz-lldb-commandinterpreter PROPERTIES FOLDER "LLDB/Fuzzer")
endif()

View File

@ -25,4 +25,5 @@ if(TARGET lldb-target-fuzzer)
COMMAND $<TARGET_FILE:lldb-target-fuzzer> -artifact_prefix=target-
USES_TERMINAL
)
set_target_properties(fuzz-lldb-target PROPERTIES FOLDER "LLDB/Fuzzer")
endif()

View File

@ -1,7 +1,6 @@
set(LLVM_TARGET_DEFINITIONS LLGSOptions.td)
tablegen(LLVM LLGSOptions.inc -gen-opt-parser-defs)
add_public_tablegen_target(LLGSOptionsTableGen)
set_target_properties(LLGSOptionsTableGen PROPERTIES FOLDER "lldb misc")
set(LLDB_PLUGINS)

View File

@ -1,5 +1,5 @@
add_custom_target(LLDBUnitTests)
set_target_properties(LLDBUnitTests PROPERTIES FOLDER "lldb tests")
set_target_properties(LLDBUnitTests PROPERTIES FOLDER "LLDB/Tests")
add_dependencies(lldb-unit-test-deps LLDBUnitTests)

View File

@ -7,7 +7,7 @@ function(add_lldb_test_executable test_name)
set_output_directory(${test_name} BINARY_DIR ${outdir} LIBRARY_DIR ${outdir})
list(APPEND ALL_LLDB_TEST_EXECUTABLES ${test_name})
set(ALL_LLDB_TEST_EXECUTABLES ${ALL_LLDB_TEST_EXECUTABLES} PARENT_SCOPE)
set_target_properties(${test_name} PROPERTIES FOLDER "lldb tests")
set_target_properties(${test_name} PROPERTIES FOLDER "LLDB/Tests")
endfunction()
add_lldb_test_executable(thread_inferior inferior/thread_inferior.cpp)

View File

@ -13,6 +13,5 @@ if (NOT DEFINED LLDB_TABLEGEN_EXE)
LLDBTableGen.cpp
LLDBTableGenUtils.cpp
)
set_target_properties(lldb-tblgen PROPERTIES FOLDER "LLDB tablegenning")
endif()
endif()

View File

@ -6,4 +6,4 @@ add_lldb_executable(lit-cpuid
TargetParser
)
set_target_properties(lit-cpuid PROPERTIES FOLDER "lldb utils")
set_target_properties(lit-cpuid PROPERTIES FOLDER "LLDB/Utils")

View File

@ -1,7 +1,7 @@
# Make lldb-dotest a custom target.
add_custom_target(lldb-dotest)
add_dependencies(lldb-dotest lldb-test-depends)
set_target_properties(lldb-dotest PROPERTIES FOLDER "lldb utils")
set_target_properties(lldb-dotest PROPERTIES FOLDER "LLDB/Utils")
get_property(LLDB_TEST_USER_ARGS GLOBAL PROPERTY LLDB_TEST_USER_ARGS_PROPERTY)
get_property(LLDB_TEST_COMMON_ARGS GLOBAL PROPERTY LLDB_TEST_COMMON_ARGS_PROPERTY)

View File

@ -1,6 +1,6 @@
add_custom_target(lldb-repro)
add_dependencies(lldb-repro lldb-test-depends)
set_target_properties(lldb-repro PROPERTIES FOLDER "lldb utils")
set_target_properties(lldb-repro PROPERTIES FOLDER "LLDB/Utils")
# Generate lldb-repro Python script for each build mode.
if(LLDB_BUILT_STANDALONE)