add_subdirectory(OSDependent/Web)
endif(EMSCRIPTEN OR ENABLE_GLSLANG_JS)
-set(SOURCES
+################################################################################
+# GenericCodeGen
+################################################################################
+add_library(GenericCodeGen STATIC
+ GenericCodeGen/CodeGen.cpp
+ GenericCodeGen/Link.cpp)
+
+################################################################################
+# MachineIndependent
+################################################################################
+set(MACHINEINDEPENDENT_SOURCES
MachineIndependent/glslang.m4
MachineIndependent/glslang.y
MachineIndependent/glslang_tab.cpp
MachineIndependent/preprocessor/PpScanner.cpp
MachineIndependent/preprocessor/PpTokens.cpp
MachineIndependent/propagateNoContraction.cpp
- GenericCodeGen/CodeGen.cpp
- GenericCodeGen/Link.cpp
- CInterface/glslang_c_interface.cpp)
+)
-set(HEADERS
- Public/ShaderLang.h
- Include/arrays.h
- Include/BaseTypes.h
- Include/Common.h
- Include/ConstantUnion.h
- Include/glslang_c_interface.h
- Include/glslang_c_shader_types.h
- Include/InfoSink.h
- Include/InitializeGlobals.h
- Include/intermediate.h
- Include/PoolAlloc.h
- Include/ResourceLimits.h
- Include/revision.h
- Include/ShHandle.h
- Include/Types.h
+set(MACHINEINDEPENDENT_HEADERS
MachineIndependent/attribute.h
MachineIndependent/glslang_tab.cpp.h
MachineIndependent/gl_types.h
MachineIndependent/parseVersions.h
MachineIndependent/propagateNoContraction.h
MachineIndependent/preprocessor/PpContext.h
- MachineIndependent/preprocessor/PpTokens.h)
-
-glslang_pch(SOURCES MachineIndependent/pch.cpp)
+ MachineIndependent/preprocessor/PpTokens.h
+)
if(ENABLE_HLSL)
- list(APPEND SOURCES
+ list(APPEND MACHINEINDEPENDENT_SOURCES
HLSL/hlslAttributes.cpp
HLSL/hlslParseHelper.cpp
HLSL/hlslScanContext.cpp
HLSL/hlslGrammar.cpp
HLSL/hlslParseables.cpp)
- list(APPEND HEADERS
+ list(APPEND MACHINEINDEPENDENT_HEADERS
HLSL/hlslAttributes.h
HLSL/hlslParseHelper.h
HLSL/hlslTokens.h
HLSL/hlslParseables.h)
endif(ENABLE_HLSL)
-add_library(glslang ${LIB_TYPE} ${BISON_GLSLParser_OUTPUT_SOURCE} ${SOURCES} ${HEADERS})
+add_library(MachineIndependent STATIC ${MACHINEINDEPENDENT_SOURCES} ${MACHINEINDEPENDENT_HEADERS})
+
+glslang_pch(SOURCES MachineIndependent/pch.cpp)
+
+target_link_libraries(MachineIndependent PRIVATE OGLCompiler OSDependent GenericCodeGen)
+
+################################################################################
+# glslang
+################################################################################
+set(GLSLANG_SOURCES
+ CInterface/glslang_c_interface.cpp)
+
+set(GLSLANG_HEADERS
+ Public/ShaderLang.h
+ Include/arrays.h
+ Include/BaseTypes.h
+ Include/Common.h
+ Include/ConstantUnion.h
+ Include/glslang_c_interface.h
+ Include/glslang_c_shader_types.h
+ Include/InfoSink.h
+ Include/InitializeGlobals.h
+ Include/intermediate.h
+ Include/PoolAlloc.h
+ Include/ResourceLimits.h
+ Include/revision.h
+ Include/ShHandle.h
+ Include/Types.h)
+
+add_library(glslang ${LIB_TYPE} ${BISON_GLSLParser_OUTPUT_SOURCE} ${GLSLANG_SOURCES} ${GLSLANG_HEADERS})
set_property(TARGET glslang PROPERTY FOLDER glslang)
set_property(TARGET glslang PROPERTY POSITION_INDEPENDENT_CODE ON)
-target_link_libraries(glslang OGLCompiler OSDependent)
+target_link_libraries(glslang PRIVATE OGLCompiler OSDependent MachineIndependent)
target_include_directories(glslang PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
set_target_properties(glslang PROPERTIES PREFIX "")
endif()
+################################################################################
+# source_groups
+################################################################################
if(WIN32)
source_group("Public" REGULAR_EXPRESSION "Public/*")
source_group("MachineIndependent" REGULAR_EXPRESSION "MachineIndependent/[^/]*")
source_group("CInterface" REGULAR_EXPRESSION "CInterface/*")
endif(WIN32)
+################################################################################
+# install
+################################################################################
if(ENABLE_GLSLANG_INSTALL)
if(BUILD_SHARED_LIBS)
- install(TARGETS glslang EXPORT glslangTargets
+ install(TARGETS glslang
+ EXPORT glslangTargets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
else()
- install(TARGETS glslang EXPORT glslangTargets
+ install(TARGETS glslang MachineIndependent GenericCodeGen
+ EXPORT glslangTargets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif()
+
install(EXPORT glslangTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake)
-endif(ENABLE_GLSLANG_INSTALL)
-if(ENABLE_GLSLANG_INSTALL)
- foreach(file ${HEADERS})
+ set(ALL_HEADERS
+ ${GLSLANG_HEADERS}
+ ${MACHINEINDEPENDENT_HEADERS})
+
+ foreach(file ${ALL_HEADERS})
get_filename_component(dir ${file} DIRECTORY)
install(FILES ${file} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/glslang/${dir})
endforeach()