Findglslang.cmake 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. # Find glslang
  2. #
  3. # This module defines
  4. # glslang_INCLUDE_DIRS
  5. # glslang_LIBRARIES
  6. # glslang_FOUND
  7. set(glslang_INSTALL_DIRS ${PROJECT_SOURCE_DIR}/../Dependencies/glslang CACHE PATH "")
  8. set(glslang_INCLUDE_SEARCH_DIRS "${glslang_INSTALL_DIRS}/include")
  9. if(BS_64BIT)
  10. set(glslang_LIBRARY_SEARCH_DIRS "${glslang_INSTALL_DIRS}/lib/x64")
  11. else()
  12. set(glslang_LIBRARY_SEARCH_DIRS "${glslang_INSTALL_DIRS}/lib/x86")
  13. endif()
  14. message(STATUS "Looking for glslang installation...")
  15. find_path(glslang_INCLUDE_DIR glslang/Public/ShaderLang.h PATHS ${glslang_INCLUDE_SEARCH_DIRS})
  16. find_library(glslang_LIBRARY_OPTIMIZED NAMES glslang PATHS ${glslang_LIBRARY_SEARCH_DIRS})
  17. find_library(glslangHLSL_LIBRARY_OPTIMIZED NAMES HLSL PATHS ${glslang_LIBRARY_SEARCH_DIRS})
  18. find_library(glslangOSDependent_LIBRARY_OPTIMIZED NAMES OSDependent PATHS ${glslang_LIBRARY_SEARCH_DIRS})
  19. find_library(glslangOGLCompiler_LIBRARY_OPTIMIZED NAMES OGLCompiler PATHS ${glslang_LIBRARY_SEARCH_DIRS})
  20. find_library(glslangSPIRV_LIBRARY_OPTIMIZED NAMES SPIRV PATHS ${glslang_LIBRARY_SEARCH_DIRS})
  21. find_library(glslang_LIBRARY_DEBUG NAMES glslangd glslang PATHS ${glslang_LIBRARY_SEARCH_DIRS})
  22. find_library(glslangHLSL_LIBRARY_DEBUG NAMES HLSLd HLSL PATHS ${glslang_LIBRARY_SEARCH_DIRS})
  23. find_library(glslangOSDependent_LIBRARY_DEBUG NAMES OSDependentd OSDependent PATHS ${glslang_LIBRARY_SEARCH_DIRS})
  24. find_library(glslangOGLCompiler_LIBRARY_DEBUG NAMES OGLCompilerd OGLCompiler PATHS ${glslang_LIBRARY_SEARCH_DIRS})
  25. find_library(glslangSPIRV_LIBRARY_DEBUG NAMES SPIRVd PATHS ${glslang_LIBRARY_SEARCH_DIRS})
  26. if(glslang_INCLUDE_DIR AND
  27. glslang_LIBRARY_OPTIMIZED AND glslang_LIBRARY_DEBUG AND
  28. glslangHLSL_LIBRARY_OPTIMIZED AND glslangHLSL_LIBRARY_DEBUG AND
  29. glslangOSDependent_LIBRARY_OPTIMIZED AND glslangOSDependent_LIBRARY_DEBUG AND
  30. glslangOGLCompiler_LIBRARY_OPTIMIZED AND glslangOGLCompiler_LIBRARY_DEBUG AND
  31. glslangSPIRV_LIBRARY_OPTIMIZED AND glslangSPIRV_LIBRARY_DEBUG
  32. )
  33. set(glslang_FOUND TRUE)
  34. endif()
  35. if(NOT glslang_FOUND)
  36. if(glslang_FIND_REQUIRED)
  37. message(FATAL_ERROR "Cannot find glslang installation. Try modifying the glslang_INSTALL_DIRS path.")
  38. else()
  39. message(WARNING "Cannot find glslang installation. Try modifying the glslang_INSTALL_DIRS path.")
  40. endif()
  41. else()
  42. message(STATUS "...glslang OK.")
  43. endif()
  44. if(glslang_FOUND)
  45. add_library(glslang STATIC IMPORTED)
  46. set_target_properties(glslang PROPERTIES IMPORTED_LOCATION_DEBUG "${glslang_LIBRARY_DEBUG}")
  47. set_target_properties(glslang PROPERTIES IMPORTED_LOCATION_OPTIMIZEDDEBUG "${glslang_LIBRARY_DEBUG}")
  48. set_target_properties(glslang PROPERTIES IMPORTED_LOCATION_RELEASE "${glslang_LIBRARY_OPTIMIZED}")
  49. add_library(glslangHLSL STATIC IMPORTED)
  50. set_target_properties(glslangHLSL PROPERTIES IMPORTED_LOCATION_DEBUG "${glslangHLSL_LIBRARY_DEBUG}")
  51. set_target_properties(glslangHLSL PROPERTIES IMPORTED_LOCATION_OPTIMIZEDDEBUG "${glslangHLSL_LIBRARY_DEBUG}")
  52. set_target_properties(glslangHLSL PROPERTIES IMPORTED_LOCATION_RELEASE "${glslangHLSL_LIBRARY_OPTIMIZED}")
  53. add_library(glslangOSDependent STATIC IMPORTED)
  54. set_target_properties(glslangOSDependent PROPERTIES IMPORTED_LOCATION_DEBUG "${glslangOSDependent_LIBRARY_DEBUG}")
  55. set_target_properties(glslangOSDependent PROPERTIES IMPORTED_LOCATION_OPTIMIZEDDEBUG "${glslangOSDependent_LIBRARY_DEBUG}")
  56. set_target_properties(glslangOSDependent PROPERTIES IMPORTED_LOCATION_RELEASE "${glslangOSDependent_LIBRARY_OPTIMIZED}")
  57. add_library(glslangOGLCompiler STATIC IMPORTED)
  58. set_target_properties(glslangOGLCompiler PROPERTIES IMPORTED_LOCATION_DEBUG "${glslangOGLCompiler_LIBRARY_DEBUG}")
  59. set_target_properties(glslangOGLCompiler PROPERTIES IMPORTED_LOCATION_OPTIMIZEDDEBUG "${glslangOGLCompiler_LIBRARY_DEBUG}")
  60. set_target_properties(glslangOGLCompiler PROPERTIES IMPORTED_LOCATION_RELEASE "${glslangOGLCompiler_LIBRARY_OPTIMIZED}")
  61. add_library(glslangSPIRV STATIC IMPORTED)
  62. set_target_properties(glslangSPIRV PROPERTIES IMPORTED_LOCATION_DEBUG "${glslangSPIRV_LIBRARY_DEBUG}")
  63. set_target_properties(glslangSPIRV PROPERTIES IMPORTED_LOCATION_OPTIMIZEDDEBUG "${glslangSPIRV_LIBRARY_DEBUG}")
  64. set_target_properties(glslangSPIRV PROPERTIES IMPORTED_LOCATION_RELEASE "${glslangSPIRV_LIBRARY_OPTIMIZED}")
  65. endif()
  66. mark_as_advanced(
  67. glslang_INSTALL_DIRS
  68. glslang_INCLUDE_DIR
  69. glslang_LIBRARY_OPTIMIZED
  70. glslangHLSL_LIBRARY_OPTIMIZED
  71. glslangOSDependent_LIBRARY_OPTIMIZED
  72. glslangSPIRV_LIBRARY_OPTIMIZED
  73. glslangOGLCompiler_LIBRARY_OPTIMIZED
  74. glslang_LIBRARY_DEBUG
  75. glslangHLSL_LIBRARY_DEBUG
  76. glslangOSDependent_LIBRARY_DEBUG
  77. glslangOGLCompiler_LIBRARY_DEBUG
  78. glslangSPIRV_LIBRARY_DEBUG)
  79. set(glslang_INCLUDE_DIRS ${glslang_INCLUDE_DIR})
  80. set(glslang_LIBRARIES glslang glslangHLSL glslangOSDependent glslangOGLCompiler glslangSPIRV)