• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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