[CMake] Folder structure for generated Xcode project to cover more targets

llvm-svn: 361799
GitOrigin-RevId: a3388e5f9e1f60a2d82b0cf3121e1dacdfd766b3
diff --git a/CMakeLists.txt b/CMakeLists.txt
index dc7e1a0..afcf6bb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -153,6 +153,7 @@
 
   add_custom_target(lldb-test-deps)
   add_dependencies(lldb-test-deps ${LLDB_TEST_DEPS})
+  set_target_properties(lldb-test-deps PROPERTIES FOLDER "lldb misc")
 
   add_subdirectory(test)
   add_subdirectory(unittests)
@@ -193,6 +194,7 @@
       set(readline_dep readline)
     endif()
     add_dependencies(finish_swig swig_wrapper liblldb lldb-argdumper ${readline_dep})
+    set_target_properties(finish_swig swig_wrapper PROPERTIES FOLDER "lldb misc")
 
     # Ensure we do the python post-build step when building lldb.
     add_dependencies(lldb finish_swig)
diff --git a/cmake/modules/AddLLDB.cmake b/cmake/modules/AddLLDB.cmake
index 3e82200..e35fc9e 100644
--- a/cmake/modules/AddLLDB.cmake
+++ b/cmake/modules/AddLLDB.cmake
@@ -100,7 +100,11 @@
   # Add in any extra C++ compilation flags for this library.
   target_compile_options(${name} PRIVATE ${PARAM_EXTRA_CXXFLAGS})
 
-  set_target_properties(${name} PROPERTIES FOLDER "lldb libraries")
+  if(PARAM_PLUGIN)
+    set_target_properties(${name} PROPERTIES FOLDER "lldb plugins")
+  else()
+    set_target_properties(${name} PROPERTIES FOLDER "lldb libraries")
+  endif()
 endfunction(add_lldb_library)
 
 function(add_lldb_executable name)
diff --git a/cmake/modules/LLDBConfig.cmake b/cmake/modules/LLDBConfig.cmake
index 6c5f036..23182fd 100644
--- a/cmake/modules/LLDBConfig.cmake
+++ b/cmake/modules/LLDBConfig.cmake
@@ -364,7 +364,7 @@
     )
 
   add_custom_target(lldb-headers)
-  set_target_properties(lldb-headers PROPERTIES FOLDER "Misc")
+  set_target_properties(lldb-headers PROPERTIES FOLDER "lldb misc")
 
   if (NOT CMAKE_CONFIGURATION_TYPES)
     add_llvm_install_targets(install-lldb-headers
diff --git a/cmake/modules/LLDBStandalone.cmake b/cmake/modules/LLDBStandalone.cmake
index 6accd66..604544a 100644
--- a/cmake/modules/LLDBStandalone.cmake
+++ b/cmake/modules/LLDBStandalone.cmake
@@ -88,6 +88,14 @@
   set(PACKAGE_VERSION "${LLVM_PACKAGE_VERSION}")
   set(LLVM_INCLUDE_TESTS ON CACHE INTERNAL "")
 
+  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)
+  endif()
+
+  set_target_properties(clang-tablegen-targets PROPERTIES FOLDER "lldb misc")
+  set_target_properties(intrinsics_gen PROPERTIES FOLDER "lldb misc")
+
   set(CMAKE_INCLUDE_CURRENT_DIR ON)
   include_directories(
     "${CMAKE_BINARY_DIR}/include"
diff --git a/lit/CMakeLists.txt b/lit/CMakeLists.txt
index 8e8d173..f7bb423 100644
--- a/lit/CMakeLists.txt
+++ b/lit/CMakeLists.txt
@@ -68,7 +68,7 @@
   DEPENDS ${LLDB_TEST_DEPS}
   )
 
-set_target_properties(check-lldb-lit PROPERTIES FOLDER "LLDB tests")
+set_target_properties(check-lldb-lit PROPERTIES FOLDER "lldb tests")
 
 # If we're building with an in-tree clang, then list clang as a dependency
 # to run tests.
diff --git a/source/API/CMakeLists.txt b/source/API/CMakeLists.txt
index bb17f76..8d2b7f0 100644
--- a/source/API/CMakeLists.txt
+++ b/source/API/CMakeLists.txt
@@ -144,6 +144,7 @@
     MESSAGE("-- Symbols (liblldb): exporting all symbols from the lldb and lldb_private namespaces")
     add_llvm_symbol_exports(liblldb ${CMAKE_CURRENT_SOURCE_DIR}/liblldb-private.exports)
   endif()
+  set_target_properties(liblldb_exports PROPERTIES FOLDER "lldb misc")
 endif()
 
 if ( CMAKE_SYSTEM_NAME MATCHES "Windows" )
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index ea9ba2e..037222e 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -110,13 +110,13 @@
   "--no-multiprocess;${LLDB_DOTEST_ARGS}"
   "Testing LLDB with args: ${LLDB_DOTEST_ARGS}"
   )
+set_target_properties(check-lldb-single PROPERTIES FOLDER "lldb misc")
 
 # If tests crash cause LLDB to crash, or things are otherwise unstable, or if machine-parsable
 # output is desired (i.e. in continuous integration contexts) check-lldb-single is a better target.
 add_custom_target(check-lldb)
-
-# Make check-lldb depend on all test dependencies.
 add_dependencies(check-lldb lldb-test-deps)
+set_target_properties(check-lldb PROPERTIES FOLDER "lldb misc")
 
 # If we're building with an in-tree clang, then list clang as a dependency
 # to run tests.
diff --git a/tools/debugserver/source/CMakeLists.txt b/tools/debugserver/source/CMakeLists.txt
index ad7a3af..2b8e737 100644
--- a/tools/debugserver/source/CMakeLists.txt
+++ b/tools/debugserver/source/CMakeLists.txt
@@ -236,6 +236,7 @@
     ${DEBUGSERVER_VERS_GENERATED_FILE})
 
   add_library(lldbDebugserverCommon ${lldbDebugserverCommonSources})
+  set_target_properties(lldbDebugserverCommon PROPERTIES FOLDER "lldb libraries/debugserver")
 
   target_link_libraries(lldbDebugserverCommon
                         INTERFACE ${COCOA_LIBRARY}
diff --git a/tools/debugserver/source/MacOSX/CMakeLists.txt b/tools/debugserver/source/MacOSX/CMakeLists.txt
index 28877d1..7ad4a06 100644
--- a/tools/debugserver/source/MacOSX/CMakeLists.txt
+++ b/tools/debugserver/source/MacOSX/CMakeLists.txt
@@ -21,3 +21,5 @@
 add_library(lldbDebugserverArchSupport
   ${SOURCES}
   )
+
+set_target_properties(lldbDebugserverArchSupport PROPERTIES FOLDER "lldb libraries/debugserver")
diff --git a/tools/debugserver/source/MacOSX/DarwinLog/CMakeLists.txt b/tools/debugserver/source/MacOSX/DarwinLog/CMakeLists.txt
index dffa357..71abb36 100644
--- a/tools/debugserver/source/MacOSX/DarwinLog/CMakeLists.txt
+++ b/tools/debugserver/source/MacOSX/DarwinLog/CMakeLists.txt
@@ -13,3 +13,5 @@
   LogMessage.cpp
   LogMessageOsLog.cpp
   )
+
+set_target_properties(lldbDebugserverDarwin_DarwinLog PROPERTIES FOLDER "lldb libraries/debugserver")
diff --git a/tools/driver/CMakeLists.txt b/tools/driver/CMakeLists.txt
index e6740d8..1f8c469 100644
--- a/tools/driver/CMakeLists.txt
+++ b/tools/driver/CMakeLists.txt
@@ -28,6 +28,8 @@
   ${tablegen_deps}
 )
 
+set_target_properties(LLDBOptionsTableGen PROPERTIES FOLDER "lldb misc")
+
 if(LLDB_BUILD_FRAMEWORK)
   lldb_setup_framework_rpaths_in_tool(lldb)
 endif()
diff --git a/unittests/CMakeLists.txt b/unittests/CMakeLists.txt
index 4e4eee6..311f47b 100644
--- a/unittests/CMakeLists.txt
+++ b/unittests/CMakeLists.txt
@@ -1,5 +1,5 @@
 add_custom_target(LLDBUnitTests)
-set_target_properties(LLDBUnitTests PROPERTIES FOLDER "LLDB tests")
+set_target_properties(LLDBUnitTests PROPERTIES FOLDER "lldb tests")
 
 include_directories(${LLDB_SOURCE_ROOT})
 include_directories(${LLDB_PROJECT_ROOT}/unittests)
diff --git a/unittests/tools/lldb-mi/utils/CMakeLists.txt b/unittests/tools/lldb-mi/utils/CMakeLists.txt
index d6fb56a..909c005 100644
--- a/unittests/tools/lldb-mi/utils/CMakeLists.txt
+++ b/unittests/tools/lldb-mi/utils/CMakeLists.txt
@@ -10,3 +10,4 @@
   )
 
 target_sources(LLDBMiUtilTests PRIVATE $<TARGET_OBJECTS:lldb-mi-utils>)
+set_target_properties(lldb-mi-utils PROPERTIES FOLDER "lldb libraries")
diff --git a/unittests/tools/lldb-server/CMakeLists.txt b/unittests/tools/lldb-server/CMakeLists.txt
index 60616c9..3bae69b 100644
--- a/unittests/tools/lldb-server/CMakeLists.txt
+++ b/unittests/tools/lldb-server/CMakeLists.txt
@@ -7,6 +7,7 @@
   set_output_directory(${test_name} BINARY_DIR ${outdir} LIBRARY_DIR ${outdir})
   list(APPEND ALL_LLDB_TEST_EXECUTABLES ${test_name})
   set(ALL_LLDB_TEST_EXECUTABLES ${ALL_LLDB_TEST_EXECUTABLES} PARENT_SCOPE)
+  set_target_properties(${test_name} PROPERTIES FOLDER "lldb tests")
 endfunction()
 
 add_lldb_test_executable(thread_inferior inferior/thread_inferior.cpp)
diff --git a/utils/lit-cpuid/CMakeLists.txt b/utils/lit-cpuid/CMakeLists.txt
index b3af817..bc9d313 100644
--- a/utils/lit-cpuid/CMakeLists.txt
+++ b/utils/lit-cpuid/CMakeLists.txt
@@ -3,3 +3,4 @@
   )
 
 target_link_libraries(lit-cpuid PRIVATE LLVMSupport)
+set_target_properties(lit-cpuid PROPERTIES FOLDER "lldb utils")
diff --git a/utils/lldb-dotest/CMakeLists.txt b/utils/lldb-dotest/CMakeLists.txt
index f1d85a4..d36d1a7 100644
--- a/utils/lldb-dotest/CMakeLists.txt
+++ b/utils/lldb-dotest/CMakeLists.txt
@@ -1,6 +1,7 @@
 # Make lldb-dotest a custom target.
 add_custom_target(lldb-dotest)
 add_dependencies(lldb-dotest ${LLDB_TEST_DEPS})
+set_target_properties(lldb-dotest PROPERTIES FOLDER "lldb utils")
 
 get_property(LLDB_DOTEST_ARGS GLOBAL PROPERTY LLDB_DOTEST_ARGS_PROPERTY)