blob: 8fab581f2a863162783f076461c40cbd6f90d9ac [file] [log] [blame]
# cmake file for glslang
if (NOT DE_DEFS)
message(FATAL_ERROR "Include Defs.cmake")
endif ()
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/SPIRV/GlslangToSpv.cpp")
set(DEFAULT_GLSLANG_SRC_PATH ${CMAKE_CURRENT_SOURCE_DIR}/src)
else ()
set(DEFAULT_GLSLANG_SRC_PATH "../glslang")
endif ()
set(GLSLANG_SRC_PATH ${DEFAULT_GLSLANG_SRC_PATH} CACHE STRING "Path to glslang source tree")
if (IS_ABSOLUTE ${GLSLANG_SRC_PATH})
set(GLSLANG_ABS_PATH ${GLSLANG_SRC_PATH})
else ()
set(GLSLANG_ABS_PATH "${CMAKE_SOURCE_DIR}/${GLSLANG_SRC_PATH}")
endif ()
if (EXISTS ${GLSLANG_ABS_PATH}/glslang/GenericCodeGen/CodeGen.cpp)
message(STATUS "glslang found; building with DEQP_SUPPORT_GLSLANG")
include_directories(
${GLSLANG_ABS_PATH}
${GLSLANG_ABS_PATH}/glslang
${GLSLANG_ABS_PATH}/glslang/Include
${GLSLANG_ABS_PATH}/glslang/Public
${GLSLANG_ABS_PATH}/glslang/MachineIndependent
${GLSLANG_ABS_PATH}/glslang/GenericCodeGen
${GLSLANG_ABS_PATH}/glslang/OSDependent
${GLSLANG_ABS_PATH}/hlsl
${GLSLANG_ABS_PATH}/OGLCompilersDLL
${GLSLANG_ABS_PATH}/SPIRV
)
set(GLSLANG_SRCS
${GLSLANG_ABS_PATH}/glslang/MachineIndependent/Constant.cpp
${GLSLANG_ABS_PATH}/glslang/MachineIndependent/glslang_tab.cpp
${GLSLANG_ABS_PATH}/glslang/MachineIndependent/InfoSink.cpp
${GLSLANG_ABS_PATH}/glslang/MachineIndependent/Initialize.cpp
${GLSLANG_ABS_PATH}/glslang/MachineIndependent/Intermediate.cpp
${GLSLANG_ABS_PATH}/glslang/MachineIndependent/intermOut.cpp
${GLSLANG_ABS_PATH}/glslang/MachineIndependent/iomapper.cpp
${GLSLANG_ABS_PATH}/glslang/MachineIndependent/IntermTraverse.cpp
${GLSLANG_ABS_PATH}/glslang/MachineIndependent/limits.cpp
${GLSLANG_ABS_PATH}/glslang/MachineIndependent/linkValidate.cpp
${GLSLANG_ABS_PATH}/glslang/MachineIndependent/parseConst.cpp
${GLSLANG_ABS_PATH}/glslang/MachineIndependent/ParseContextBase.cpp
${GLSLANG_ABS_PATH}/glslang/MachineIndependent/ParseHelper.cpp
${GLSLANG_ABS_PATH}/glslang/MachineIndependent/PoolAlloc.cpp
${GLSLANG_ABS_PATH}/glslang/MachineIndependent/propagateNoContraction.cpp
${GLSLANG_ABS_PATH}/glslang/MachineIndependent/reflection.cpp
${GLSLANG_ABS_PATH}/glslang/MachineIndependent/RemoveTree.cpp
${GLSLANG_ABS_PATH}/glslang/MachineIndependent/Scan.cpp
${GLSLANG_ABS_PATH}/glslang/MachineIndependent/ShaderLang.cpp
${GLSLANG_ABS_PATH}/glslang/MachineIndependent/SymbolTable.cpp
${GLSLANG_ABS_PATH}/glslang/MachineIndependent/Versions.cpp
${GLSLANG_ABS_PATH}/glslang/MachineIndependent/preprocessor/PpAtom.cpp
${GLSLANG_ABS_PATH}/glslang/MachineIndependent/preprocessor/PpContext.cpp
${GLSLANG_ABS_PATH}/glslang/MachineIndependent/preprocessor/Pp.cpp
${GLSLANG_ABS_PATH}/glslang/MachineIndependent/preprocessor/PpMemory.cpp
${GLSLANG_ABS_PATH}/glslang/MachineIndependent/preprocessor/PpScanner.cpp
${GLSLANG_ABS_PATH}/glslang/MachineIndependent/preprocessor/PpSymbols.cpp
${GLSLANG_ABS_PATH}/glslang/MachineIndependent/preprocessor/PpTokens.cpp
${GLSLANG_ABS_PATH}/glslang/GenericCodeGen/CodeGen.cpp
${GLSLANG_ABS_PATH}/glslang/GenericCodeGen/Link.cpp
${GLSLANG_ABS_PATH}/OGLCompilersDLL/InitializeDll.cpp
${GLSLANG_ABS_PATH}/hlsl/hlslGrammar.cpp
${GLSLANG_ABS_PATH}/hlsl/hlslOpMap.cpp
${GLSLANG_ABS_PATH}/hlsl/hlslParseables.cpp
${GLSLANG_ABS_PATH}/hlsl/hlslParseHelper.cpp
${GLSLANG_ABS_PATH}/hlsl/hlslScanContext.cpp
${GLSLANG_ABS_PATH}/hlsl/hlslTokenStream.cpp
${GLSLANG_ABS_PATH}/SPIRV/disassemble.cpp
${GLSLANG_ABS_PATH}/SPIRV/doc.cpp
${GLSLANG_ABS_PATH}/SPIRV/GlslangToSpv.cpp
${GLSLANG_ABS_PATH}/SPIRV/InReadableOrder.cpp
${GLSLANG_ABS_PATH}/SPIRV/Logger.cpp
${GLSLANG_ABS_PATH}/SPIRV/SpvBuilder.cpp
${GLSLANG_ABS_PATH}/SPIRV/SPVRemapper.cpp
osinclude.cpp
)
set(CMAKE_C_FLAGS ${DE_3RD_PARTY_C_FLAGS})
set(CMAKE_CXX_FLAGS ${DE_3RD_PARTY_CXX_FLAGS})
if (DE_COMPILER_IS_GCC OR DE_COMPILER_IS_CLANG)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
endif ()
add_library(glslang STATIC ${GLSLANG_SRCS})
target_link_libraries(glslang dethread ${ZLIB_LIBRARY})
set(GLSLANG_INCLUDE_PATH ${GLSLANG_ABS_PATH} PARENT_SCOPE)
set(GLSLANG_LIBRARY glslang PARENT_SCOPE)
set(DEQP_HAVE_GLSLANG ON PARENT_SCOPE)
else ()
message(STATUS "glslang not found; GLSL to SPIR-V compilation not available")
set(DEQP_HAVE_GLSLANG OFF PARENT_SCOPE)
endif ()