2019-03-04 10:45:30 +00:00
|
|
|
cmake_minimum_required(VERSION 2.8.12)
|
|
|
|
|
2019-03-24 12:59:46 +00:00
|
|
|
make_release_only()
|
2019-10-05 11:41:21 +00:00
|
|
|
use_fast_math()
|
2019-03-24 12:59:46 +00:00
|
|
|
|
2019-03-04 10:45:30 +00:00
|
|
|
# Request C++11
|
|
|
|
if(${CMAKE_VERSION} VERSION_LESS 3.1)
|
|
|
|
# CMake versions before 3.1 do not understand CMAKE_CXX_STANDARD
|
|
|
|
# remove this block once CMake >=3.1 has fixated in the ecosystem
|
|
|
|
add_compile_options(-std=c++11)
|
|
|
|
else()
|
|
|
|
set(CMAKE_CXX_STANDARD 11)
|
|
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
|
|
|
endif()
|
|
|
|
|
2019-02-20 20:21:57 +00:00
|
|
|
set(SOURCES
|
|
|
|
GlslangToSpv.cpp
|
|
|
|
InReadableOrder.cpp
|
|
|
|
Logger.cpp
|
|
|
|
SpvBuilder.cpp
|
2019-04-15 02:53:43 +00:00
|
|
|
SpvPostProcess.cpp
|
2019-02-20 20:21:57 +00:00
|
|
|
doc.cpp
|
2019-04-15 02:53:43 +00:00
|
|
|
SpvTools.cpp
|
2019-02-20 20:21:57 +00:00
|
|
|
disassemble.cpp)
|
|
|
|
|
|
|
|
set(SPVREMAP_SOURCES
|
|
|
|
SPVRemapper.cpp
|
|
|
|
doc.cpp)
|
|
|
|
|
|
|
|
set(HEADERS
|
|
|
|
bitutils.h
|
|
|
|
spirv.hpp
|
|
|
|
GLSL.std.450.h
|
|
|
|
GLSL.ext.EXT.h
|
|
|
|
GLSL.ext.KHR.h
|
|
|
|
GlslangToSpv.h
|
|
|
|
hex_float.h
|
|
|
|
Logger.h
|
|
|
|
SpvBuilder.h
|
|
|
|
spvIR.h
|
|
|
|
doc.h
|
2019-04-15 02:53:43 +00:00
|
|
|
SpvTools.h
|
2019-02-20 20:21:57 +00:00
|
|
|
disassemble.h)
|
|
|
|
|
|
|
|
set(SPVREMAP_HEADERS
|
|
|
|
SPVRemapper.h
|
|
|
|
doc.h)
|
|
|
|
|
|
|
|
if(ENABLE_AMD_EXTENSIONS)
|
|
|
|
list(APPEND
|
|
|
|
HEADERS
|
|
|
|
GLSL.ext.AMD.h)
|
|
|
|
endif(ENABLE_AMD_EXTENSIONS)
|
|
|
|
|
|
|
|
if(ENABLE_NV_EXTENSIONS)
|
|
|
|
list(APPEND
|
|
|
|
HEADERS
|
|
|
|
GLSL.ext.NV.h)
|
|
|
|
endif(ENABLE_NV_EXTENSIONS)
|
|
|
|
|
2019-05-15 14:58:28 +00:00
|
|
|
add_library(SPIRV STATIC ${LIB_TYPE} ${SOURCES} ${HEADERS})
|
2019-02-20 20:21:57 +00:00
|
|
|
set_property(TARGET SPIRV PROPERTY FOLDER glslang)
|
|
|
|
set_property(TARGET SPIRV PROPERTY POSITION_INDEPENDENT_CODE ON)
|
|
|
|
target_include_directories(SPIRV PUBLIC ..)
|
|
|
|
|
2019-04-15 02:53:43 +00:00
|
|
|
if (ENABLE_SPVREMAPPER)
|
|
|
|
add_library(SPVRemapper ${LIB_TYPE} ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS})
|
|
|
|
set_property(TARGET SPVRemapper PROPERTY FOLDER glslang)
|
|
|
|
set_property(TARGET SPVRemapper PROPERTY POSITION_INDEPENDENT_CODE ON)
|
|
|
|
endif()
|
2019-02-20 20:21:57 +00:00
|
|
|
|
|
|
|
if(WIN32 AND BUILD_SHARED_LIBS)
|
|
|
|
set_target_properties(SPIRV PROPERTIES PREFIX "")
|
2019-04-15 02:53:43 +00:00
|
|
|
if (ENABLE_SPVREMAPPER)
|
|
|
|
set_target_properties(SPVRemapper PROPERTIES PREFIX "")
|
|
|
|
endif()
|
2019-02-20 20:21:57 +00:00
|
|
|
endif()
|
|
|
|
|
|
|
|
if(ENABLE_OPT)
|
|
|
|
target_include_directories(SPIRV
|
|
|
|
PRIVATE ${spirv-tools_SOURCE_DIR}/include
|
|
|
|
PRIVATE ${spirv-tools_SOURCE_DIR}/source
|
|
|
|
)
|
|
|
|
target_link_libraries(SPIRV glslang SPIRV-Tools-opt)
|
|
|
|
target_include_directories(SPIRV PUBLIC ../External)
|
|
|
|
else()
|
|
|
|
target_link_libraries(SPIRV glslang)
|
|
|
|
endif(ENABLE_OPT)
|
|
|
|
|
|
|
|
if(WIN32)
|
|
|
|
source_group("Source" FILES ${SOURCES} ${HEADERS})
|
|
|
|
source_group("Source" FILES ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS})
|
|
|
|
endif(WIN32)
|
|
|
|
|
|
|
|
if(ENABLE_GLSLANG_INSTALL)
|
|
|
|
if(BUILD_SHARED_LIBS)
|
2019-04-15 02:53:43 +00:00
|
|
|
if (ENABLE_SPVREMAPPER)
|
|
|
|
install(TARGETS SPVRemapper
|
|
|
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
|
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
|
|
|
endif()
|
|
|
|
install(TARGETS SPIRV
|
2019-02-20 20:21:57 +00:00
|
|
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
|
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
|
|
|
else()
|
2019-04-15 02:53:43 +00:00
|
|
|
if (ENABLE_SPVREMAPPER)
|
|
|
|
install(TARGETS SPVRemapper
|
|
|
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
|
|
|
endif()
|
|
|
|
install(TARGETS SPIRV
|
2019-02-20 20:21:57 +00:00
|
|
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
|
|
|
endif()
|
|
|
|
|
|
|
|
install(FILES ${HEADERS} ${SPVREMAP_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/SPIRV/)
|
|
|
|
endif(ENABLE_GLSLANG_INSTALL)
|