cmake: only install public headers
Only the headers that are part of glslang's public interface are installed. Previously, all of its headers were installed, which exposed a lot of internal implementation details and made it difficult to maintain backward compatiblity. This reduces the API surface somewhat and will make it easier to maintain API and ABI compatibility.
This commit is contained in:
parent
806d9abbad
commit
1dcb072cda
2 changed files with 18 additions and 7 deletions
|
|
@ -70,6 +70,13 @@ set(SPVREMAP_HEADERS
|
||||||
SPVRemapper.h
|
SPVRemapper.h
|
||||||
doc.h)
|
doc.h)
|
||||||
|
|
||||||
|
set(PUBLIC_HEADERS
|
||||||
|
GlslangToSpv.h
|
||||||
|
disassemble.h
|
||||||
|
Logger.h
|
||||||
|
spirv.hpp
|
||||||
|
SPVRemapper.h)
|
||||||
|
|
||||||
add_library(SPIRV ${LIB_TYPE} ${SOURCES} ${HEADERS})
|
add_library(SPIRV ${LIB_TYPE} ${SOURCES} ${HEADERS})
|
||||||
set_target_properties(SPIRV PROPERTIES
|
set_target_properties(SPIRV PROPERTIES
|
||||||
FOLDER glslang
|
FOLDER glslang
|
||||||
|
|
@ -148,5 +155,5 @@ if(ENABLE_GLSLANG_INSTALL)
|
||||||
")
|
")
|
||||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/SPIRVTargets.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake)
|
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/SPIRVTargets.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake)
|
||||||
|
|
||||||
install(FILES ${HEADERS} ${SPVREMAP_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/glslang/SPIRV/)
|
install(FILES ${PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/glslang/SPIRV/)
|
||||||
endif()
|
endif()
|
||||||
|
|
|
||||||
|
|
@ -163,7 +163,7 @@ set(GLSLANG_HEADERS
|
||||||
Include/SpirvIntrinsics.h
|
Include/SpirvIntrinsics.h
|
||||||
Include/Types.h)
|
Include/Types.h)
|
||||||
|
|
||||||
add_library(glslang ${LIB_TYPE} ${BISON_GLSLParser_OUTPUT_SOURCE} ${GLSLANG_SOURCES} ${GLSLANG_HEADERS})
|
add_library(glslang ${LIB_TYPE} ${GLSLANG_SOURCES} ${GLSLANG_HEADERS})
|
||||||
set_target_properties(glslang PROPERTIES
|
set_target_properties(glslang PROPERTIES
|
||||||
FOLDER glslang
|
FOLDER glslang
|
||||||
POSITION_INDEPENDENT_CODE ON
|
POSITION_INDEPENDENT_CODE ON
|
||||||
|
|
@ -247,12 +247,16 @@ if(ENABLE_GLSLANG_INSTALL)
|
||||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/glslangTargets.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake)
|
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/glslangTargets.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(ALL_HEADERS
|
set(PUBLIC_HEADERS
|
||||||
${GLSLANG_HEADERS}
|
Public/ResourceLimits.h
|
||||||
${MACHINEINDEPENDENT_HEADERS}
|
Public/ShaderLang.h
|
||||||
${RESOURCELIMITS_HEADERS})
|
Public/resource_limits_c.h
|
||||||
|
Include/glslang_c_interface.h
|
||||||
|
Include/glslang_c_shader_types.h
|
||||||
|
Include/ResourceLimits.h
|
||||||
|
MachineIndependent/Versions.h)
|
||||||
|
|
||||||
foreach(file ${ALL_HEADERS})
|
foreach(file ${PUBLIC_HEADERS})
|
||||||
get_filename_component(dir ${file} DIRECTORY)
|
get_filename_component(dir ${file} DIRECTORY)
|
||||||
install(FILES ${file} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/glslang/${dir})
|
install(FILES ${file} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/glslang/${dir})
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue