[mlir] Revise IDE folder structure (#89749)

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:32:42 +02:00 committed by GitHub
parent c3efb57655
commit 064391df49
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
14 changed files with 20 additions and 12 deletions

View File

@ -1,5 +1,6 @@
# MLIR project.
cmake_minimum_required(VERSION 3.20.0)
set(LLVM_SUBPROJECT_TITLE "MLIR")
if(NOT DEFINED LLVM_COMMON_CMAKE_UTILS)
set(LLVM_COMMON_CMAKE_UTILS ${CMAKE_CURRENT_SOURCE_DIR}/../cmake)
@ -96,12 +97,13 @@ endif()
# tablegen'd targets.
# mlir-generic-headers are dialect-independent.
add_custom_target(mlir-generic-headers)
set_target_properties(mlir-generic-headers PROPERTIES FOLDER "Misc")
set_target_properties(mlir-generic-headers PROPERTIES FOLDER "MLIR/Resources")
# mlir-headers may be dialect-dependent.
add_custom_target(mlir-headers)
set_target_properties(mlir-headers PROPERTIES FOLDER "Misc")
set_target_properties(mlir-headers PROPERTIES FOLDER "MLIR/Resources")
add_dependencies(mlir-headers mlir-generic-headers)
add_custom_target(mlir-doc)
set_target_properties(mlir-doc PROPERTIES FOLDER "MLIR/Docs")
# Only enable execution engine if the native target is available.
if(${LLVM_NATIVE_ARCH} IN_LIST LLVM_TARGETS_TO_BUILD)
@ -193,6 +195,7 @@ add_subdirectory(lib/CAPI)
if (MLIR_INCLUDE_TESTS)
add_definitions(-DMLIR_INCLUDE_TESTS)
add_custom_target(MLIRUnitTests)
set_target_properties(MLIRUnitTests PROPERTIES FOLDER "MLIR/Tests")
if (EXISTS ${LLVM_THIRD_PARTY_DIR}/unittest/googletest/include/gtest/gtest.h)
add_subdirectory(unittests)
else()
@ -253,7 +256,7 @@ endif()
# Custom target to install all mlir libraries
add_custom_target(mlir-libraries)
set_target_properties(mlir-libraries PROPERTIES FOLDER "Misc")
set_target_properties(mlir-libraries PROPERTIES FOLDER "MLIR/Metatargets")
if (NOT LLVM_ENABLE_IDE)
add_llvm_install_targets(install-mlir-libraries

View File

@ -210,6 +210,7 @@ function(add_mlir_doc doc_filename output_file output_directory command)
${GEN_DOC_FILE}
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${output_file}.md)
add_custom_target(${output_file}DocGen DEPENDS ${GEN_DOC_FILE})
set_target_properties(${output_file}DocGen PROPERTIES FOLDER "MLIR/Tablegenning/Docs")
add_dependencies(mlir-doc ${output_file}DocGen)
endfunction()
@ -290,7 +291,7 @@ function(add_mlir_example_library name)
list(APPEND ARG_DEPENDS mlir-generic-headers)
llvm_add_library(${name} ${LIBTYPE} ${ARG_UNPARSED_ARGUMENTS} ${srcs} DEPENDS ${ARG_DEPENDS} LINK_COMPONENTS ${ARG_LINK_COMPONENTS} LINK_LIBS ${ARG_LINK_LIBS})
set_target_properties(${name} PROPERTIES FOLDER "Examples")
set_target_properties(${name} PROPERTIES FOLDER "MLIR/Examples")
if (LLVM_BUILD_EXAMPLES AND NOT ${ARG_DISABLE_INSTALL})
add_mlir_library_install(${name})
else()
@ -367,7 +368,7 @@ function(add_mlir_library name)
# Add empty "phony" target
add_custom_target(${name})
endif()
set_target_properties(${name} PROPERTIES FOLDER "MLIR libraries")
set_target_properties(${name} PROPERTIES FOLDER "MLIR/Libraries")
# Setup aggregate.
if(ARG_ENABLE_AGGREGATION)

View File

@ -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 mlir doxygen documentation." VERBATIM)
set_target_properties(doxygen-mlir PROPERTIES FOLDER "MLIR/Docs")
if (LLVM_BUILD_DOCS)
add_dependencies(doxygen doxygen-mlir)

View File

@ -1,5 +1,5 @@
add_custom_target(Toy)
set_target_properties(Toy PROPERTIES FOLDER Examples)
set_target_properties(Toy PROPERTIES FOLDER "MLIR/Examples")
macro(add_toy_chapter name)
add_dependencies(Toy ${name})

View File

@ -1,4 +1,5 @@
add_custom_target(TransformExample)
set_target_properties(TransformExample PROPERTIES FOLDER "MLIR/Examples")
add_subdirectory(Ch2)
add_subdirectory(Ch3)

View File

@ -23,6 +23,7 @@ function(add_linalg_ods_yaml_gen yaml_ast_file output_file)
${MLIR_LINALG_ODS_YAML_GEN_EXE}
${MLIR_LINALG_ODS_YAML_GEN_TARGET}
${GEN_ODS_FILE} ${GEN_CPP_FILE})
set_target_properties(MLIR${output_file}YamlIncGen PROPERTIES FOLDER "MLIR/Tablegenning")
list(APPEND LLVM_TARGET_DEPENDS ${GEN_ODS_FILE})
set(LLVM_TARGET_DEPENDS ${LLVM_TARGET_DEPENDS} PARENT_SCOPE)
endfunction()
@ -40,6 +41,7 @@ add_custom_target(LinalgOdsGen
DEPENDS
MLIRLinalgNamedStructuredOpsYamlIncGen
)
set_target_properties(LinalgOdsGen PROPERTIES FOLDER "MLIR/Tablegenning")
add_dependencies(mlir-headers LinalgOdsGen)
add_mlir_dialect(LinalgOps linalg)

View File

@ -40,6 +40,7 @@ llvm_add_library(MLIRTableGen STATIC
${MLIR_MAIN_INCLUDE_DIR}/mlir/TableGen
${MLIR_MAIN_INCLUDE_DIR}/mlir/Support
)
set_target_properties(MLIRTableGen PROPERTIES FOLDER "MLIR/Tablegenning")
mlir_check_all_link_libraries(MLIRTableGen)

View File

@ -9,6 +9,8 @@ function(_add_capi_test_executable name)
add_llvm_executable(${name}
PARTIAL_SOURCES_INTENDED
${ARG_UNPARSED_ARGUMENTS})
set_target_properties(${name} PROPERTIES FOLDER "MLIR/Tests")
llvm_update_compile_flags(${name})
if(MLIR_BUILD_MLIR_C_DYLIB)
target_link_libraries(${name} PRIVATE

View File

@ -217,12 +217,12 @@ endif()
add_custom_target(check-mlir-build-only
DEPENDS ${MLIR_TEST_DEPENDS}
)
set_target_properties(check-mlir-build-only PROPERTIES FOLDER "MLIR/Tests")
add_lit_testsuite(check-mlir "Running the MLIR regression tests"
${CMAKE_CURRENT_BINARY_DIR}
DEPENDS ${MLIR_TEST_DEPENDS}
)
set_target_properties(check-mlir PROPERTIES FOLDER "Tests")
add_lit_testsuites(MLIR ${CMAKE_CURRENT_SOURCE_DIR}
DEPENDS ${MLIR_TEST_DEPENDS}

View File

@ -18,6 +18,7 @@ setup_host_tool(mlir-linalg-ods-yaml-gen MLIR_LINALG_ODS_YAML_GEN MLIR_LINALG_OD
if(NOT ${MLIR_LINALG_ODS_YAML_GEN_EXE} STREQUAL "mlir-linalg-ods-yaml-gen")
add_custom_target(mlir-linalg-ods-yaml-gen-host DEPENDS ${MLIR_LINALG_ODS_YAML_GEN_EXE})
set_target_properties(mlir-linalg-ods-yaml-gen-host PROPERTIES FOLDER "MLIR/Tablegenning")
if(NOT LLVM_BUILD_UTILS)
set_target_properties(mlir-linalg-ods-yaml-gen PROPERTIES EXCLUDE_FROM_ALL ON)

View File

@ -21,7 +21,6 @@ add_tablegen(mlir-pdll MLIR_PDLL
${LIBS}
)
set_target_properties(mlir-pdll PROPERTIES FOLDER "Tablegenning")
target_link_libraries(mlir-pdll PRIVATE ${LIBS})
mlir_check_all_link_libraries(mlir-pdll)

View File

@ -8,7 +8,7 @@ add_tablegen(mlir-src-sharder MLIR_SRC_SHARDER
${LIBS}
)
set_target_properties(mlir-src-sharder PROPERTIES FOLDER "Tablegenning")
set_target_properties(mlir-src-sharder PROPERTIES FOLDER "MLIR/Tablegenning")
target_link_libraries(mlir-src-sharder PRIVATE ${LIBS})
mlir_check_all_link_libraries(mlir-src-sharder)

View File

@ -33,7 +33,6 @@ add_tablegen(mlir-tblgen MLIR
SPIRVUtilsGen.cpp
)
set_target_properties(mlir-tblgen PROPERTIES FOLDER "Tablegenning")
target_link_libraries(mlir-tblgen
PRIVATE
MLIRTblgenLib)

View File

@ -1,5 +1,3 @@
set_target_properties(MLIRUnitTests PROPERTIES FOLDER "MLIR Tests")
# To silence warning caused by Wundef.
add_definitions(-DGTEST_NO_LLVM_SUPPORT=0)