FindSPIRV-Cross.cmake 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. # Filename: FindSPIRVCross.cmake
  2. # Authors: rdb (9 Nov, 2024)
  3. #
  4. # Usage:
  5. # find_package(SPIRV-Cross [REQUIRED] [QUIET])
  6. #
  7. # Once done this will define:
  8. # SPIRV_CROSS_FOUND - system has SPIRV-Cross
  9. # SPIRV_CROSS_INCLUDE_DIR - the path to the location of the spirv_cross directory
  10. # SPIRV_CROSS_LIBRARIES - the libraries to link against for SPIRV-Cross
  11. #
  12. find_path(SPIRV_CROSS_INCLUDE_DIR
  13. NAMES "spirv_cross/spirv_cross.hpp")
  14. find_library(SPIRV_CROSS_CORE_LIBRARY
  15. NAMES "spirv-cross-core")
  16. find_library(SPIRV_CROSS_GLSL_LIBRARY
  17. NAMES "spirv-cross-glsl")
  18. find_library(SPIRV_CROSS_HLSL_LIBRARY
  19. NAMES "spirv-cross-hlsl")
  20. include(FindPackageHandleStandardArgs)
  21. find_package_handle_standard_args(SPIRV-Cross DEFAULT_MSG SPIRV_CROSS_INCLUDE_DIR SPIRV_CROSS_LIBRARIES)
  22. mark_as_advanced(SPIRV_CROSS_INCLUDE_DIR SPIRV_CROSS_LIBRARIES)
  23. if(SPIRV_CROSS_CORE_LIBRARY)
  24. set(SPIRV_CROSS_FOUND ON)
  25. add_library(SPIRV-Cross::Core UNKNOWN IMPORTED)
  26. set_target_properties(SPIRV-Cross::Core PROPERTIES
  27. IMPORTED_LOCATION "${SPIRV_CROSS_CORE_LIBRARY}"
  28. INTERFACE_INCLUDE_DIRECTORIES "${SPIRV_CROSS_INCLUDE_DIR}")
  29. endif()
  30. if(SPIRV_CROSS_GLSL_LIBRARY)
  31. add_library(SPIRV-Cross::GLSL UNKNOWN IMPORTED)
  32. target_link_libraries(SPIRV-Cross::GLSL INTERFACE SPIRV-Cross::Core)
  33. set_target_properties(SPIRV-Cross::GLSL PROPERTIES
  34. IMPORTED_LOCATION "${SPIRV_CROSS_GLSL_LIBRARY}"
  35. INTERFACE_INCLUDE_DIRECTORIES "${SPIRV_CROSS_INCLUDE_DIR}")
  36. endif()
  37. if(SPIRV_CROSS_HLSL_LIBRARY)
  38. add_library(SPIRV-Cross::HLSL UNKNOWN IMPORTED)
  39. target_link_libraries(SPIRV-Cross::HLSL INTERFACE SPIRV-Cross::GLSL)
  40. set_target_properties(SPIRV-Cross::HLSL PROPERTIES
  41. IMPORTED_LOCATION "${SPIRV_CROSS_HLSL_LIBRARY}"
  42. INTERFACE_INCLUDE_DIRECTORIES "${SPIRV_CROSS_INCLUDE_DIR}")
  43. endif()