Skip to content

Commit f2a385c

Browse files
authored
[clang] Revise IDE folder structure (#89743)
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.
1 parent c5a3f66 commit f2a385c

File tree

12 files changed

+16
-18
lines changed

12 files changed

+16
-18
lines changed

clang/CMakeLists.txt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
cmake_minimum_required(VERSION 3.20.0)
2+
set(LLVM_SUBPROJECT_TITLE "Clang")
23

34
if(NOT DEFINED LLVM_COMMON_CMAKE_UTILS)
45
set(LLVM_COMMON_CMAKE_UTILS ${CMAKE_CURRENT_SOURCE_DIR}/../cmake)
@@ -391,14 +392,15 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
391392
# Installing the headers needs to depend on generating any public
392393
# tablegen'd headers.
393394
add_custom_target(clang-headers DEPENDS clang-tablegen-targets)
394-
set_target_properties(clang-headers PROPERTIES FOLDER "Misc")
395+
set_target_properties(clang-headers PROPERTIES FOLDER "Clang/Resources")
395396
if(NOT LLVM_ENABLE_IDE)
396397
add_llvm_install_targets(install-clang-headers
397398
DEPENDS clang-headers
398399
COMPONENT clang-headers)
399400
endif()
400401

401402
add_custom_target(bash-autocomplete DEPENDS utils/bash-autocomplete.sh)
403+
set_target_properties(bash-autocomplete PROPERTIES FOLDER "Clang/Misc")
402404
install(FILES utils/bash-autocomplete.sh
403405
DESTINATION "${CMAKE_INSTALL_DATADIR}/clang"
404406
COMPONENT bash-autocomplete)
@@ -479,7 +481,7 @@ add_custom_target(clang-tablegen-targets
479481
omp_gen
480482
ClangDriverOptions
481483
${CLANG_TABLEGEN_TARGETS})
482-
set_target_properties(clang-tablegen-targets PROPERTIES FOLDER "Misc")
484+
set_target_properties(clang-tablegen-targets PROPERTIES FOLDER "Clang/Tablegenning/Targets")
483485
list(APPEND LLVM_COMMON_DEPENDS clang-tablegen-targets)
484486

485487
# Force target to be built as soon as possible. Clang modules builds depend
@@ -544,7 +546,7 @@ endif()
544546

545547
# Custom target to install all clang libraries.
546548
add_custom_target(clang-libraries)
547-
set_target_properties(clang-libraries PROPERTIES FOLDER "Misc")
549+
set_target_properties(clang-libraries PROPERTIES FOLDER "Clang/Install")
548550

549551
if(NOT LLVM_ENABLE_IDE)
550552
add_llvm_install_targets(install-clang-libraries

clang/bindings/python/tests/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ add_custom_target(check-clang-python
1111
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/..)
1212

1313
set(RUN_PYTHON_TESTS TRUE)
14-
set_target_properties(check-clang-python PROPERTIES FOLDER "Clang tests")
14+
set_target_properties(check-clang-python PROPERTIES FOLDER "Clang/Tests")
1515

1616
# Tests require libclang.so which is only built with LLVM_ENABLE_PIC=ON
1717
if(NOT LLVM_ENABLE_PIC)

clang/cmake/modules/AddClang.cmake

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ function(clang_tablegen)
2626

2727
if(CTG_TARGET)
2828
add_public_tablegen_target(${CTG_TARGET})
29-
set_target_properties( ${CTG_TARGET} PROPERTIES FOLDER "Clang tablegenning")
3029
set_property(GLOBAL APPEND PROPERTY CLANG_TABLEGEN_TARGETS ${CTG_TARGET})
3130
endif()
3231
endfunction(clang_tablegen)
@@ -138,13 +137,11 @@ macro(add_clang_library name)
138137
endif()
139138
endforeach()
140139

141-
set_target_properties(${name} PROPERTIES FOLDER "Clang libraries")
142140
set_clang_windows_version_resource_properties(${name})
143141
endmacro(add_clang_library)
144142

145143
macro(add_clang_executable name)
146144
add_llvm_executable( ${name} ${ARGN} )
147-
set_target_properties(${name} PROPERTIES FOLDER "Clang executables")
148145
set_clang_windows_version_resource_properties(${name})
149146
endmacro(add_clang_executable)
150147

clang/docs/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ if (LLVM_ENABLE_DOXYGEN)
7878
COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/doxygen.cfg
7979
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
8080
COMMENT "Generating clang doxygen documentation." VERBATIM)
81+
set_target_properties(doxygen-clang PROPERTIES FOLDER "Clang/Docs")
8182

8283
if (LLVM_BUILD_DOCS)
8384
add_dependencies(doxygen doxygen-clang)

clang/lib/Analysis/FlowSensitive/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,4 @@ add_custom_command(OUTPUT HTMLLogger.inc
3737
DEPENDS ${CLANG_SOURCE_DIR}/utils/bundle_resources.py HTMLLogger.html HTMLLogger.css HTMLLogger.js
3838
VERBATIM)
3939
add_custom_target(clangAnalysisFlowSensitiveResources DEPENDS HTMLLogger.inc)
40+
set_target_properties(clangAnalysisFlowSensitiveResources PROPERTIES FOLDER "Clang/Misc")

clang/lib/Headers/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -443,14 +443,14 @@ endforeach( f )
443443
function(add_header_target target_name file_list)
444444
add_library(${target_name} INTERFACE ${file_list})
445445
set_target_properties(${target_name} PROPERTIES
446-
FOLDER "Misc"
446+
FOLDER "Clang/Resources"
447447
RUNTIME_OUTPUT_DIRECTORY "${output_dir}")
448448
endfunction()
449449

450450
# The catch-all clang-resource-headers target
451451
add_library(clang-resource-headers INTERFACE ${out_files})
452452
set_target_properties("clang-resource-headers" PROPERTIES
453-
FOLDER "Misc"
453+
FOLDER "Clang/Resources"
454454
RUNTIME_OUTPUT_DIRECTORY "${output_dir}")
455455
add_dependencies("clang-resource-headers"
456456
"core-resource-headers"

clang/test/CMakeLists.txt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ configure_file(AST/gen_ast_dump_json_test.py
170170
${CLANG_BINARY_DIR}/bin/gen_ast_dump_json_test.py COPYONLY)
171171

172172
add_custom_target(clang-test-depends DEPENDS ${CLANG_TEST_DEPS})
173-
set_target_properties(clang-test-depends PROPERTIES FOLDER "Clang tests")
173+
set_target_properties(clang-test-depends PROPERTIES FOLDER "Clang/Tests")
174174

175175
add_lit_testsuite(check-clang "Running the Clang regression tests"
176176
${CMAKE_CURRENT_BINARY_DIR}
@@ -179,7 +179,6 @@ add_lit_testsuite(check-clang "Running the Clang regression tests"
179179
DEPENDS ${CLANG_TEST_DEPS}
180180
ARGS ${CLANG_TEST_EXTRA_ARGS}
181181
)
182-
set_target_properties(check-clang PROPERTIES FOLDER "Clang tests")
183182

184183
add_lit_testsuites(CLANG ${CMAKE_CURRENT_SOURCE_DIR}
185184
PARAMS ${CLANG_TEST_PARAMS}
@@ -190,7 +189,7 @@ add_lit_testsuites(CLANG ${CMAKE_CURRENT_SOURCE_DIR}
190189
# Add a legacy target spelling: clang-test
191190
add_custom_target(clang-test)
192191
add_dependencies(clang-test check-clang)
193-
set_target_properties(clang-test PROPERTIES FOLDER "Clang tests")
192+
set_target_properties(clang-test PROPERTIES FOLDER "Clang/Tests")
194193

195194
# FIXME: This logic can be removed once all buildbots have moved
196195
# debuginfo-test from clang/test to llvm/projects or monorepo.

clang/tools/libclang/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ install(DIRECTORY ../../include/clang-c
230230
# component and an install-component target, so add a dummy libclang-headers
231231
# target to allow using it in LLVM_DISTRIBUTION_COMPONENTS.
232232
add_custom_target(libclang-headers)
233-
set_target_properties(libclang-headers PROPERTIES FOLDER "Misc")
233+
set_target_properties(libclang-headers PROPERTIES FOLDER "Clang/Resources")
234234

235235
if (NOT LLVM_ENABLE_IDE)
236236
add_llvm_install_targets(install-libclang-headers

clang/unittests/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
add_custom_target(ClangUnitTests)
2-
set_target_properties(ClangUnitTests PROPERTIES FOLDER "Clang tests")
2+
set_target_properties(ClangUnitTests PROPERTIES FOLDER "Clang/Tests")
33

44
if(CLANG_BUILT_STANDALONE)
55
# LLVMTesting* libraries are needed for some of the unittests.

clang/utils/ClangVisualizers/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
if (LLVM_ADD_NATIVE_VISUALIZERS_TO_SOLUTION)
44
set(CLANG_VISUALIZERS clang.natvis)
55
add_custom_target(ClangVisualizers SOURCES ${CLANG_VISUALIZERS})
6-
set_target_properties(ClangVisualizers PROPERTIES FOLDER "Utils")
6+
set_target_properties(ClangVisualizers PROPERTIES FOLDER "Clang/Misc")
77
endif()

clang/utils/TableGen/CMakeLists.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,3 @@ add_tablegen(clang-tblgen CLANG
2727
)
2828

2929
target_link_libraries(clang-tblgen PRIVATE clangSupport_tablegen)
30-
31-
set_target_properties(clang-tblgen PROPERTIES FOLDER "Clang tablegenning")

clang/utils/hmaptool/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
install(PROGRAMS hmaptool DESTINATION "${CLANG_TOOLS_INSTALL_DIR}" COMPONENT hmaptool)
22
add_custom_target(hmaptool ALL DEPENDS "hmaptool")
3-
set_target_properties(hmaptool PROPERTIES FOLDER "Utils")
3+
set_target_properties(hmaptool PROPERTIES FOLDER "Clang/Utils")
44

55
if(NOT LLVM_ENABLE_IDE)
66
add_llvm_install_targets("install-hmaptool"

0 commit comments

Comments
 (0)