Findglslang.cmake 3.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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 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(glslang_LIBRARY_DEBUG NAMES glslangd glslang PATHS ${glslang_LIBRARY_SEARCH_DIRS})
  21. find_library(glslangHLSL_LIBRARY_DEBUG NAMES HLSLd HLSL PATHS ${glslang_LIBRARY_SEARCH_DIRS})
  22. find_library(glslangOSDependent_LIBRARY_DEBUG NAMES OSDependentd OSDependent PATHS ${glslang_LIBRARY_SEARCH_DIRS})
  23. find_library(glslangOGLCompiler_LIBRARY_DEBUG NAMES OGLCompilerd OGLCompiler PATHS ${glslang_LIBRARY_SEARCH_DIRS})
  24. if(glslang_INCLUDE_DIR AND
  25. glslang_LIBRARY_OPTIMIZED AND glslang_LIBRARY_DEBUG AND
  26. glslangHLSL_LIBRARY_OPTIMIZED AND glslangHLSL_LIBRARY_DEBUG AND
  27. glslangOSDependent_LIBRARY_OPTIMIZED AND glslangOSDependent_LIBRARY_DEBUG AND
  28. glslangOGLCompiler_LIBRARY_OPTIMIZED AND glslangOGLCompiler_LIBRARY_DEBUG
  29. )
  30. set(glslang_FOUND TRUE)
  31. endif()
  32. if(NOT glslang_FOUND)
  33. if(glslang_FIND_REQUIRED)
  34. message(FATAL_ERROR "Cannot find glslang installation. Try modifying the glslang_INSTALL_DIRS path.")
  35. else()
  36. message(WARNING "Cannot find glslang installation. Try modifying the glslang_INSTALL_DIRS path.")
  37. endif()
  38. else()
  39. message(STATUS "...glslang OK.")
  40. endif()
  41. if(glslang_FOUND)
  42. add_library(glslang STATIC IMPORTED)
  43. set_target_properties(glslang PROPERTIES IMPORTED_LOCATION_DEBUG "${glslang_LIBRARY_DEBUG}")
  44. set_target_properties(glslang PROPERTIES IMPORTED_LOCATION_OPTIMIZEDDEBUG "${glslang_LIBRARY_DEBUG}")
  45. set_target_properties(glslang PROPERTIES IMPORTED_LOCATION_RELEASE "${glslang_LIBRARY_OPTIMIZED}")
  46. add_library(glslangHLSL STATIC IMPORTED)
  47. set_target_properties(glslangHLSL PROPERTIES IMPORTED_LOCATION_DEBUG "${glslangHLSL_LIBRARY_DEBUG}")
  48. set_target_properties(glslangHLSL PROPERTIES IMPORTED_LOCATION_OPTIMIZEDDEBUG "${glslangHLSL_LIBRARY_DEBUG}")
  49. set_target_properties(glslangHLSL PROPERTIES IMPORTED_LOCATION_RELEASE "${glslangHLSL_LIBRARY_OPTIMIZED}")
  50. add_library(glslangOSDependent STATIC IMPORTED)
  51. set_target_properties(glslangOSDependent PROPERTIES IMPORTED_LOCATION_DEBUG "${glslangOSDependent_LIBRARY_DEBUG}")
  52. set_target_properties(glslangOSDependent PROPERTIES IMPORTED_LOCATION_OPTIMIZEDDEBUG "${glslangOSDependent_LIBRARY_DEBUG}")
  53. set_target_properties(glslangOSDependent PROPERTIES IMPORTED_LOCATION_RELEASE "${glslangOSDependent_LIBRARY_OPTIMIZED}")
  54. add_library(glslangOGLCompiler STATIC IMPORTED)
  55. set_target_properties(glslangOGLCompiler PROPERTIES IMPORTED_LOCATION_DEBUG "${glslangOGLCompiler_LIBRARY_DEBUG}")
  56. set_target_properties(glslangOGLCompiler PROPERTIES IMPORTED_LOCATION_OPTIMIZEDDEBUG "${glslangOGLCompiler_LIBRARY_DEBUG}")
  57. set_target_properties(glslangOGLCompiler PROPERTIES IMPORTED_LOCATION_RELEASE "${glslangOGLCompiler_LIBRARY_OPTIMIZED}")
  58. endif()
  59. mark_as_advanced(
  60. glslang_INSTALL_DIRS
  61. glslang_INCLUDE_DIR
  62. glslang_LIBRARY_OPTIMIZED
  63. glslangHLSL_LIBRARY_OPTIMIZED
  64. glslangOSDependent_LIBRARY_OPTIMIZED
  65. glslangOGLCompiler_LIBRARY_OPTIMIZED
  66. glslang_LIBRARY_DEBUG
  67. glslangHLSL_LIBRARY_DEBUG
  68. glslangOSDependent_LIBRARY_DEBUG
  69. glslangOGLCompiler_LIBRARY_DEBUG)
  70. set(glslang_INCLUDE_DIRS ${glslang_INCLUDE_DIR})
  71. set(glslang_LIBRARIES glslang glslangHLSL glslangOSDependent glslangOGLCompiler)