This plays nicer with IDEs.
# 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()
# 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)
# 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
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()
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")
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)
# 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)
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
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
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()
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})