Index: CMakeLists.txt =================================================================== --- CMakeLists.txt +++ CMakeLists.txt @@ -9,6 +9,7 @@ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR COMPILER_RT_STANDALONE_BUILD) project(CompilerRT C CXX ASM) set(COMPILER_RT_STANDALONE_BUILD TRUE) + set_property(GLOBAL PROPERTY USE_FOLDERS ON) endif() # Add path for custom compiler-rt modules. @@ -63,6 +64,11 @@ if (COMPILER_RT_STANDALONE_BUILD) load_llvm_config() + 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") + endif() # Find Python interpreter. set(Python_ADDITIONAL_VERSIONS 2.7 2.6 2.5) Index: cmake/Modules/AddCompilerRT.cmake =================================================================== --- cmake/Modules/AddCompilerRT.cmake +++ cmake/Modules/AddCompilerRT.cmake @@ -204,6 +204,8 @@ # If the parent targets aren't created we should create them if(NOT TARGET ${LIB_PARENT_TARGET}) add_custom_target(${LIB_PARENT_TARGET}) + set_target_properties(${LIB_PARENT_TARGET} PROPERTIES + FOLDER "Compiler-RT Misc") endif() if(NOT TARGET install-${LIB_PARENT_TARGET}) # The parent install target specifies the parent component to scrape up @@ -500,6 +502,7 @@ COMMENT "Clobbering ${name} build and stamp directories" USES_TERMINAL ) + set_target_properties(${name}-clear PROPERTIES FOLDER "Compiler-RT Misc") add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${name}-clobber-stamp @@ -512,6 +515,7 @@ add_custom_target(${name}-clobber DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${name}-clobber-stamp) + set_target_properties(${name}-clobber PROPERTIES FOLDER "Compiler-RT Misc") set(PASSTHROUGH_VARIABLES CMAKE_C_COMPILER_TARGET Index: cmake/Modules/CompilerRTDarwinUtils.cmake =================================================================== --- cmake/Modules/CompilerRTDarwinUtils.cmake +++ cmake/Modules/CompilerRTDarwinUtils.cmake @@ -230,6 +230,7 @@ list(APPEND ${LIB_OS}_${suffix}_libs ${libname}) list(APPEND ${LIB_OS}_${suffix}_lipo_flags -arch ${arch} $) + set_target_properties(${libname} PROPERTIES FOLDER "Compiler-RT Libraries") endmacro() function(darwin_lipo_libs name) @@ -251,6 +252,7 @@ add_dependencies(${LIB_PARENT_TARGET} ${name}) install(FILES ${LIB_OUTPUT_DIR}/lib${name}.a DESTINATION ${LIB_INSTALL_DIR}) + set_target_properties(${name} PROPERTIES FOLDER "Compiler-RT Misc") else() message(WARNING "Not generating lipo target for ${name} because no input libraries exist.") endif() Index: cmake/Modules/SanitizerUtils.cmake =================================================================== --- cmake/Modules/SanitizerUtils.cmake +++ cmake/Modules/SanitizerUtils.cmake @@ -90,5 +90,8 @@ DEPENDS ${SANITIZER_LINT_SCRIPT} COMMENT "Running lint check for sanitizer sources..." VERBATIM) + # For IDEs + set_target_properties(SanitizerLintCheck + PROPERTIES FOLDER "Compiler-RT Misc") endif() Index: cmake/base-config-ix.cmake =================================================================== --- cmake/base-config-ix.cmake +++ cmake/base-config-ix.cmake @@ -12,7 +12,14 @@ add_custom_target(compiler-rt ALL) add_custom_target(install-compiler-rt) add_custom_target(install-compiler-rt-stripped) -set_target_properties(compiler-rt PROPERTIES FOLDER "Compiler-RT Misc") +set_property( + TARGET + compiler-rt + install-compiler-rt + install-compiler-rt-stripped + PROPERTY + FOLDER "Compiler-RT Misc" +) # Setting these variables from an LLVM build is sufficient that compiler-rt can # construct the output paths, so it can behave as if it were in-tree here. Index: lib/tsan/CMakeLists.txt =================================================================== --- lib/tsan/CMakeLists.txt +++ lib/tsan/CMakeLists.txt @@ -136,6 +136,7 @@ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/go COMMENT "Checking TSan Go runtime..." VERBATIM) + set_target_properties(GotsanRuntimeCheck PROPERTIES FOLDER "Compiler-RT Misc") else() foreach(arch ${TSAN_SUPPORTED_ARCH}) if(arch STREQUAL "x86_64") @@ -231,6 +232,7 @@ endforeach() add_custom_target(libcxx_tsan DEPENDS ${libcxx_tsan_deps}) + set_target_properties(libcxx_tsan PROPERTIES FOLDER "Compiler-RT Misc") endif() if(COMPILER_RT_INCLUDE_TESTS) Index: lib/tsan/dd/CMakeLists.txt =================================================================== --- lib/tsan/dd/CMakeLists.txt +++ lib/tsan/dd/CMakeLists.txt @@ -17,6 +17,8 @@ append_list_if(COMPILER_RT_HAS_LIBPTHREAD pthread DD_LINKLIBS) add_custom_target(dd) +set_target_properties(dd PROPERTIES FOLDER "Compiler-RT Misc") + # Deadlock detector is currently supported on 64-bit Linux only. if(CAN_TARGET_x86_64 AND UNIX AND NOT APPLE AND NOT ANDROID) set(arch "x86_64")