diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt --- a/llvm/CMakeLists.txt +++ b/llvm/CMakeLists.txt @@ -239,6 +239,9 @@ option(LLVM_USE_FOLDERS "Enable solution folders in Visual Studio. Disable for Express versions." ON) if ( LLVM_USE_FOLDERS ) set_property(GLOBAL PROPERTY USE_FOLDERS ON) + if ( NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR ) + set(CMAKE_FOLDER "${CMAKE_FOLDER}/LLVM") + endif() endif() include(VersionFromVCS) @@ -958,7 +961,7 @@ add_custom_target(srpm COMMAND cpack -G TGZ --config CPackSourceConfig.cmake -B ${LLVM_SRPM_DIR}/SOURCES COMMAND rpmbuild -bs --define '_topdir ${LLVM_SRPM_DIR}' ${LLVM_SRPM_BINARY_SPECFILE}) -set_target_properties(srpm PROPERTIES FOLDER "Misc") +set_target_properties(srpm PROPERTIES FOLDER "${CMAKE_FOLDER}/Misc") if(APPLE AND DARWIN_LTO_LIBRARY) set(CMAKE_EXE_LINKER_FLAGS @@ -1147,7 +1150,7 @@ ) add_custom_target(test-depends DEPENDS ${LLVM_LIT_DEPENDS} ${LLVM_ADDITIONAL_TEST_DEPENDS}) - set_target_properties(test-depends PROPERTIES FOLDER "Tests") + set_target_properties(test-depends PROPERTIES FOLDER "${CMAKE_FOLDER}/Tests") endif() if (LLVM_INCLUDE_DOCS) @@ -1203,7 +1206,7 @@ # Installing the headers needs to depend on generating any public # tablegen'd headers. add_custom_target(llvm-headers DEPENDS intrinsics_gen omp_gen) - set_target_properties(llvm-headers PROPERTIES FOLDER "Misc") + set_target_properties(llvm-headers PROPERTIES FOLDER "${CMAKE_FOLDER}/Misc") if (NOT LLVM_ENABLE_IDE) add_llvm_install_targets(install-llvm-headers @@ -1213,7 +1216,7 @@ # Custom target to install all libraries. add_custom_target(llvm-libraries) - set_target_properties(llvm-libraries PROPERTIES FOLDER "Misc") + set_target_properties(llvm-libraries PROPERTIES FOLDER "${CMAKE_FOLDER}/Misc") if (NOT LLVM_ENABLE_IDE) add_llvm_install_targets(install-llvm-libraries diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake --- a/llvm/cmake/modules/AddLLVM.cmake +++ b/llvm/cmake/modules/AddLLVM.cmake @@ -136,7 +136,7 @@ endif() add_custom_target(${target_name}_exports DEPENDS ${native_export_file}) - set_target_properties(${target_name}_exports PROPERTIES FOLDER "Misc") + set_target_properties(${target_name}_exports PROPERTIES FOLDER "${CMAKE_FOLDER}/Misc") get_property(srcs TARGET ${target_name} PROPERTY SOURCES) foreach(src ${srcs}) @@ -495,7 +495,7 @@ # Bring in the target include directories from our original target. target_include_directories(${obj_name} PRIVATE $) - set_target_properties(${obj_name} PROPERTIES FOLDER "Object Libraries") + set_target_properties(${obj_name} PROPERTIES FOLDER "${CMAKE_FOLDER}/Object Libraries") if(ARG_DEPENDS) add_dependencies(${obj_name} ${ARG_DEPENDS}) endif() @@ -732,7 +732,7 @@ ${prefix_option} -P "${CMAKE_BINARY_DIR}/cmake_install.cmake" USES_TERMINAL) - set_target_properties(${target} PROPERTIES FOLDER "Component Install Targets") + set_target_properties(${target} PROPERTIES FOLDER "${CMAKE_FOLDER}/Component Install Targets") add_custom_target(${target}-stripped DEPENDS ${file_dependencies} COMMAND "${CMAKE_COMMAND}" @@ -741,7 +741,7 @@ -DCMAKE_INSTALL_DO_STRIP=1 -P "${CMAKE_BINARY_DIR}/cmake_install.cmake" USES_TERMINAL) - set_target_properties(${target}-stripped PROPERTIES FOLDER "Component Install Targets (Stripped)") + set_target_properties(${target}-stripped PROPERTIES FOLDER "${CMAKE_FOLDER}/Component Install Targets (Stripped)") if(target_dependencies) add_dependencies(${target} ${target_dependencies}) add_dependencies(${target}-stripped ${target_dependencies}) @@ -851,9 +851,9 @@ set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name}) endif() if (ARG_MODULE) - set_target_properties(${name} PROPERTIES FOLDER "Loadable modules") + set_target_properties(${name} PROPERTIES FOLDER "${CMAKE_FOLDER}/Loadable modules") else() - set_target_properties(${name} PROPERTIES FOLDER "Libraries") + set_target_properties(${name} PROPERTIES FOLDER "${CMAKE_FOLDER}/Libraries") endif() endmacro(add_llvm_library name) @@ -878,7 +878,7 @@ llvm_update_compile_flags(${obj_name}) set(ALL_FILES "$") - set_target_properties(${obj_name} PROPERTIES FOLDER "Object Libraries") + set_target_properties(${obj_name} PROPERTIES FOLDER "${CMAKE_FOLDER}/Object Libraries") endif() add_windows_version_resource_file(ALL_FILES ${ALL_FILES}) @@ -1265,7 +1265,7 @@ if( LLVM_BUILD_TOOLS ) set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name}) endif() - set_target_properties(${name} PROPERTIES FOLDER "Tools") + set_target_properties(${name} PROPERTIES FOLDER "${CMAKE_FOLDER}/Tools") endmacro(add_llvm_tool name) @@ -1277,7 +1277,7 @@ if( LLVM_BUILD_EXAMPLES ) install(TARGETS ${name} RUNTIME DESTINATION "${LLVM_EXAMPLES_INSTALL_DIR}") endif() - set_target_properties(${name} PROPERTIES FOLDER "Examples") + set_target_properties(${name} PROPERTIES FOLDER "${CMAKE_FOLDER}/Examples") endmacro(add_llvm_example name) macro(add_llvm_example_library name) @@ -1288,7 +1288,7 @@ add_llvm_library(${name} ${ARGN}) endif() - set_target_properties(${name} PROPERTIES FOLDER "Examples") + set_target_properties(${name} PROPERTIES FOLDER "${CMAKE_FOLDER}/Examples") endmacro(add_llvm_example_library name) # This is a macro that is used to create targets for executables that are needed @@ -1299,7 +1299,7 @@ endif() add_llvm_executable(${name} DISABLE_LLVM_LINK_LLVM_DYLIB ${ARGN}) - set_target_properties(${name} PROPERTIES FOLDER "Utils") + set_target_properties(${name} PROPERTIES FOLDER "${CMAKE_FOLDER}/Utils") if ( ${name} IN_LIST LLVM_TOOLCHAIN_UTILITIES OR NOT LLVM_INSTALL_TOOLCHAIN_ONLY) if (LLVM_INSTALL_UTILS AND LLVM_BUILD_UTILS) get_target_export_arg(${name} LLVM export_to_llvmexports) @@ -1326,15 +1326,15 @@ set(LLVM_OPTIONAL_SOURCES ${ARG_DUMMY_MAIN}) add_llvm_executable(${name} ${ARG_UNPARSED_ARGUMENTS}) target_link_libraries(${name} PRIVATE ${LLVM_LIB_FUZZING_ENGINE}) - set_target_properties(${name} PROPERTIES FOLDER "Fuzzers") + set_target_properties(${name} PROPERTIES FOLDER "${CMAKE_FOLDER}/Fuzzers") elseif( LLVM_USE_SANITIZE_COVERAGE ) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=fuzzer") set(LLVM_OPTIONAL_SOURCES ${ARG_DUMMY_MAIN}) add_llvm_executable(${name} ${ARG_UNPARSED_ARGUMENTS}) - set_target_properties(${name} PROPERTIES FOLDER "Fuzzers") + set_target_properties(${name} PROPERTIES FOLDER "${CMAKE_FOLDER}/Fuzzers") elseif( ARG_DUMMY_MAIN ) add_llvm_executable(${name} ${ARG_DUMMY_MAIN} ${ARG_UNPARSED_ARGUMENTS}) - set_target_properties(${name} PROPERTIES FOLDER "Fuzzers") + set_target_properties(${name} PROPERTIES FOLDER "${CMAKE_FOLDER}/Fuzzers") endif() endmacro() @@ -1531,7 +1531,7 @@ add_llvm_executable(${benchmark_name} IGNORE_EXTERNALIZE_DEBUGINFO NO_INSTALL_RPATH ${ARGN}) set(outdir ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}) set_output_directory(${benchmark_name} BINARY_DIR ${outdir} LIBRARY_DIR ${outdir}) - set_property(TARGET ${benchmark_name} PROPERTY FOLDER "Utils") + set_property(TARGET ${benchmark_name} PROPERTY FOLDER "${CMAKE_FOLDER}/Utils") target_link_libraries(${benchmark_name} PRIVATE benchmark) endfunction() @@ -2012,7 +2012,7 @@ COMMAND ${CMAKE_COMMAND} -E ${LLVM_LINK_OR_COPY} "${dest_binary}" "${output_path}" DEPENDS ${target}) add_custom_target(${target_name} ALL DEPENDS ${target} ${output_path}) - set_target_properties(${target_name} PROPERTIES FOLDER Tools) + set_target_properties(${target_name} PROPERTIES FOLDER "${CMAKE_FOLDER}/Tools") # Make sure both the link and target are toolchain tools if (${link_name} IN_LIST LLVM_TOOLCHAIN_TOOLS AND ${target} IN_LIST LLVM_TOOLCHAIN_TOOLS) diff --git a/llvm/cmake/modules/AddOCaml.cmake b/llvm/cmake/modules/AddOCaml.cmake --- a/llvm/cmake/modules/AddOCaml.cmake +++ b/llvm/cmake/modules/AddOCaml.cmake @@ -228,5 +228,5 @@ add_custom_target(ocaml_make_directory COMMAND "${CMAKE_COMMAND}" "-E" "make_directory" "${LLVM_LIBRARY_DIR}/ocaml/llvm") add_custom_target("ocaml_all") -set_target_properties(ocaml_all PROPERTIES FOLDER "Misc") -set_target_properties(ocaml_make_directory PROPERTIES FOLDER "Misc") +set_target_properties(ocaml_all PROPERTIES FOLDER "${CMAKE_FOLDER}/Misc") +set_target_properties(ocaml_make_directory PROPERTIES FOLDER "${CMAKE_FOLDER}/Misc") diff --git a/llvm/cmake/modules/TableGen.cmake b/llvm/cmake/modules/TableGen.cmake --- a/llvm/cmake/modules/TableGen.cmake +++ b/llvm/cmake/modules/TableGen.cmake @@ -135,7 +135,7 @@ if(LLVM_COMMON_DEPENDS) add_dependencies(${target} ${LLVM_COMMON_DEPENDS}) endif() - set_target_properties(${target} PROPERTIES FOLDER "Tablegenning") + set_target_properties(${target} PROPERTIES FOLDER "${CMAKE_FOLDER}/Tablegenning") set(LLVM_COMMON_DEPENDS ${LLVM_COMMON_DEPENDS} ${target} PARENT_SCOPE) endfunction() diff --git a/llvm/examples/Bye/CMakeLists.txt b/llvm/examples/Bye/CMakeLists.txt --- a/llvm/examples/Bye/CMakeLists.txt +++ b/llvm/examples/Bye/CMakeLists.txt @@ -15,5 +15,5 @@ ) install(TARGETS ${name} RUNTIME DESTINATION "${LLVM_EXAMPLES_INSTALL_DIR}") - set_target_properties(${name} PROPERTIES FOLDER "Examples") + set_target_properties(${name} PROPERTIES FOLDER "${CMAKE_FOLDER}/Examples") endif() diff --git a/llvm/examples/Kaleidoscope/CMakeLists.txt b/llvm/examples/Kaleidoscope/CMakeLists.txt --- a/llvm/examples/Kaleidoscope/CMakeLists.txt +++ b/llvm/examples/Kaleidoscope/CMakeLists.txt @@ -1,5 +1,5 @@ add_custom_target(Kaleidoscope) -set_target_properties(Kaleidoscope PROPERTIES FOLDER Examples) +set_target_properties(Kaleidoscope PROPERTIES FOLDER "${CMAKE_FOLDER}/Examples") macro(add_kaleidoscope_chapter name) add_dependencies(Kaleidoscope ${name}) diff --git a/llvm/include/llvm/Support/CMakeLists.txt b/llvm/include/llvm/Support/CMakeLists.txt --- a/llvm/include/llvm/Support/CMakeLists.txt +++ b/llvm/include/llvm/Support/CMakeLists.txt @@ -44,4 +44,4 @@ HEADER_FILE_ONLY TRUE) add_custom_target(llvm_vcsrevision_h ALL DEPENDS "${generated_files}") -set_target_properties(llvm_vcsrevision_h PROPERTIES FOLDER "Misc") +set_target_properties(llvm_vcsrevision_h PROPERTIES FOLDER "${CMAKE_FOLDER}/Misc") diff --git a/llvm/test/CMakeLists.txt b/llvm/test/CMakeLists.txt --- a/llvm/test/CMakeLists.txt +++ b/llvm/test/CMakeLists.txt @@ -212,7 +212,7 @@ endif() add_custom_target(llvm-test-depends DEPENDS ${LLVM_TEST_DEPENDS}) -set_target_properties(llvm-test-depends PROPERTIES FOLDER "Tests") +set_target_properties(llvm-test-depends PROPERTIES FOLDER "${CMAKE_FOLDER}/Tests") if(LLVM_BUILD_TOOLS) set(exclude_from_check_all "") @@ -225,7 +225,7 @@ ${exclude_from_check_all} DEPENDS ${LLVM_TEST_DEPENDS} ) -set_target_properties(check-llvm PROPERTIES FOLDER "Tests") +set_target_properties(check-llvm PROPERTIES FOLDER "${CMAKE_FOLDER}/Tests") add_lit_testsuites(LLVM ${CMAKE_CURRENT_SOURCE_DIR} ${exclude_from_check_all} @@ -236,4 +236,4 @@ # Setup an alias for 'check-all'. add_custom_target(check) add_dependencies(check check-all) -set_target_properties(check PROPERTIES FOLDER "Tests") +set_target_properties(check PROPERTIES FOLDER "${CMAKE_FOLDER}/Tests") diff --git a/llvm/unittests/CMakeLists.txt b/llvm/unittests/CMakeLists.txt --- a/llvm/unittests/CMakeLists.txt +++ b/llvm/unittests/CMakeLists.txt @@ -1,5 +1,5 @@ add_custom_target(UnitTests) -set_target_properties(UnitTests PROPERTIES FOLDER "Tests") +set_target_properties(UnitTests PROPERTIES FOLDER "${CMAKE_FOLDER}/Tests") function(add_llvm_unittest test_dirname) add_unittest(UnitTests ${test_dirname} ${ARGN}) diff --git a/llvm/unittests/Passes/CMakeLists.txt b/llvm/unittests/Passes/CMakeLists.txt --- a/llvm/unittests/Passes/CMakeLists.txt +++ b/llvm/unittests/Passes/CMakeLists.txt @@ -33,7 +33,7 @@ BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR} LIBRARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR} ) - set_target_properties(${PLUGIN} PROPERTIES FOLDER "Tests") + set_target_properties(${PLUGIN} PROPERTIES FOLDER "${CMAKE_FOLDER}/Tests") add_dependencies(${PLUGIN} intrinsics_gen) add_dependencies(PluginsTests ${PLUGIN}) diff --git a/llvm/unittests/Support/DynamicLibrary/CMakeLists.txt b/llvm/unittests/Support/DynamicLibrary/CMakeLists.txt --- a/llvm/unittests/Support/DynamicLibrary/CMakeLists.txt +++ b/llvm/unittests/Support/DynamicLibrary/CMakeLists.txt @@ -6,7 +6,7 @@ add_library(DynamicLibraryLib STATIC ExportedFuncs.cpp ) -set_target_properties(DynamicLibraryLib PROPERTIES FOLDER "Tests") +set_target_properties(DynamicLibraryLib PROPERTIES FOLDER "${CMAKE_FOLDER}/Tests") # extract_symbols.py relies on all its library arguments being in the same # directory, so we must set the output directory in the same way as if @@ -25,7 +25,7 @@ add_library(${NAME} MODULE PipSqueak.cpp ) - set_target_properties(${NAME} PROPERTIES FOLDER "Tests") + set_target_properties(${NAME} PROPERTIES FOLDER "${CMAKE_FOLDER}/Tests") set_output_directory(${NAME} BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR} diff --git a/llvm/utils/LLVMVisualizers/CMakeLists.txt b/llvm/utils/LLVMVisualizers/CMakeLists.txt --- a/llvm/utils/LLVMVisualizers/CMakeLists.txt +++ b/llvm/utils/LLVMVisualizers/CMakeLists.txt @@ -3,5 +3,5 @@ if (LLVM_ADD_NATIVE_VISUALIZERS_TO_SOLUTION) set(LLVM_VISUALIZERS llvm.natvis) add_custom_target(LLVMVisualizers SOURCES ${LLVM_VISUALIZERS}) - set_target_properties(LLVMVisualizers PROPERTIES FOLDER "Utils") + set_target_properties(LLVMVisualizers PROPERTIES FOLDER "${CMAKE_FOLDER}/Utils") endif() diff --git a/llvm/utils/TableGen/CMakeLists.txt b/llvm/utils/TableGen/CMakeLists.txt --- a/llvm/utils/TableGen/CMakeLists.txt +++ b/llvm/utils/TableGen/CMakeLists.txt @@ -60,4 +60,4 @@ CTagsEmitter.cpp ) target_link_libraries(llvm-tblgen PRIVATE LLVMTableGenGlobalISel) -set_target_properties(llvm-tblgen PROPERTIES FOLDER "Tablegenning") +set_target_properties(llvm-tblgen PROPERTIES FOLDER "${CMAKE_FOLDER}/Tablegenning") diff --git a/llvm/utils/lit/CMakeLists.txt b/llvm/utils/lit/CMakeLists.txt --- a/llvm/utils/lit/CMakeLists.txt +++ b/llvm/utils/lit/CMakeLists.txt @@ -26,5 +26,5 @@ ) # For IDEs -set_target_properties(check-lit PROPERTIES FOLDER "Tests") -set_target_properties(prepare-check-lit PROPERTIES FOLDER "Tests") +set_target_properties(check-lit PROPERTIES FOLDER "${CMAKE_FOLDER}/Tests") +set_target_properties(prepare-check-lit PROPERTIES FOLDER "${CMAKE_FOLDER}/Tests") diff --git a/llvm/utils/llvm-locstats/CMakeLists.txt b/llvm/utils/llvm-locstats/CMakeLists.txt --- a/llvm/utils/llvm-locstats/CMakeLists.txt +++ b/llvm/utils/llvm-locstats/CMakeLists.txt @@ -12,5 +12,5 @@ if (NOT LLVM_BUILD_TOOLS) set_target_properties(llvm-locstats PROPERTIES EXCLUDE_FROM_ALL ON) endif() - set_target_properties(llvm-locstats PROPERTIES FOLDER "Tools") + set_target_properties(llvm-locstats PROPERTIES FOLDER "${CMAKE_FOLDER}/Tools") endif()