| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- # Filename: FindSPIRVCross.cmake
- # Authors: rdb (9 Nov, 2024)
- #
- # Usage:
- # find_package(SPIRV-Cross [REQUIRED] [QUIET])
- #
- # Once done this will define:
- # SPIRV_CROSS_FOUND - system has SPIRV-Cross
- # SPIRV_CROSS_INCLUDE_DIR - the path to the location of the spirv_cross directory
- # SPIRV_CROSS_LIBRARIES - the libraries to link against for SPIRV-Cross
- #
- find_path(SPIRV_CROSS_INCLUDE_DIR
- NAMES "spirv_cross/spirv_cross.hpp")
- find_library(SPIRV_CROSS_CORE_LIBRARY
- NAMES "spirv-cross-core")
- find_library(SPIRV_CROSS_GLSL_LIBRARY
- NAMES "spirv-cross-glsl")
- find_library(SPIRV_CROSS_HLSL_LIBRARY
- NAMES "spirv-cross-hlsl")
- include(FindPackageHandleStandardArgs)
- find_package_handle_standard_args(SPIRV-Cross DEFAULT_MSG SPIRV_CROSS_INCLUDE_DIR SPIRV_CROSS_LIBRARIES)
- mark_as_advanced(SPIRV_CROSS_INCLUDE_DIR SPIRV_CROSS_LIBRARIES)
- if(SPIRV_CROSS_CORE_LIBRARY)
- set(SPIRV_CROSS_FOUND ON)
- add_library(SPIRV-Cross::Core UNKNOWN IMPORTED)
- set_target_properties(SPIRV-Cross::Core PROPERTIES
- IMPORTED_LOCATION "${SPIRV_CROSS_CORE_LIBRARY}"
- INTERFACE_INCLUDE_DIRECTORIES "${SPIRV_CROSS_INCLUDE_DIR}")
- endif()
- if(SPIRV_CROSS_GLSL_LIBRARY)
- add_library(SPIRV-Cross::GLSL UNKNOWN IMPORTED)
- target_link_libraries(SPIRV-Cross::GLSL INTERFACE SPIRV-Cross::Core)
- set_target_properties(SPIRV-Cross::GLSL PROPERTIES
- IMPORTED_LOCATION "${SPIRV_CROSS_GLSL_LIBRARY}"
- INTERFACE_INCLUDE_DIRECTORIES "${SPIRV_CROSS_INCLUDE_DIR}")
- endif()
- if(SPIRV_CROSS_HLSL_LIBRARY)
- add_library(SPIRV-Cross::HLSL UNKNOWN IMPORTED)
- target_link_libraries(SPIRV-Cross::HLSL INTERFACE SPIRV-Cross::GLSL)
- set_target_properties(SPIRV-Cross::HLSL PROPERTIES
- IMPORTED_LOCATION "${SPIRV_CROSS_HLSL_LIBRARY}"
- INTERFACE_INCLUDE_DIRECTORIES "${SPIRV_CROSS_INCLUDE_DIR}")
- endif()
|