| if(WIN32) |
| add_subdirectory(OSDependent/Windows) |
| elseif(UNIX) |
| add_subdirectory(OSDependent/Unix) |
| else(WIN32) |
| message("unknown platform") |
| endif(WIN32) |
| |
| set(SOURCES |
| MachineIndependent/glslang.m4 |
| MachineIndependent/glslang.y |
| MachineIndependent/glslang_tab.cpp |
| MachineIndependent/attribute.cpp |
| MachineIndependent/Constant.cpp |
| MachineIndependent/iomapper.cpp |
| MachineIndependent/InfoSink.cpp |
| MachineIndependent/Initialize.cpp |
| MachineIndependent/IntermTraverse.cpp |
| MachineIndependent/Intermediate.cpp |
| MachineIndependent/ParseContextBase.cpp |
| MachineIndependent/ParseHelper.cpp |
| MachineIndependent/PoolAlloc.cpp |
| MachineIndependent/RemoveTree.cpp |
| MachineIndependent/Scan.cpp |
| MachineIndependent/ShaderLang.cpp |
| MachineIndependent/SymbolTable.cpp |
| MachineIndependent/Versions.cpp |
| MachineIndependent/intermOut.cpp |
| MachineIndependent/limits.cpp |
| MachineIndependent/linkValidate.cpp |
| MachineIndependent/parseConst.cpp |
| MachineIndependent/reflection.cpp |
| MachineIndependent/preprocessor/Pp.cpp |
| MachineIndependent/preprocessor/PpAtom.cpp |
| MachineIndependent/preprocessor/PpContext.cpp |
| MachineIndependent/preprocessor/PpScanner.cpp |
| MachineIndependent/preprocessor/PpTokens.cpp |
| MachineIndependent/propagateNoContraction.cpp |
| GenericCodeGen/CodeGen.cpp |
| GenericCodeGen/Link.cpp) |
| |
| set(HEADERS |
| Public/ShaderLang.h |
| Include/arrays.h |
| Include/BaseTypes.h |
| Include/Common.h |
| Include/ConstantUnion.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 |
| MachineIndependent/attribute.h |
| MachineIndependent/glslang_tab.cpp.h |
| MachineIndependent/gl_types.h |
| MachineIndependent/Initialize.h |
| MachineIndependent/iomapper.h |
| MachineIndependent/LiveTraverser.h |
| MachineIndependent/localintermediate.h |
| MachineIndependent/ParseHelper.h |
| MachineIndependent/reflection.h |
| MachineIndependent/RemoveTree.h |
| MachineIndependent/Scan.h |
| MachineIndependent/ScanContext.h |
| MachineIndependent/SymbolTable.h |
| MachineIndependent/Versions.h |
| MachineIndependent/parseVersions.h |
| MachineIndependent/propagateNoContraction.h |
| MachineIndependent/preprocessor/PpContext.h |
| MachineIndependent/preprocessor/PpTokens.h) |
| |
| glslang_pch(SOURCES MachineIndependent/pch.cpp) |
| |
| add_library(glslang ${LIB_TYPE} ${BISON_GLSLParser_OUTPUT_SOURCE} ${SOURCES} ${HEADERS}) |
| set_property(TARGET glslang PROPERTY FOLDER glslang) |
| set_property(TARGET glslang PROPERTY POSITION_INDEPENDENT_CODE ON) |
| target_link_libraries(glslang OGLCompiler OSDependent) |
| target_include_directories(glslang PUBLIC ..) |
| |
| if(WIN32 AND BUILD_SHARED_LIBS) |
| set_target_properties(glslang PROPERTIES PREFIX "") |
| endif() |
| |
| if(ENABLE_HLSL) |
| target_link_libraries(glslang HLSL) |
| endif() |
| |
| if(WIN32) |
| source_group("Public" REGULAR_EXPRESSION "Public/*") |
| source_group("MachineIndependent" REGULAR_EXPRESSION "MachineIndependent/[^/]*") |
| source_group("Include" REGULAR_EXPRESSION "Include/[^/]*") |
| source_group("GenericCodeGen" REGULAR_EXPRESSION "GenericCodeGen/*") |
| source_group("MachineIndependent\\Preprocessor" REGULAR_EXPRESSION "MachineIndependent/preprocessor/*") |
| endif(WIN32) |
| |
| if(ENABLE_GLSLANG_INSTALL) |
| if(BUILD_SHARED_LIBS) |
| install(TARGETS glslang |
| ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} |
| LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} |
| RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) |
| else() |
| install(TARGETS glslang |
| ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) |
| endif() |
| endif(ENABLE_GLSLANG_INSTALL) |
| |
| if(ENABLE_GLSLANG_INSTALL) |
| foreach(file ${HEADERS}) |
| get_filename_component(dir ${file} DIRECTORY) |
| install(FILES ${file} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/glslang/${dir}) |
| endforeach() |
| endif(ENABLE_GLSLANG_INSTALL) |
| |
| if(ENABLE_GLSLANG_WEB) |
| add_executable(glslang.js glslang.js.cpp) |
| glslang_set_link_args(glslang.js) |
| target_link_libraries(glslang.js glslang SPIRV) |
| if(EMSCRIPTEN) |
| set_target_properties(glslang.js PROPERTIES |
| OUTPUT_NAME "glslang" |
| SUFFIX ".js" |
| LINK_FLAGS "--bind -s EXPORT_NAME=\"glslangModule\"") |
| em_link_pre_js(glslang.js ${CMAKE_CURRENT_SOURCE_DIR}/glslang.pre.js) |
| endif(EMSCRIPTEN) |
| endif(ENABLE_GLSLANG_WEB) |