1set(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 11set(SPVREMAP_SOURCES 12 SPVRemapper.cpp 13 doc.cpp) 14 15set(HEADERS 16 bitutils.h 17 spirv.hpp 18 GLSL.std.450.h 19 GLSL.ext.EXT.h 20 GLSL.ext.KHR.h 21 GlslangToSpv.h 22 hex_float.h 23 Logger.h 24 SpvBuilder.h 25 spvIR.h 26 doc.h 27 SpvTools.h 28 disassemble.h 29 GLSL.ext.AMD.h 30 GLSL.ext.NV.h 31 NonSemanticDebugPrintf.h) 32 33set(SPVREMAP_HEADERS 34 SPVRemapper.h 35 doc.h) 36 37add_library(SPIRV ${LIB_TYPE} ${SOURCES} ${HEADERS}) 38set_property(TARGET SPIRV PROPERTY FOLDER glslang) 39set_property(TARGET SPIRV PROPERTY POSITION_INDEPENDENT_CODE ON) 40target_include_directories(SPIRV PUBLIC 41 $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..> 42 $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>) 43 44if (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) 48endif() 49 50if(WIN32 AND BUILD_SHARED_LIBS) 51 set_target_properties(SPIRV PROPERTIES PREFIX "") 52 if (ENABLE_SPVREMAPPER) 53 set_target_properties(SPVRemapper PROPERTIES PREFIX "") 54 endif() 55endif() 56 57if(ENABLE_OPT) 58 target_include_directories(SPIRV 59 PRIVATE ${spirv-tools_SOURCE_DIR}/include 60 PRIVATE ${spirv-tools_SOURCE_DIR}/source 61 ) 62 target_link_libraries(SPIRV glslang SPIRV-Tools-opt) 63 target_include_directories(SPIRV PUBLIC 64 $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../External> 65 $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/External>) 66else() 67 target_link_libraries(SPIRV glslang) 68endif(ENABLE_OPT) 69 70if(WIN32) 71 source_group("Source" FILES ${SOURCES} ${HEADERS}) 72 source_group("Source" FILES ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS}) 73endif(WIN32) 74 75if(ENABLE_GLSLANG_INSTALL) 76 if(BUILD_SHARED_LIBS) 77 if (ENABLE_SPVREMAPPER) 78 install(TARGETS SPVRemapper EXPORT SPVRemapperTargets 79 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} 80 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) 81 endif() 82 install(TARGETS SPIRV EXPORT SPIRVTargets 83 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} 84 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} 85 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) 86 else() 87 if (ENABLE_SPVREMAPPER) 88 install(TARGETS SPVRemapper EXPORT SPVRemapperTargets 89 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) 90 endif() 91 install(TARGETS SPIRV EXPORT SPIRVTargets 92 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) 93 endif() 94 95 if (ENABLE_SPVREMAPPER) 96 install(EXPORT SPVRemapperTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) 97 endif() 98 99 install(EXPORT SPIRVTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) 100 101 install(FILES ${HEADERS} ${SPVREMAP_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/SPIRV/) 102 install(FILES ${HEADERS} ${SPVREMAP_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/glslang/SPIRV/) 103endif(ENABLE_GLSLANG_INSTALL) 104