[clang] [clang-tools-extra] [compiler-rt] [flang] [libc] [libclc] [libcxx] [libcxxabi] [libunwind] [lld] [lldb] [llvm] [mlir] [openmp] [polly] [pstl] Update IDE Folders (PR #89153)

via cfe-commits cfe-commits at lists.llvm.org
Mon Apr 22 11:08:09 PDT 2024


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-lldb

Author: Michael Kruse (Meinersbur)

<details>
<summary>Changes</summary>

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.

Before:
<img src="https://github.com/llvm/llvm-project/assets/2278807/ad47015e-8782-4a32-a69f-d2cff4990c9a" width="200" />

After:
<img src="https://github.com/llvm/llvm-project/assets/2278807/aeee0fbd-2767-40da-9c15-baab034f2826" width="200" />

Visual Studio now supports CMake projects directly, but the Visual Studio solution generator still has advantages. One is that targets including entire folders can be hidden when not needed. This removes non-relevant items form code search and does not try to rebuild them. For instance, when hiding Tablegenning and Resources targets, an iterative build can be faster than using ninja. The other one is that the organization in folders is less cluttered than the CMake targets view or the startup item view[^1]:
<img src="https://github.com/llvm/llvm-project/assets/2278807/7250fcf6-417e-4979-9c7c-0da6b093a7f7" width="150" />

[^1]: Items can be hidden from the dropdown menu, but the entire list is still flat with hundreds of executables.

---

Patch is 154.88 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/89153.diff


195 Files Affected:

- (modified) bolt/CMakeLists.txt (+2) 
- (modified) bolt/cmake/modules/AddBOLT.cmake (-1) 
- (modified) bolt/docs/CMakeLists.txt (+1) 
- (modified) bolt/test/CMakeLists.txt (+1-2) 
- (modified) bolt/unittests/CMakeLists.txt (+1-1) 
- (modified) clang-tools-extra/CMakeLists.txt (+2) 
- (modified) clang-tools-extra/clang-tidy/CMakeLists.txt (+1-1) 
- (modified) clang-tools-extra/clang-tidy/misc/CMakeLists.txt (+2) 
- (modified) clang-tools-extra/clangd/unittests/CMakeLists.txt (+1) 
- (modified) clang-tools-extra/docs/CMakeLists.txt (+1) 
- (modified) clang-tools-extra/include-cleaner/unittests/CMakeLists.txt (+1) 
- (modified) clang-tools-extra/pseudo/include/CMakeLists.txt (+1) 
- (modified) clang-tools-extra/pseudo/tool/CMakeLists.txt (+1) 
- (modified) clang-tools-extra/pseudo/unittests/CMakeLists.txt (+1) 
- (modified) clang-tools-extra/test/CMakeLists.txt (-1) 
- (modified) clang-tools-extra/unittests/CMakeLists.txt (+1-1) 
- (modified) clang/CMakeLists.txt (+5-3) 
- (modified) clang/bindings/python/tests/CMakeLists.txt (+1-1) 
- (modified) clang/cmake/modules/AddClang.cmake (-3) 
- (modified) clang/docs/CMakeLists.txt (+1) 
- (modified) clang/lib/Analysis/FlowSensitive/CMakeLists.txt (+1) 
- (modified) clang/lib/Headers/CMakeLists.txt (+2-2) 
- (modified) clang/lib/Tooling/CMakeLists.txt (+2) 
- (modified) clang/test/CMakeLists.txt (+2-3) 
- (modified) clang/tools/libclang/CMakeLists.txt (+1-1) 
- (modified) clang/unittests/CMakeLists.txt (+1-1) 
- (modified) clang/utils/ClangVisualizers/CMakeLists.txt (+1-1) 
- (modified) clang/utils/TableGen/CMakeLists.txt (-2) 
- (modified) clang/utils/hmaptool/CMakeLists.txt (+1-1) 
- (modified) compiler-rt/CMakeLists.txt (+2-1) 
- (modified) compiler-rt/cmake/Modules/AddCompilerRT.cmake (+11-10) 
- (modified) compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake (+2-2) 
- (modified) compiler-rt/cmake/Modules/CompilerRTUtils.cmake (+2-2) 
- (modified) compiler-rt/cmake/base-config-ix.cmake (+2-2) 
- (modified) compiler-rt/include/CMakeLists.txt (+1-1) 
- (modified) compiler-rt/lib/asan/tests/CMakeLists.txt (+4-4) 
- (modified) compiler-rt/lib/builtins/CMakeLists.txt (+1-1) 
- (modified) compiler-rt/lib/fuzzer/tests/CMakeLists.txt (+3-3) 
- (modified) compiler-rt/lib/gwp_asan/tests/CMakeLists.txt (+2-2) 
- (modified) compiler-rt/lib/interception/tests/CMakeLists.txt (+2-2) 
- (modified) compiler-rt/lib/memprof/tests/CMakeLists.txt (+2-2) 
- (modified) compiler-rt/lib/orc/tests/CMakeLists.txt (+3-3) 
- (modified) compiler-rt/lib/sanitizer_common/tests/CMakeLists.txt (+2-2) 
- (modified) compiler-rt/lib/stats/CMakeLists.txt (+1-1) 
- (modified) compiler-rt/lib/tsan/CMakeLists.txt (+1-1) 
- (modified) compiler-rt/lib/tsan/dd/CMakeLists.txt (+1-1) 
- (modified) compiler-rt/lib/tsan/rtl/CMakeLists.txt (+1-1) 
- (modified) compiler-rt/lib/xray/tests/CMakeLists.txt (+2-2) 
- (modified) compiler-rt/test/CMakeLists.txt (+1) 
- (modified) compiler-rt/test/asan/CMakeLists.txt (-3) 
- (modified) compiler-rt/test/asan_abi/CMakeLists.txt (-1) 
- (modified) compiler-rt/test/builtins/CMakeLists.txt (-1) 
- (modified) compiler-rt/test/cfi/CMakeLists.txt (-3) 
- (modified) compiler-rt/test/dfsan/CMakeLists.txt (-1) 
- (modified) compiler-rt/test/fuzzer/CMakeLists.txt (-1) 
- (modified) compiler-rt/test/gwp_asan/CMakeLists.txt (-1) 
- (modified) compiler-rt/test/hwasan/CMakeLists.txt (-2) 
- (modified) compiler-rt/test/interception/CMakeLists.txt (-1) 
- (modified) compiler-rt/test/lsan/CMakeLists.txt (-1) 
- (modified) compiler-rt/test/memprof/CMakeLists.txt (-3) 
- (modified) compiler-rt/test/metadata/CMakeLists.txt (-1) 
- (modified) compiler-rt/test/msan/CMakeLists.txt (-1) 
- (modified) compiler-rt/test/orc/CMakeLists.txt (-1) 
- (modified) compiler-rt/test/profile/CMakeLists.txt (-1) 
- (modified) compiler-rt/test/safestack/CMakeLists.txt (-1) 
- (modified) compiler-rt/test/sanitizer_common/CMakeLists.txt (-2) 
- (modified) compiler-rt/test/shadowcallstack/CMakeLists.txt (-1) 
- (modified) compiler-rt/test/tsan/CMakeLists.txt (-1) 
- (modified) compiler-rt/test/ubsan/CMakeLists.txt (-2) 
- (modified) compiler-rt/test/ubsan_minimal/CMakeLists.txt (-1) 
- (modified) compiler-rt/test/xray/CMakeLists.txt (-1) 
- (modified) cross-project-tests/CMakeLists.txt (+1-5) 
- (modified) flang/CMakeLists.txt (+2-1) 
- (modified) flang/cmake/modules/AddFlang.cmake (+1-2) 
- (modified) flang/docs/CMakeLists.txt (+1-1) 
- (modified) flang/include/flang/Optimizer/Dialect/CMakeLists.txt (+2) 
- (modified) flang/runtime/CMakeLists.txt (+5) 
- (modified) flang/test/CMakeLists.txt (+2-1) 
- (modified) flang/tools/f18/CMakeLists.txt (+1) 
- (modified) flang/unittests/CMakeLists.txt (+2-1) 
- (modified) flang/unittests/Evaluate/CMakeLists.txt (+1) 
- (modified) libc/CMakeLists.txt (+1) 
- (modified) libclc/CMakeLists.txt (+12-1) 
- (modified) libclc/cmake/modules/AddLibclc.cmake (+4-1) 
- (modified) libcxx/CMakeLists.txt (+1) 
- (modified) libcxxabi/CMakeLists.txt (+1) 
- (modified) libunwind/CMakeLists.txt (+1) 
- (modified) lld/CMakeLists.txt (+2) 
- (modified) lld/cmake/modules/AddLLD.cmake (-2) 
- (modified) lld/test/CMakeLists.txt (+2-3) 
- (modified) lld/unittests/CMakeLists.txt (-2) 
- (modified) lldb/CMakeLists.txt (+1) 
- (modified) lldb/cmake/modules/AddLLDB.cmake (+2-4) 
- (modified) lldb/cmake/modules/LLDBConfig.cmake (+1-1) 
- (modified) lldb/cmake/modules/LLDBFramework.cmake (+1-1) 
- (modified) lldb/cmake/modules/LLDBStandalone.cmake (+2-2) 
- (modified) lldb/docs/CMakeLists.txt (+1) 
- (modified) lldb/source/API/CMakeLists.txt (+1-2) 
- (modified) lldb/test/API/CMakeLists.txt (+1) 
- (modified) lldb/test/CMakeLists.txt (+2-2) 
- (modified) lldb/test/Shell/CMakeLists.txt (+1) 
- (modified) lldb/test/Unit/CMakeLists.txt (+1) 
- (modified) lldb/tools/driver/CMakeLists.txt (-2) 
- (modified) lldb/tools/lldb-fuzzer/lldb-commandinterpreter-fuzzer/CMakeLists.txt (+1) 
- (modified) lldb/tools/lldb-fuzzer/lldb-target-fuzzer/CMakeLists.txt (+1) 
- (modified) lldb/tools/lldb-server/CMakeLists.txt (-1) 
- (modified) lldb/unittests/CMakeLists.txt (+1-1) 
- (modified) lldb/unittests/tools/lldb-server/CMakeLists.txt (+1-1) 
- (modified) lldb/utils/TableGen/CMakeLists.txt (-1) 
- (modified) lldb/utils/lit-cpuid/CMakeLists.txt (+1-1) 
- (modified) lldb/utils/lldb-dotest/CMakeLists.txt (+1-1) 
- (modified) lldb/utils/lldb-repro/CMakeLists.txt (+1-1) 
- (modified) llvm-libgcc/CMakeLists.txt (+1) 
- (modified) llvm/CMakeLists.txt (+8-4) 
- (modified) llvm/cmake/modules/AddLLVM.cmake (+62-21) 
- (modified) llvm/cmake/modules/AddOCaml.cmake (+3-2) 
- (modified) llvm/cmake/modules/AddSphinxTarget.cmake (+3) 
- (modified) llvm/cmake/modules/CrossCompile.cmake (+4) 
- (modified) llvm/cmake/modules/LLVMDistributionSupport.cmake (+8) 
- (modified) llvm/cmake/modules/LLVMExternalProjectUtils.cmake (+29-1) 
- (modified) llvm/cmake/modules/TableGen.cmake (+6-1) 
- (modified) llvm/docs/CMakeLists.txt (+1) 
- (modified) llvm/examples/Kaleidoscope/CMakeLists.txt (+1-1) 
- (modified) llvm/include/llvm/Support/CMakeLists.txt (+1-1) 
- (modified) llvm/lib/Support/BLAKE3/CMakeLists.txt (+1) 
- (modified) llvm/runtimes/CMakeLists.txt (+23) 
- (modified) llvm/test/CMakeLists.txt (+3-3) 
- (modified) llvm/tools/opt-viewer/CMakeLists.txt (+1) 
- (modified) llvm/unittests/Analysis/InlineAdvisorPlugin/CMakeLists.txt (+1-2) 
- (modified) llvm/unittests/Analysis/InlineOrderPlugin/CMakeLists.txt (+1-1) 
- (modified) llvm/unittests/CMakeLists.txt (+1-1) 
- (modified) llvm/unittests/DebugInfo/BTF/CMakeLists.txt (-2) 
- (modified) llvm/unittests/DebugInfo/CodeView/CMakeLists.txt (-2) 
- (modified) llvm/unittests/DebugInfo/DWARF/CMakeLists.txt (-2) 
- (modified) llvm/unittests/DebugInfo/GSYM/CMakeLists.txt (-2) 
- (modified) llvm/unittests/DebugInfo/MSF/CMakeLists.txt (-2) 
- (modified) llvm/unittests/DebugInfo/PDB/CMakeLists.txt (-2) 
- (modified) llvm/unittests/ExecutionEngine/CMakeLists.txt (-2) 
- (modified) llvm/unittests/ExecutionEngine/JITLink/CMakeLists.txt (-2) 
- (modified) llvm/unittests/ExecutionEngine/MCJIT/CMakeLists.txt (-2) 
- (modified) llvm/unittests/ExecutionEngine/Orc/CMakeLists.txt (-2) 
- (modified) llvm/unittests/Support/CommandLineInit/CMakeLists.txt (-4) 
- (modified) llvm/unittests/Support/DynamicLibrary/CMakeLists.txt (+2-2) 
- (modified) llvm/unittests/Target/AArch64/CMakeLists.txt (-2) 
- (modified) llvm/unittests/Target/AMDGPU/CMakeLists.txt (-2) 
- (modified) llvm/unittests/Target/ARM/CMakeLists.txt (-2) 
- (modified) llvm/unittests/Target/CMakeLists.txt (-3) 
- (modified) llvm/unittests/Target/LoongArch/CMakeLists.txt (-2) 
- (modified) llvm/unittests/Target/PowerPC/CMakeLists.txt (-2) 
- (modified) llvm/unittests/Target/RISCV/CMakeLists.txt (-2) 
- (modified) llvm/unittests/Target/WebAssembly/CMakeLists.txt (-2) 
- (modified) llvm/unittests/Target/X86/CMakeLists.txt (-2) 
- (modified) llvm/unittests/Transforms/Coroutines/CMakeLists.txt (-2) 
- (modified) llvm/unittests/Transforms/IPO/CMakeLists.txt (-2) 
- (modified) llvm/unittests/Transforms/Scalar/CMakeLists.txt (-2) 
- (modified) llvm/unittests/Transforms/Utils/CMakeLists.txt (-2) 
- (modified) llvm/unittests/Transforms/Vectorize/CMakeLists.txt (-2) 
- (modified) llvm/unittests/tools/llvm-cfi-verify/CMakeLists.txt (-2) 
- (modified) llvm/unittests/tools/llvm-exegesis/CMakeLists.txt (-2) 
- (modified) llvm/unittests/tools/llvm-mca/CMakeLists.txt (-2) 
- (modified) llvm/unittests/tools/llvm-profdata/CMakeLists.txt (-2) 
- (modified) llvm/unittests/tools/llvm-profgen/CMakeLists.txt (-2) 
- (modified) llvm/utils/LLVMVisualizers/CMakeLists.txt (+1-1) 
- (modified) llvm/utils/TableGen/Basic/CMakeLists.txt (-1) 
- (modified) llvm/utils/TableGen/CMakeLists.txt (-2) 
- (modified) llvm/utils/TableGen/Common/CMakeLists.txt (-1) 
- (modified) llvm/utils/lit/CMakeLists.txt (+2-2) 
- (modified) llvm/utils/llvm-locstats/CMakeLists.txt (+1-1) 
- (modified) llvm/utils/mlgo-utils/CMakeLists.txt (+1-1) 
- (modified) mlir/CMakeLists.txt (+6-3) 
- (modified) mlir/cmake/modules/AddMLIR.cmake (+3-2) 
- (modified) mlir/docs/CMakeLists.txt (+1) 
- (modified) mlir/examples/toy/CMakeLists.txt (+1-1) 
- (modified) mlir/examples/transform/CMakeLists.txt (+1) 
- (modified) mlir/include/mlir/Dialect/Linalg/IR/CMakeLists.txt (+2) 
- (modified) mlir/lib/TableGen/CMakeLists.txt (+1) 
- (modified) mlir/test/CAPI/CMakeLists.txt (+2) 
- (modified) mlir/test/CMakeLists.txt (+1-1) 
- (modified) mlir/tools/mlir-linalg-ods-gen/CMakeLists.txt (+1) 
- (modified) mlir/tools/mlir-pdll/CMakeLists.txt (-1) 
- (modified) mlir/tools/mlir-tblgen/CMakeLists.txt (-1) 
- (modified) mlir/unittests/CMakeLists.txt (-2) 
- (modified) openmp/CMakeLists.txt (+1) 
- (modified) openmp/docs/CMakeLists.txt (+1) 
- (modified) openmp/libomptarget/unittests/CMakeLists.txt (+1-1) 
- (modified) openmp/runtime/cmake/LibompMicroTests.cmake (+5) 
- (modified) openmp/runtime/src/CMakeLists.txt (+7) 
- (modified) polly/CMakeLists.txt (+3-2) 
- (modified) polly/cmake/polly_macros.cmake (+1-1) 
- (modified) polly/docs/CMakeLists.txt (+1) 
- (modified) polly/lib/CMakeLists.txt (+1-3) 
- (modified) polly/test/CMakeLists.txt (+2-5) 
- (modified) polly/unittests/CMakeLists.txt (+1-1) 
- (modified) pstl/CMakeLists.txt (+1) 
- (modified) runtimes/CMakeLists.txt (+1) 


``````````diff
diff --git a/bolt/CMakeLists.txt b/bolt/CMakeLists.txt
index cc3a70fa35e0ab..26df6a4208b7a9 100644
--- a/bolt/CMakeLists.txt
+++ b/bolt/CMakeLists.txt
@@ -1,3 +1,5 @@
+set(LLVM_SUBPROJECT_TITLE "BOLT")
+
 include(ExternalProject)
 
 set(BOLT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
diff --git a/bolt/cmake/modules/AddBOLT.cmake b/bolt/cmake/modules/AddBOLT.cmake
index 1f69b9046320a7..c7ac662c6b1217 100644
--- a/bolt/cmake/modules/AddBOLT.cmake
+++ b/bolt/cmake/modules/AddBOLT.cmake
@@ -3,7 +3,6 @@ include(LLVMDistributionSupport)
 
 macro(add_bolt_executable name)
   add_llvm_executable(${name} ${ARGN})
-  set_target_properties(${name} PROPERTIES FOLDER "BOLT")
 endmacro()
 
 macro(add_bolt_tool name)
diff --git a/bolt/docs/CMakeLists.txt b/bolt/docs/CMakeLists.txt
index b230512fe57170..12ae852566785f 100644
--- a/bolt/docs/CMakeLists.txt
+++ b/bolt/docs/CMakeLists.txt
@@ -79,6 +79,7 @@ if (LLVM_ENABLE_DOXYGEN)
     COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/doxygen.cfg
     WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
     COMMENT "Generating bolt doxygen documentation." VERBATIM)
+  set_target_properties(doxygen-bolt PROPERTIES FOLDER "BOLT/Docs")
 
   if (LLVM_BUILD_DOCS)
     add_dependencies(doxygen doxygen-bolt)
diff --git a/bolt/test/CMakeLists.txt b/bolt/test/CMakeLists.txt
index 89862fd59eb8ec..d468ff984840fc 100644
--- a/bolt/test/CMakeLists.txt
+++ b/bolt/test/CMakeLists.txt
@@ -56,7 +56,7 @@ list(APPEND BOLT_TEST_DEPS
   )
 
 add_custom_target(bolt-test-depends DEPENDS ${BOLT_TEST_DEPS})
-set_target_properties(bolt-test-depends PROPERTIES FOLDER "BOLT")
+set_target_properties(bolt-test-depends PROPERTIES FOLDER "BOLT/Tests")
 
 add_lit_testsuite(check-bolt "Running the BOLT regression tests"
   ${CMAKE_CURRENT_BINARY_DIR}
@@ -64,7 +64,6 @@ add_lit_testsuite(check-bolt "Running the BOLT regression tests"
   DEPENDS ${BOLT_TEST_DEPS}
   ARGS ${BOLT_TEST_EXTRA_ARGS}
   )
-set_target_properties(check-bolt PROPERTIES FOLDER "BOLT")
 
 add_lit_testsuites(BOLT ${CMAKE_CURRENT_SOURCE_DIR}
   PARAMS ${BOLT_TEST_PARAMS}
diff --git a/bolt/unittests/CMakeLists.txt b/bolt/unittests/CMakeLists.txt
index 77159e92dec557..64414b83d39fe8 100644
--- a/bolt/unittests/CMakeLists.txt
+++ b/bolt/unittests/CMakeLists.txt
@@ -1,5 +1,5 @@
 add_custom_target(BoltUnitTests)
-set_target_properties(BoltUnitTests PROPERTIES FOLDER "BOLT tests")
+set_target_properties(BoltUnitTests PROPERTIES FOLDER "BOLT/Tests")
 
 function(add_bolt_unittest test_dirname)
   add_unittest(BoltUnitTests ${test_dirname} ${ARGN})
diff --git a/clang-tools-extra/CMakeLists.txt b/clang-tools-extra/CMakeLists.txt
index 6a3f741721ee6c..f6a6b57b5ef0bc 100644
--- a/clang-tools-extra/CMakeLists.txt
+++ b/clang-tools-extra/CMakeLists.txt
@@ -1,3 +1,5 @@
+set(LLVM_SUBPROJECT_TITLE "Clang Tools Extra")
+
 include(CMakeDependentOption)
 include(GNUInstallDirs)
 
diff --git a/clang-tools-extra/clang-tidy/CMakeLists.txt b/clang-tools-extra/clang-tidy/CMakeLists.txt
index 7e1905aa897b7e..430ea4cdbb38e1 100644
--- a/clang-tools-extra/clang-tidy/CMakeLists.txt
+++ b/clang-tools-extra/clang-tidy/CMakeLists.txt
@@ -121,7 +121,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
     PATTERN "*.h"
     )
   add_custom_target(clang-tidy-headers)
-  set_target_properties(clang-tidy-headers PROPERTIES FOLDER "Misc")
+  set_target_properties(clang-tidy-headers PROPERTIES FOLDER "Clang Tools Extra/Resources")
   if(NOT LLVM_ENABLE_IDE)
     add_llvm_install_targets(install-clang-tidy-headers
                              DEPENDS clang-tidy-headers
diff --git a/clang-tools-extra/clang-tidy/misc/CMakeLists.txt b/clang-tools-extra/clang-tidy/misc/CMakeLists.txt
index d9ec268650c053..4eda705c45d2af 100644
--- a/clang-tools-extra/clang-tidy/misc/CMakeLists.txt
+++ b/clang-tools-extra/clang-tidy/misc/CMakeLists.txt
@@ -15,6 +15,7 @@ add_custom_command(
     DEPENDS ${clang_tidy_confusable_chars_gen_target} ConfusableTable/confusables.txt)
 
 add_custom_target(genconfusable DEPENDS Confusables.inc)
+set_target_properties(genconfusable PROPERTIES FOLDER "Clang Tools Extra/Tablegenning")
 
 add_clang_library(clangTidyMiscModule
   ConstCorrectnessCheck.cpp
@@ -51,6 +52,7 @@ add_clang_library(clangTidyMiscModule
   genconfusable
   ClangDriverOptions
   )
+set_target_properties(clangTidyMiscModule PROPERTIES FOLDER "Clang Tools Extra/Libraries")
 
 clang_target_link_libraries(clangTidyMiscModule
   PRIVATE
diff --git a/clang-tools-extra/clangd/unittests/CMakeLists.txt b/clang-tools-extra/clangd/unittests/CMakeLists.txt
index 7f1ae5c43d80c6..0d4628ccf25d8c 100644
--- a/clang-tools-extra/clangd/unittests/CMakeLists.txt
+++ b/clang-tools-extra/clangd/unittests/CMakeLists.txt
@@ -29,6 +29,7 @@ include(${CMAKE_CURRENT_SOURCE_DIR}/../quality/CompletionModel.cmake)
 gen_decision_forest(${CMAKE_CURRENT_SOURCE_DIR}/decision_forest_model DecisionForestRuntimeTest ::ns1::ns2::test::Example)
 
 add_custom_target(ClangdUnitTests)
+set_target_properties(ClangdUnitTests PROPERTIES FOLDER "Clang Tools Extra/Tests")
 add_unittest(ClangdUnitTests ClangdTests
   Annotations.cpp
   ASTTests.cpp
diff --git a/clang-tools-extra/docs/CMakeLists.txt b/clang-tools-extra/docs/CMakeLists.txt
index 8f442e1f661ed3..272db266b50546 100644
--- a/clang-tools-extra/docs/CMakeLists.txt
+++ b/clang-tools-extra/docs/CMakeLists.txt
@@ -77,6 +77,7 @@ if (DOXYGEN_FOUND)
       COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/doxygen.cfg
       WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
       COMMENT "Generating clang doxygen documentation." VERBATIM)
+    set_target_properties(doxygen-clang-tools PROPERTIES FOLDER "Clang Tools Extra/Docs")
 
     if (LLVM_BUILD_DOCS)
       add_dependencies(doxygen doxygen-clang-tools)
diff --git a/clang-tools-extra/include-cleaner/unittests/CMakeLists.txt b/clang-tools-extra/include-cleaner/unittests/CMakeLists.txt
index 1e89534b511161..416535649f6222 100644
--- a/clang-tools-extra/include-cleaner/unittests/CMakeLists.txt
+++ b/clang-tools-extra/include-cleaner/unittests/CMakeLists.txt
@@ -4,6 +4,7 @@ set(LLVM_LINK_COMPONENTS
   )
 
 add_custom_target(ClangIncludeCleanerUnitTests)
+set_target_properties(ClangIncludeCleanerUnitTests PROPERTIES FOLDER "Clang Tools Extra/Tests")
 add_unittest(ClangIncludeCleanerUnitTests ClangIncludeCleanerTests
   AnalysisTest.cpp
   FindHeadersTest.cpp
diff --git a/clang-tools-extra/pseudo/include/CMakeLists.txt b/clang-tools-extra/pseudo/include/CMakeLists.txt
index 2334cfa12e3376..1d88af2eb68730 100644
--- a/clang-tools-extra/pseudo/include/CMakeLists.txt
+++ b/clang-tools-extra/pseudo/include/CMakeLists.txt
@@ -29,3 +29,4 @@ add_custom_command(OUTPUT ${cxx_bnf_inc}
 add_custom_target(cxx_gen
     DEPENDS ${cxx_symbols_inc} ${cxx_bnf_inc}
     VERBATIM)
+set_target_properties(cxx_gen PROPERTIES FOLDER "Clang Tools Extra/Tablegenning")
diff --git a/clang-tools-extra/pseudo/tool/CMakeLists.txt b/clang-tools-extra/pseudo/tool/CMakeLists.txt
index 49e1dc29a5a4e4..bead383228396e 100644
--- a/clang-tools-extra/pseudo/tool/CMakeLists.txt
+++ b/clang-tools-extra/pseudo/tool/CMakeLists.txt
@@ -26,4 +26,5 @@ add_custom_command(OUTPUT HTMLForestResources.inc
   DEPENDS ${CLANG_SOURCE_DIR}/utils/bundle_resources.py HTMLForest.css HTMLForest.js HTMLForest.html
   VERBATIM)
 add_custom_target(clang-pseudo-resources DEPENDS HTMLForestResources.inc)
+set_target_properties(clang-pseudo-resources PROPERTIES FOLDER "Clang Tools Extra/Resources")
 add_dependencies(clang-pseudo clang-pseudo-resources)
diff --git a/clang-tools-extra/pseudo/unittests/CMakeLists.txt b/clang-tools-extra/pseudo/unittests/CMakeLists.txt
index 821ca4d0652e1c..53583ceb618640 100644
--- a/clang-tools-extra/pseudo/unittests/CMakeLists.txt
+++ b/clang-tools-extra/pseudo/unittests/CMakeLists.txt
@@ -3,6 +3,7 @@ set(LLVM_LINK_COMPONENTS
   )
 
 add_custom_target(ClangPseudoUnitTests)
+set_target_properties(ClangPseudoUnitTests PROPERTIES FOLDER "Clang Tools Extra/Tests")
 add_unittest(ClangPseudoUnitTests ClangPseudoTests
   BracketTest.cpp
   CXXTest.cpp
diff --git a/clang-tools-extra/test/CMakeLists.txt b/clang-tools-extra/test/CMakeLists.txt
index f4c529ee8af207..d488c673d1868c 100644
--- a/clang-tools-extra/test/CMakeLists.txt
+++ b/clang-tools-extra/test/CMakeLists.txt
@@ -100,7 +100,6 @@ add_lit_testsuite(check-clang-extra "Running clang-tools-extra/test"
    ${CMAKE_CURRENT_BINARY_DIR}
    DEPENDS ${CLANG_TOOLS_TEST_DEPS}
    )
-set_target_properties(check-clang-extra PROPERTIES FOLDER "Clang extra tools' tests")
 
 add_lit_testsuites(CLANG-EXTRA ${CMAKE_CURRENT_SOURCE_DIR}
   DEPENDS ${CLANG_TOOLS_TEST_DEPS}
diff --git a/clang-tools-extra/unittests/CMakeLists.txt b/clang-tools-extra/unittests/CMakeLists.txt
index 086a68e638307e..77311540e719f6 100644
--- a/clang-tools-extra/unittests/CMakeLists.txt
+++ b/clang-tools-extra/unittests/CMakeLists.txt
@@ -1,5 +1,5 @@
 add_custom_target(ExtraToolsUnitTests)
-set_target_properties(ExtraToolsUnitTests PROPERTIES FOLDER "Extra Tools Unit Tests")
+set_target_properties(ExtraToolsUnitTests PROPERTIES FOLDER "Clang Tools Extra/Tests")
 
 function(add_extra_unittest test_dirname)
   add_unittest(ExtraToolsUnitTests ${test_dirname} ${ARGN})
diff --git a/clang/CMakeLists.txt b/clang/CMakeLists.txt
index f092766fa19f07..09da3ad9979ffd 100644
--- a/clang/CMakeLists.txt
+++ b/clang/CMakeLists.txt
@@ -1,4 +1,5 @@
 cmake_minimum_required(VERSION 3.20.0)
+set(LLVM_SUBPROJECT_TITLE "Clang")
 
 if(NOT DEFINED LLVM_COMMON_CMAKE_UTILS)
   set(LLVM_COMMON_CMAKE_UTILS ${CMAKE_CURRENT_SOURCE_DIR}/../cmake)
@@ -390,7 +391,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
   # Installing the headers needs to depend on generating any public
   # tablegen'd headers.
   add_custom_target(clang-headers DEPENDS clang-tablegen-targets)
-  set_target_properties(clang-headers PROPERTIES FOLDER "Misc")
+  set_target_properties(clang-headers PROPERTIES FOLDER "Clang/Resources")
   if(NOT LLVM_ENABLE_IDE)
     add_llvm_install_targets(install-clang-headers
                              DEPENDS clang-headers
@@ -398,6 +399,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
   endif()
 
   add_custom_target(bash-autocomplete DEPENDS utils/bash-autocomplete.sh)
+  set_target_properties(bash-autocomplete PROPERTIES FOLDER "Clang/Misc")
   install(FILES utils/bash-autocomplete.sh
           DESTINATION "${CMAKE_INSTALL_DATADIR}/clang"
           COMPONENT bash-autocomplete)
@@ -478,7 +480,7 @@ add_custom_target(clang-tablegen-targets
   omp_gen
   ClangDriverOptions
   ${CLANG_TABLEGEN_TARGETS})
-set_target_properties(clang-tablegen-targets PROPERTIES FOLDER "Misc")
+set_target_properties(clang-tablegen-targets PROPERTIES FOLDER "Clang/Tablegenning/Targets")
 list(APPEND LLVM_COMMON_DEPENDS clang-tablegen-targets)
 
 # Force target to be built as soon as possible. Clang modules builds depend
@@ -541,7 +543,7 @@ endif()
 
 # Custom target to install all clang libraries.
 add_custom_target(clang-libraries)
-set_target_properties(clang-libraries PROPERTIES FOLDER "Misc")
+set_target_properties(clang-libraries PROPERTIES FOLDER "Clang/Install")
 
 if(NOT LLVM_ENABLE_IDE)
   add_llvm_install_targets(install-clang-libraries
diff --git a/clang/bindings/python/tests/CMakeLists.txt b/clang/bindings/python/tests/CMakeLists.txt
index c4cd2539e9d6cf..2543cf739463d9 100644
--- a/clang/bindings/python/tests/CMakeLists.txt
+++ b/clang/bindings/python/tests/CMakeLists.txt
@@ -11,7 +11,7 @@ add_custom_target(check-clang-python
     WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/..)
 
 set(RUN_PYTHON_TESTS TRUE)
-set_target_properties(check-clang-python PROPERTIES FOLDER "Clang tests")
+set_target_properties(check-clang-python PROPERTIES FOLDER "Clang/Tests")
 
 # Tests require libclang.so which is only built with LLVM_ENABLE_PIC=ON
 if(NOT LLVM_ENABLE_PIC)
diff --git a/clang/cmake/modules/AddClang.cmake b/clang/cmake/modules/AddClang.cmake
index 75b0080f671564..a5ef639187d9db 100644
--- a/clang/cmake/modules/AddClang.cmake
+++ b/clang/cmake/modules/AddClang.cmake
@@ -26,7 +26,6 @@ function(clang_tablegen)
 
   if(CTG_TARGET)
     add_public_tablegen_target(${CTG_TARGET})
-    set_target_properties( ${CTG_TARGET} PROPERTIES FOLDER "Clang tablegenning")
     set_property(GLOBAL APPEND PROPERTY CLANG_TABLEGEN_TARGETS ${CTG_TARGET})
   endif()
 endfunction(clang_tablegen)
@@ -138,13 +137,11 @@ macro(add_clang_library name)
     endif()
   endforeach()
 
-  set_target_properties(${name} PROPERTIES FOLDER "Clang libraries")
   set_clang_windows_version_resource_properties(${name})
 endmacro(add_clang_library)
 
 macro(add_clang_executable name)
   add_llvm_executable( ${name} ${ARGN} )
-  set_target_properties(${name} PROPERTIES FOLDER "Clang executables")
   set_clang_windows_version_resource_properties(${name})
 endmacro(add_clang_executable)
 
diff --git a/clang/docs/CMakeLists.txt b/clang/docs/CMakeLists.txt
index 4163dd2d90ad5b..51e9db29f887f3 100644
--- a/clang/docs/CMakeLists.txt
+++ b/clang/docs/CMakeLists.txt
@@ -78,6 +78,7 @@ if (LLVM_ENABLE_DOXYGEN)
     COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/doxygen.cfg
     WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
     COMMENT "Generating clang doxygen documentation." VERBATIM)
+  set_target_properties(doxygen-clang PROPERTIES FOLDER "Clang/Docs")
 
   if (LLVM_BUILD_DOCS)
     add_dependencies(doxygen doxygen-clang)
diff --git a/clang/lib/Analysis/FlowSensitive/CMakeLists.txt b/clang/lib/Analysis/FlowSensitive/CMakeLists.txt
index 6631fe27f3d901..4e9262c4e6f186 100644
--- a/clang/lib/Analysis/FlowSensitive/CMakeLists.txt
+++ b/clang/lib/Analysis/FlowSensitive/CMakeLists.txt
@@ -36,3 +36,4 @@ add_custom_command(OUTPUT HTMLLogger.inc
   DEPENDS ${CLANG_SOURCE_DIR}/utils/bundle_resources.py HTMLLogger.html HTMLLogger.css HTMLLogger.js
   VERBATIM)
 add_custom_target(clangAnalysisFlowSensitiveResources DEPENDS HTMLLogger.inc)
+set_target_properties(clangAnalysisFlowSensitiveResources PROPERTIES FOLDER "Clang/Misc")
diff --git a/clang/lib/Headers/CMakeLists.txt b/clang/lib/Headers/CMakeLists.txt
index e6ae4e19e81db9..d7cdaf39c1159e 100644
--- a/clang/lib/Headers/CMakeLists.txt
+++ b/clang/lib/Headers/CMakeLists.txt
@@ -439,14 +439,14 @@ endforeach( f )
 function(add_header_target target_name file_list)
   add_library(${target_name} INTERFACE ${file_list})
   set_target_properties(${target_name} PROPERTIES
-    FOLDER "Misc"
+    FOLDER "Clang/Resources"
     RUNTIME_OUTPUT_DIRECTORY "${output_dir}")
 endfunction()
 
 # The catch-all clang-resource-headers target
 add_library(clang-resource-headers INTERFACE ${out_files})
 set_target_properties("clang-resource-headers" PROPERTIES
-  FOLDER "Misc"
+  FOLDER "Clang/Resources"
   RUNTIME_OUTPUT_DIRECTORY "${output_dir}")
 add_dependencies("clang-resource-headers"
                  "core-resource-headers"
diff --git a/clang/lib/Tooling/CMakeLists.txt b/clang/lib/Tooling/CMakeLists.txt
index 91e6cbdcbc44f7..1fa3498a862c12 100644
--- a/clang/lib/Tooling/CMakeLists.txt
+++ b/clang/lib/Tooling/CMakeLists.txt
@@ -75,6 +75,7 @@ else()
   add_custom_target(run-ast-api-dump-tool
       DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ASTNodeAPI.json
   )
+  set_target_properties(run-ast-api-dump-tool PROPERTIES FOLDER "Clang/Tablegenning")
 
   add_custom_command(
       COMMENT Generate NodeIntrospection.inc
@@ -99,6 +100,7 @@ else()
       DEPENDS
       ${BINARY_INCLUDE_DIR}/NodeIntrospection.inc
   )
+  set_target_properties(run-ast-api-generate-tool PROPERTIES FOLDER "Clang/Tablegenning")
 endif()
 
 add_clang_library(clangTooling
diff --git a/clang/test/CMakeLists.txt b/clang/test/CMakeLists.txt
index df34a5707da33e..5fceb1d7103341 100644
--- a/clang/test/CMakeLists.txt
+++ b/clang/test/CMakeLists.txt
@@ -170,7 +170,7 @@ configure_file(AST/gen_ast_dump_json_test.py
   ${CLANG_BINARY_DIR}/bin/gen_ast_dump_json_test.py COPYONLY)
 
 add_custom_target(clang-test-depends DEPENDS ${CLANG_TEST_DEPS})
-set_target_properties(clang-test-depends PROPERTIES FOLDER "Clang tests")
+set_target_properties(clang-test-depends PROPERTIES FOLDER "Clang/Tests")
 
 add_lit_testsuite(check-clang "Running the Clang regression tests"
   ${CMAKE_CURRENT_BINARY_DIR}
@@ -179,7 +179,6 @@ add_lit_testsuite(check-clang "Running the Clang regression tests"
   DEPENDS ${CLANG_TEST_DEPS}
   ARGS ${CLANG_TEST_EXTRA_ARGS}
   )
-set_target_properties(check-clang PROPERTIES FOLDER "Clang tests")
 
 add_lit_testsuites(CLANG ${CMAKE_CURRENT_SOURCE_DIR}
   PARAMS ${CLANG_TEST_PARAMS}
@@ -190,7 +189,7 @@ add_lit_testsuites(CLANG ${CMAKE_CURRENT_SOURCE_DIR}
 # Add a legacy target spelling: clang-test
 add_custom_target(clang-test)
 add_dependencies(clang-test check-clang)
-set_target_properties(clang-test PROPERTIES FOLDER "Clang tests")
+set_target_properties(clang-test PROPERTIES FOLDER "Clang/Tests")
 
 # FIXME: This logic can be removed once all buildbots have moved
 # debuginfo-test from clang/test to llvm/projects or monorepo.
diff --git a/clang/tools/libclang/CMakeLists.txt b/clang/tools/libclang/CMakeLists.txt
index b5b6d2807d714c..7b634003d11f42 100644
--- a/clang/tools/libclang/CMakeLists.txt
+++ b/clang/tools/libclang/CMakeLists.txt
@@ -230,7 +230,7 @@ install(DIRECTORY ../../include/clang-c
 # component and an install-component target, so add a dummy libclang-headers
 # target to allow using it in LLVM_DISTRIBUTION_COMPONENTS.
 add_custom_target(libclang-headers)
-set_target_properties(libclang-headers PROPERTIES FOLDER "Misc")
+set_target_properties(libclang-headers PROPERTIES FOLDER "Clang/Resources")
 
 if (NOT LLVM_ENABLE_IDE)
   add_llvm_install_targets(install-libclang-headers
diff --git a/clang/unittests/CMakeLists.txt b/clang/unittests/CMakeLists.txt
index 37ca3107b54774..b907822deb0c24 100644
--- a/clang/unittests/CMakeLists.txt
+++ b/clang/unittests/CMakeLists.txt
@@ -1,5 +1,5 @@
 add_custom_target(ClangUnitTests)
-set_target_properties(ClangUnitTests PROPERTIES FOLDER "Clang tests")
+set_target_properties(ClangUnitTests PROPERTIES FOLDER "Clang/Tests")
 
 if(CLANG_BUILT_STANDALONE)
   # LLVMTesting* libraries are needed for some of the unittests.
diff --git a/clang/utils/ClangVisualizers/CMakeLists.txt b/clang/utils/ClangVisualizers/CMakeLists.txt
index 16d118a421bad8..c047419050d104 100644
--- a/clang/utils/ClangVisualizers/CMakeLists.txt
+++ b/clang/utils/ClangVisualizers/CMakeLists.txt
@@ -3,5 +3,5 @@
 if (LLVM_ADD_NATIVE_VISUALIZERS_TO_SOLUTION)
   set(CLANG_VISUALIZERS clang.natvis)
   add_custom_target(ClangVisualizers SOURCES ${CLANG_VISUALIZERS})
-  set_target_properties(ClangVisualizers PROPERTIES FOLDER "Utils")
+  set_target_properties(ClangVisualizers PROPERTIES FOLDER "Clang/Misc")
 endif()
diff --git a/clang/utils/TableGen/CMakeLists.txt b/clang/utils/TableGen/CMakeLists.txt
index 2ca4a96cadb670..5b072a1ac19698 100644
--- a/clang/utils/TableGen/CMakeLists.txt
+++ b/clang/utils/TableGen/CMakeLists.txt
@@ -27,5 +27,3 @@ add_tablegen(clang-tblgen CLANG
   )
 
 target_link_libraries(clang-tblgen PRIVATE clangSupport_tablegen)
-
-set_target_properties(clang-tblgen PROPERTIES FOLDER "Clang tablegenning")
diff --git a/clang/utils/hmaptool/CMakeLists.txt b/clang/utils/hmaptool/CMakeLists.txt
index 511268069bd1cf..bb40ca3ea90a92 100644
--- a/clang/utils/hmaptool/CMakeLists.txt
+++ b/clang/utils/hmaptool/CMakeLists.txt
@@ -1,6 +1,6 @@
 install(PROGRAMS hmaptool DESTINATION "${CLANG_TOOLS_INSTALL_DIR}" COMPONENT hmaptool)
 add_custom_target(hmaptool ALL DEPENDS "hmaptool")
-set_target_properties(hmaptool PROPERTIES FOLDER "Utils")
+set_target_properties(hmaptool PROPERTIES FOLDER "Clang/Resources")
 
 if(NOT LLVM_ENABLE_IDE)
   add_llvm_install_targets("install-hmaptool"
diff --git a/compiler-rt/CMakeLists.txt b/compiler-rt/CMakeLists.txt
index 8649507ce1c79b..5a428ed39eacbb 100644
--- a/compiler-rt/CMakeLists.txt
+++ b/compiler-rt/CMakeLists.txt
@@ -4,6 +4,7 @@
 # based on the ability of the host toolchain to target various platforms.
 
 cmake_minimum_required(VERSION 3.20.0)
+set(LLVM_SUBPROJECT_TITLE "Compiler-RT")
 
 if(NOT DEFINED LLVM_COMMON_CMAKE_UTILS)
   set(LLVM_COMMON_CMAKE_UTILS ${CMAKE_CURRENT_SOURCE_DIR}/../cmake)
@@ -88,7 +89,7 @@ if (COMPILER_RT_STANDALONE_BUILD)
   if (TARGET intrinsics_gen)
     # Loading the llvm config causes this target to be imported so place it
     # under the appropriate folder in an IDE.
-    set_target_properties(intrinsics_gen PROPERTIES FOLDER "Compiler-RT Misc")
+    set_target_properties(intrinsics_gen PROPERTIES FOLDER "LLVM/Tablegenning")
   endif()
 
   find_pa...
[truncated]

``````````

</details>


https://github.com/llvm/llvm-project/pull/89153


More information about the cfe-commits mailing list