CMakeLists.txt 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. set(SOURCES
  2. GlslangToSpv.cpp
  3. InReadableOrder.cpp
  4. Logger.cpp
  5. SpvBuilder.cpp
  6. SpvPostProcess.cpp
  7. doc.cpp
  8. SpvTools.cpp
  9. disassemble.cpp)
  10. set(SPVREMAP_SOURCES
  11. SPVRemapper.cpp
  12. doc.cpp)
  13. set(HEADERS
  14. bitutils.h
  15. spirv.hpp
  16. GLSL.std.450.h
  17. GLSL.ext.EXT.h
  18. GLSL.ext.KHR.h
  19. GlslangToSpv.h
  20. hex_float.h
  21. Logger.h
  22. SpvBuilder.h
  23. spvIR.h
  24. doc.h
  25. SpvTools.h
  26. disassemble.h)
  27. set(SPVREMAP_HEADERS
  28. SPVRemapper.h
  29. doc.h)
  30. if(ENABLE_AMD_EXTENSIONS)
  31. list(APPEND
  32. HEADERS
  33. GLSL.ext.AMD.h)
  34. endif(ENABLE_AMD_EXTENSIONS)
  35. if(ENABLE_NV_EXTENSIONS)
  36. list(APPEND
  37. HEADERS
  38. GLSL.ext.NV.h)
  39. endif(ENABLE_NV_EXTENSIONS)
  40. add_library(SPIRV ${LIB_TYPE} ${SOURCES} ${HEADERS})
  41. set_property(TARGET SPIRV PROPERTY FOLDER glslang)
  42. set_property(TARGET SPIRV PROPERTY POSITION_INDEPENDENT_CODE ON)
  43. target_include_directories(SPIRV PUBLIC ..)
  44. if (ENABLE_SPVREMAPPER)
  45. add_library(SPVRemapper ${LIB_TYPE} ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS})
  46. set_property(TARGET SPVRemapper PROPERTY FOLDER glslang)
  47. set_property(TARGET SPVRemapper PROPERTY POSITION_INDEPENDENT_CODE ON)
  48. endif()
  49. if(WIN32 AND BUILD_SHARED_LIBS)
  50. set_target_properties(SPIRV PROPERTIES PREFIX "")
  51. if (ENABLE_SPVREMAPPER)
  52. set_target_properties(SPVRemapper PROPERTIES PREFIX "")
  53. endif()
  54. endif()
  55. if(ENABLE_OPT)
  56. target_include_directories(SPIRV
  57. PRIVATE ${spirv-tools_SOURCE_DIR}/include
  58. PRIVATE ${spirv-tools_SOURCE_DIR}/source
  59. )
  60. target_link_libraries(SPIRV glslang SPIRV-Tools-opt)
  61. target_include_directories(SPIRV PUBLIC ../External)
  62. else()
  63. target_link_libraries(SPIRV glslang)
  64. endif(ENABLE_OPT)
  65. if(WIN32)
  66. source_group("Source" FILES ${SOURCES} ${HEADERS})
  67. source_group("Source" FILES ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS})
  68. endif(WIN32)
  69. if(ENABLE_GLSLANG_INSTALL)
  70. if(BUILD_SHARED_LIBS)
  71. if (ENABLE_SPVREMAPPER)
  72. install(TARGETS SPVRemapper
  73. ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
  74. LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
  75. endif()
  76. install(TARGETS SPIRV
  77. ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
  78. LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
  79. else()
  80. if (ENABLE_SPVREMAPPER)
  81. install(TARGETS SPVRemapper
  82. ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
  83. endif()
  84. install(TARGETS SPIRV
  85. ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
  86. endif()
  87. install(FILES ${HEADERS} ${SPVREMAP_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/SPIRV/)
  88. endif(ENABLE_GLSLANG_INSTALL)