Limit visibility of symbols for internal libraries

Also remove `SPIRV/doc.cpp` from the `SPVRemapper` target as this
is part of `SPIRV`, causing ODR violations. Instead have
`SPVRemapper` link against `SPIRV`.

Fixes ODR violations.
This commit is contained in:
Ben Clayton
2020-07-14 18:36:08 +01:00
parent 11fa4d0d56
commit 33585c871d
4 changed files with 19 additions and 11 deletions

View File

@@ -52,6 +52,7 @@ add_library(GenericCodeGen STATIC
GenericCodeGen/Link.cpp)
set_property(TARGET GenericCodeGen PROPERTY POSITION_INDEPENDENT_CODE ON)
set_property(TARGET GenericCodeGen PROPERTY FOLDER glslang)
glslang_default_to_hidden_visibility(GenericCodeGen)
################################################################################
# MachineIndependent
@@ -133,6 +134,7 @@ endif(ENABLE_HLSL)
add_library(MachineIndependent STATIC ${MACHINEINDEPENDENT_SOURCES} ${MACHINEINDEPENDENT_HEADERS})
set_property(TARGET MachineIndependent PROPERTY POSITION_INDEPENDENT_CODE ON)
set_property(TARGET MachineIndependent PROPERTY FOLDER glslang)
glslang_only_export_explicit_symbols(MachineIndependent)
glslang_add_build_info_dependency(MachineIndependent)
@@ -168,7 +170,7 @@ set_target_properties(glslang PROPERTIES
POSITION_INDEPENDENT_CODE ON
VERSION "${GLSLANG_VERSION}"
SOVERSION "${GLSLANG_VERSION_MAJOR}")
target_link_libraries(glslang PRIVATE OGLCompiler OSDependent MachineIndependent)
target_link_libraries(glslang PRIVATE OGLCompiler MachineIndependent)
target_include_directories(glslang PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)