Group targets into folders
authorLei Zhang <antiagainst@google.com>
Wed, 5 Apr 2017 21:32:39 +0000 (17:32 -0400)
committerLei Zhang <antiagainst@gmail.com>
Thu, 6 Apr 2017 13:44:33 +0000 (09:44 -0400)
This plays nicer with IDEs.

CMakeLists.txt
examples/CMakeLists.txt
examples/cpp-interface/CMakeLists.txt
external/CMakeLists.txt
source/CMakeLists.txt
source/opt/CMakeLists.txt
test/CMakeLists.txt
tools/CMakeLists.txt

index 0cb338a..b5250d4 100644 (file)
@@ -19,6 +19,7 @@ if (POLICY CMP0054)
   # https://cmake.org/cmake/help/v3.1/policy/CMP0054.html
   cmake_policy(SET CMP0054 NEW)
 endif()
+set_property(GLOBAL PROPERTY USE_FOLDERS ON)
 
 project(spirv-tools)
 enable_testing()
index 1dfaf87..fd627cb 100644 (file)
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+# Add a SPIR-V Tools example. Signature:
+#   add_spvtools_example(
+#     TARGET target_name
+#     SRCS   src_file1.cpp src_file2.cpp
+#     LIBS   lib_target1 lib_target2
+#   )
+function(add_spvtools_example)
+  if (NOT ${SPIRV_SKIP_EXECUTABLES})
+    set(one_value_args TARGET)
+    set(multi_value_args SRCS LIBS)
+    cmake_parse_arguments(
+        ARG "" "${one_value_args}" "${multi_value_args}" ${ARGN})
+
+    add_executable(${ARG_TARGET} ${ARG_SRCS})
+    spvtools_default_compile_options(${ARG_TARGET})
+    target_link_libraries(${ARG_TARGET} PRIVATE ${ARG_LIBS})
+    set_property(TARGET ${ARG_TARGET} PROPERTY FOLDER "SPIRV-Tools examples")
+  endif()
+endfunction()
+
 add_subdirectory(cpp-interface)
index 14f9937..d050b07 100644 (file)
@@ -12,8 +12,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-if (NOT ${SPIRV_SKIP_EXECUTABLES})
-  add_executable(spirv-tools-cpp-example main.cpp)
-  spvtools_default_compile_options(spirv-tools-cpp-example)
-  target_link_libraries(spirv-tools-cpp-example PRIVATE SPIRV-Tools-opt)
-endif()
+add_spvtools_example(
+  TARGET spirv-tools-cpp-example
+  SRCS main.cpp
+  LIBS SPIRV-Tools-opt
+)
\ No newline at end of file
index 182724e..ba5207f 100644 (file)
@@ -43,4 +43,15 @@ if (NOT ${SPIRV_SKIP_EXECUTABLES})
       add_subdirectory(${GMOCK_DIR})
     endif()
   endif()
+  if (TARGET gmock)
+    set(GTEST_TARGETS
+      gtest
+      gtest_main
+      gmock
+      gmock_main
+    )
+    foreach(target ${GTEST_TARGETS})
+      set_property(TARGET ${target} PROPERTY FOLDER GoogleTest)
+    endforeach()
+  endif()
 endif()
index 1709bbf..eaff213 100644 (file)
@@ -106,6 +106,7 @@ macro(spvtools_vendor_tables VENDOR_TABLE)
     COMMENT "Generate extended instruction tables for ${VENDOR_TABLE}.")
   list(APPEND EXTINST_CPP_DEPENDS ${INSTS_FILE})
   add_custom_target(spirv-tools-${VENDOR_TABLE} DEPENDS ${INSTS_FILE})
+  set_property(TARGET spirv-tools-${VENDOR_TABLE} PROPERTY FOLDER "SPIRV-Tools build")
 endmacro(spvtools_vendor_tables)
 
 spvtools_core_tables("1.0")
@@ -117,7 +118,7 @@ spvtools_vendor_tables("spv-amd-gcn-shader")
 
 spvtools_vimsyntax("1.1" "1.0")
 add_custom_target(spirv-tools-vimsyntax DEPENDS ${VIMSYNTAX_FILE})
-
+set_property(TARGET spirv-tools-vimsyntax PROPERTY FOLDER "SPIRV-Tools utilities")
 
 # Extract the list of known generators from the SPIR-V XML registry file.
 set(GENERATOR_INC_FILE ${spirv-tools_BINARY_DIR}/generators.inc)
@@ -181,6 +182,7 @@ add_custom_command(OUTPUT ${SPIRV_TOOLS_BUILD_VERSION_INC}
 # This is not required for any dependence chain.
 add_custom_target(spirv-tools-build-version
    DEPENDS ${SPIRV_TOOLS_BUILD_VERSION_INC})
+set_property(TARGET spirv-tools-build-version PROPERTY FOLDER "SPIRV-Tools build")
 
 add_subdirectory(opt)
 
@@ -276,6 +278,7 @@ target_include_directories(${SPIRV_TOOLS}
   PRIVATE ${spirv-tools_BINARY_DIR}
   PRIVATE ${SPIRV_HEADER_INCLUDE_DIR}
   )
+set_property(TARGET ${SPIRV_TOOLS} PROPERTY FOLDER "SPIRV-Tools libraries")
 
 install(TARGETS ${SPIRV_TOOLS}
   RUNTIME DESTINATION bin
index 55949c8..917086c 100644 (file)
@@ -66,6 +66,8 @@ target_include_directories(SPIRV-Tools-opt
 target_link_libraries(SPIRV-Tools-opt
   PUBLIC ${SPIRV_TOOLS})
 
+set_property(TARGET SPIRV-Tools-opt PROPERTY FOLDER "SPIRV-Tools libraries")
+
 install(TARGETS SPIRV-Tools-opt
   RUNTIME DESTINATION bin
   LIBRARY DESTINATION lib
index 79c2684..98cc771 100644 (file)
@@ -59,6 +59,7 @@ function(add_spvtools_unittest)
     target_link_libraries(${target} PRIVATE ${ARG_LIBS})
     target_link_libraries(${target} PRIVATE gmock_main)
     add_test(NAME spirv-tools-${target} COMMAND ${target})
+    set_property(TARGET ${target} PROPERTY FOLDER "SPIRV-Tools tests")
   endif()
 endfunction()
 
index ac680f8..535f4fe 100644 (file)
@@ -33,7 +33,8 @@ function(add_spvtools_tool)
   target_include_directories(${ARG_TARGET} PRIVATE
     ${spirv-tools_SOURCE_DIR}
     ${spirv-tools_BINARY_DIR}
-)
+  )
+  set_property(TARGET ${ARG_TARGET} PROPERTY FOLDER "SPIRV-Tools executables")
 endfunction()
 
 if (NOT ${SPIRV_SKIP_EXECUTABLES})