blob: 3ddf6f1708eafe2a9eacf81a16b08bc031e268d9 [file] [log] [blame]
John Kessenich140f3df2015-06-26 16:58:36 -06001set(SOURCES
2 GlslangToSpv.cpp
Dejan Mircevski44bfb0d2016-01-18 16:18:37 -05003 InReadableOrder.cpp
Lei Zhang17535f72016-05-04 15:55:59 -04004 Logger.cpp
John Kessenich140f3df2015-06-26 16:58:36 -06005 SpvBuilder.cpp
John Kessenichf04c51b2018-08-03 15:56:12 -06006 SpvPostProcess.cpp
John Kessenich140f3df2015-06-26 16:58:36 -06007 doc.cpp
John Kessenich717c80a2018-08-23 15:17:10 -06008 SpvTools.cpp
John Kessenich140f3df2015-06-26 16:58:36 -06009 disassemble.cpp)
10
steve-lunarga8456412016-08-17 16:18:06 -060011set(SPVREMAP_SOURCES
12 SPVRemapper.cpp
13 doc.cpp)
14
John Kessenich140f3df2015-06-26 16:58:36 -060015set(HEADERS
Rex Xuc9e3c3c2016-07-29 16:00:05 +080016 bitutils.h
John Kessenich5e4b1242015-08-06 22:53:06 -060017 spirv.hpp
18 GLSL.std.450.h
Rex Xu81f4c032018-03-02 17:42:37 +080019 GLSL.ext.EXT.h
Rex Xu51596642016-09-21 18:56:12 +080020 GLSL.ext.KHR.h
John Kessenich140f3df2015-06-26 16:58:36 -060021 GlslangToSpv.h
Rex Xuc9e3c3c2016-07-29 16:00:05 +080022 hex_float.h
Lei Zhang17535f72016-05-04 15:55:59 -040023 Logger.h
John Kessenich140f3df2015-06-26 16:58:36 -060024 SpvBuilder.h
John Kessenich140f3df2015-06-26 16:58:36 -060025 spvIR.h
26 doc.h
John Kessenich717c80a2018-08-23 15:17:10 -060027 SpvTools.h
John Kessenich140f3df2015-06-26 16:58:36 -060028 disassemble.h)
29
steve-lunarga8456412016-08-17 16:18:06 -060030set(SPVREMAP_HEADERS
31 SPVRemapper.h
32 doc.h)
33
Rex Xu9d93a232016-05-05 12:30:44 +080034if(ENABLE_AMD_EXTENSIONS)
Rex Xuc9e3c3c2016-07-29 16:00:05 +080035 list(APPEND
36 HEADERS
37 GLSL.ext.AMD.h)
Rex Xu9d93a232016-05-05 12:30:44 +080038endif(ENABLE_AMD_EXTENSIONS)
39
chaoc0ad6a4e2016-12-19 16:29:34 -080040if(ENABLE_NV_EXTENSIONS)
Rex Xuc708f982017-01-24 14:24:21 +080041 list(APPEND
42 HEADERS
43 GLSL.ext.NV.h)
chaoc0ad6a4e2016-12-19 16:29:34 -080044endif(ENABLE_NV_EXTENSIONS)
45
Matthew Albrecht6c5f6492018-03-30 09:32:03 -050046add_library(SPIRV ${LIB_TYPE} ${SOURCES} ${HEADERS})
Rohith Chandran62060912017-07-04 10:53:45 -040047set_property(TARGET SPIRV PROPERTY FOLDER glslang)
48set_property(TARGET SPIRV PROPERTY POSITION_INDEPENDENT_CODE ON)
Michael Maltesea895f372017-05-02 16:16:06 -070049target_include_directories(SPIRV PUBLIC ..)
John Kessenich140f3df2015-06-26 16:58:36 -060050
Matthew Albrecht857f25c2018-07-07 16:53:06 -050051if (ENABLE_SPVREMAPPER)
52 add_library(SPVRemapper ${LIB_TYPE} ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS})
53 set_property(TARGET SPVRemapper PROPERTY FOLDER glslang)
54 set_property(TARGET SPVRemapper PROPERTY POSITION_INDEPENDENT_CODE ON)
55endif()
steve-lunarga8456412016-08-17 16:18:06 -060056
Matthew Albrecht6c5f6492018-03-30 09:32:03 -050057if(WIN32 AND BUILD_SHARED_LIBS)
58 set_target_properties(SPIRV PROPERTIES PREFIX "")
Matthew Albrecht857f25c2018-07-07 16:53:06 -050059 if (ENABLE_SPVREMAPPER)
60 set_target_properties(SPVRemapper PROPERTIES PREFIX "")
61 endif()
Matthew Albrecht6c5f6492018-03-30 09:32:03 -050062endif()
63
GregFfd34f0e2017-09-21 16:50:39 -060064if(ENABLE_OPT)
65 target_include_directories(SPIRV
66 PRIVATE ${spirv-tools_SOURCE_DIR}/include
67 PRIVATE ${spirv-tools_SOURCE_DIR}/source
68 )
GregF4bede9e2018-03-26 17:20:10 -060069 target_link_libraries(SPIRV glslang SPIRV-Tools-opt)
John Kesseniche2156222018-06-11 18:12:15 -060070 target_include_directories(SPIRV PUBLIC ../External)
GregFfd34f0e2017-09-21 16:50:39 -060071else()
72 target_link_libraries(SPIRV glslang)
73endif(ENABLE_OPT)
74
John Kessenich140f3df2015-06-26 16:58:36 -060075if(WIN32)
76 source_group("Source" FILES ${SOURCES} ${HEADERS})
steve-lunarga8456412016-08-17 16:18:06 -060077 source_group("Source" FILES ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS})
John Kessenich140f3df2015-06-26 16:58:36 -060078endif(WIN32)
79
d3x0r4e53d902017-07-04 06:00:35 -070080if(ENABLE_GLSLANG_INSTALL)
Matthew Albrecht1199cf92018-04-26 09:04:25 -050081 if(BUILD_SHARED_LIBS)
Matthew Albrecht857f25c2018-07-07 16:53:06 -050082 if (ENABLE_SPVREMAPPER)
James Rumbleab6d1492019-08-06 14:47:51 +010083 install(TARGETS SPVRemapper EXPORT SPVRemapperTargets
Matthew Albrecht857f25c2018-07-07 16:53:06 -050084 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
85 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
86 endif()
James Rumbleab6d1492019-08-06 14:47:51 +010087 install(TARGETS SPIRV EXPORT SPIRVTargets
Matthew Albrecht1199cf92018-04-26 09:04:25 -050088 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
Matthew Albrechtcda52d52019-05-23 19:01:57 -050089 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
90 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
Matthew Albrecht1199cf92018-04-26 09:04:25 -050091 else()
Matthew Albrecht857f25c2018-07-07 16:53:06 -050092 if (ENABLE_SPVREMAPPER)
James Rumbleab6d1492019-08-06 14:47:51 +010093 install(TARGETS SPVRemapper EXPORT SPVRemapperTargets
Matthew Albrecht857f25c2018-07-07 16:53:06 -050094 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
95 endif()
James Rumbleab6d1492019-08-06 14:47:51 +010096 install(TARGETS SPIRV EXPORT SPIRVTargets
Matthew Albrecht1199cf92018-04-26 09:04:25 -050097 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
98 endif()
James Rumbleab6d1492019-08-06 14:47:51 +010099
100 install(EXPORT SPVRemapperTargets DESTINATION ${LIB_INSTALL_DIR}/cmake)
101 install(EXPORT SPIRVTargets DESTINATION ${LIB_INSTALL_DIR}/cmake)
Benjamin Saunders5a074532017-01-29 17:45:12 -0800102
d3x0r4e53d902017-07-04 06:00:35 -0700103 install(FILES ${HEADERS} ${SPVREMAP_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/SPIRV/)
104endif(ENABLE_GLSLANG_INSTALL)