FindXShaderCompiler.cmake 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. # Find XShaderCompiler tool dependency
  2. #
  3. # This module defines
  4. # XShaderCompiler_INCLUDE_DIRS
  5. # XShaderCompiler_LIBRARIES
  6. # XShaderCompiler_FOUND
  7. set(XShaderCompiler_INSTALL_DIR ${PROJECT_SOURCE_DIR}/../Dependencies/XShaderCompiler CACHE PATH "")
  8. set(XShaderCompiler_SOURCE_DIR ${PROJECT_SOURCE_DIR}/External/XShaderCompiler)
  9. set(XShaderCompiler_BUILD_DIR ${PROJECT_SOURCE_DIR}/../Dependencies/Build/XShaderCompiler)
  10. set(XShaderCompiler_INCLUDE_SEARCH_DIRS
  11. "${XShaderCompiler_INSTALL_DIR}/include"
  12. "${XShaderCompiler_SOURCE_DIR}/inc")
  13. if(BS_64BIT)
  14. list(APPEND XShaderCompiler_LIBRARY_RELEASE_SEARCH_DIRS "${XShaderCompiler_INSTALL_DIR}/lib/x64/Release")
  15. list(APPEND XShaderCompiler_LIBRARY_DEBUG_SEARCH_DIRS "${XShaderCompiler_INSTALL_DIR}/lib/x64/Debug")
  16. else()
  17. list(APPEND XShaderCompiler_LIBRARY_RELEASE_SEARCH_DIRS "${XShaderCompiler_INSTALL_DIR}/lib/x86/Release")
  18. list(APPEND XShaderCompiler_LIBRARY_DEBUG_SEARCH_DIRS "${XShaderCompiler_INSTALL_DIR}/lib/x86/Debug")
  19. endif()
  20. list(APPEND XShaderCompiler_LIBRARY_RELEASE_SEARCH_DIRS "${XShaderCompiler_BUILD_DIR}/Release/install")
  21. list(APPEND XShaderCompiler_LIBRARY_DEBUG_SEARCH_DIRS "${XShaderCompiler_BUILD_DIR}/Debug/install")
  22. message(STATUS "Looking for XShaderCompiler installation...")
  23. find_path(XShaderCompiler_INCLUDE_DIR Xsc/Xsc.h PATHS ${XShaderCompiler_INCLUDE_SEARCH_DIRS})
  24. find_library(XShaderCompiler_LIBRARY_RELEASE NAMES xsc_core PATHS ${XShaderCompiler_LIBRARY_RELEASE_SEARCH_DIRS})
  25. find_library(XShaderCompiler_LIBRARY_DEBUG NAMES xsc_core PATHS ${XShaderCompiler_LIBRARY_DEBUG_SEARCH_DIRS})
  26. if(XShaderCompiler_INCLUDE_DIR AND XShaderCompiler_LIBRARY_DEBUG AND XShaderCompiler_LIBRARY_RELEASE)
  27. set(XShaderCompiler_FOUND TRUE)
  28. endif()
  29. if(NOT XShaderCompiler_FOUND)
  30. if(XShaderCompiler_FIND_REQUIRED)
  31. message(FATAL_ERROR "Cannot find XShaderCompiler installation. Try modifying the XShaderCompiler_INSTALL_DIR path.")
  32. elseif(NOT XShaderCompiler_FIND_QUIETLY)
  33. message(WARNING "Cannot find XShaderCompiler installation. Try modifying the XShaderCompiler_INSTALL_DIR path.")
  34. endif()
  35. else()
  36. message(STATUS "...XShaderCompiler OK.")
  37. endif()
  38. if(XShaderCompiler)
  39. add_library(XShaderCompiler STATIC IMPORTED)
  40. set_target_properties(XShaderCompiler PROPERTIES IMPORTED_LOCATION_DEBUG "${XShaderCompiler_LIBRARY_DEBUG}")
  41. set_target_properties(XShaderCompiler PROPERTIES IMPORTED_LOCATION_OPTIMIZEDDEBUG "${XShaderCompiler_LIBRARY_DEBUG}")
  42. set_target_properties(XShaderCompiler PROPERTIES IMPORTED_LOCATION_RELEASE "${XShaderCompiler_LIBRARY_RELEASE}")
  43. endif()
  44. mark_as_advanced(
  45. XShaderCompiler_INSTALL_DIR
  46. XShaderCompiler_INCLUDE_DIR
  47. XShaderCompiler_LIBRARY_RELEASE
  48. XShaderCompiler_LIBRARY_DEBUG)
  49. set(XShaderCompiler_INCLUDE_DIRS ${XShaderCompiler_INCLUDE_DIR})
  50. set(XShaderCompiler_LIBRARIES XShaderCompiler)