Add CTS_ARB_gl_spirv test implementation
[platform/upstream/VK-GL-CTS.git] / external / glslang / CMakeLists.txt
1 # cmake file for glslang
2
3 if (NOT DE_DEFS)
4         message(FATAL_ERROR "Include Defs.cmake")
5 endif ()
6
7 if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/SPIRV/GlslangToSpv.cpp")
8         set(DEFAULT_GLSLANG_SRC_PATH ${CMAKE_CURRENT_SOURCE_DIR}/src)
9 else ()
10         set(DEFAULT_GLSLANG_SRC_PATH "../glslang")
11 endif ()
12
13 set(GLSLANG_SRC_PATH ${DEFAULT_GLSLANG_SRC_PATH} CACHE STRING "Path to glslang source tree")
14
15 if (IS_ABSOLUTE ${GLSLANG_SRC_PATH})
16         set(GLSLANG_ABS_PATH ${GLSLANG_SRC_PATH})
17 else ()
18         set(GLSLANG_ABS_PATH "${CMAKE_SOURCE_DIR}/${GLSLANG_SRC_PATH}")
19 endif ()
20
21 if (EXISTS ${GLSLANG_ABS_PATH}/glslang/GenericCodeGen/CodeGen.cpp)
22         message(STATUS "glslang found; building with DEQP_SUPPORT_GLSLANG")
23
24         include_directories(
25                 ${GLSLANG_ABS_PATH}
26                 ${GLSLANG_ABS_PATH}/glslang
27                 ${GLSLANG_ABS_PATH}/glslang/Include
28                 ${GLSLANG_ABS_PATH}/glslang/Public
29                 ${GLSLANG_ABS_PATH}/glslang/MachineIndependent
30                 ${GLSLANG_ABS_PATH}/glslang/GenericCodeGen
31                 ${GLSLANG_ABS_PATH}/glslang/OSDependent
32                 ${GLSLANG_ABS_PATH}/hlsl
33                 ${GLSLANG_ABS_PATH}/OGLCompilersDLL
34                 ${GLSLANG_ABS_PATH}/SPIRV
35                 )
36
37         set(GLSLANG_SRCS
38                 ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/Constant.cpp
39                 ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/glslang_tab.cpp
40                 ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/InfoSink.cpp
41                 ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/Initialize.cpp
42                 ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/Intermediate.cpp
43                 ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/intermOut.cpp
44                 ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/iomapper.cpp
45                 ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/IntermTraverse.cpp
46                 ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/limits.cpp
47                 ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/linkValidate.cpp
48                 ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/parseConst.cpp
49                 ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/ParseContextBase.cpp
50                 ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/ParseHelper.cpp
51                 ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/PoolAlloc.cpp
52                 ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/propagateNoContraction.cpp
53                 ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/reflection.cpp
54                 ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/RemoveTree.cpp
55                 ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/Scan.cpp
56                 ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/ShaderLang.cpp
57                 ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/SymbolTable.cpp
58                 ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/Versions.cpp
59
60                 ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/preprocessor/PpAtom.cpp
61                 ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/preprocessor/PpContext.cpp
62                 ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/preprocessor/Pp.cpp
63                 ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/preprocessor/PpScanner.cpp
64                 ${GLSLANG_ABS_PATH}/glslang/MachineIndependent/preprocessor/PpTokens.cpp
65
66                 ${GLSLANG_ABS_PATH}/glslang/GenericCodeGen/CodeGen.cpp
67                 ${GLSLANG_ABS_PATH}/glslang/GenericCodeGen/Link.cpp
68
69                 ${GLSLANG_ABS_PATH}/OGLCompilersDLL/InitializeDll.cpp
70
71                 ${GLSLANG_ABS_PATH}/hlsl/hlslAttributes.cpp
72                 ${GLSLANG_ABS_PATH}/hlsl/hlslGrammar.cpp
73                 ${GLSLANG_ABS_PATH}/hlsl/hlslOpMap.cpp
74                 ${GLSLANG_ABS_PATH}/hlsl/hlslParseables.cpp
75                 ${GLSLANG_ABS_PATH}/hlsl/hlslParseHelper.cpp
76                 ${GLSLANG_ABS_PATH}/hlsl/hlslScanContext.cpp
77                 ${GLSLANG_ABS_PATH}/hlsl/hlslTokenStream.cpp
78
79                 ${GLSLANG_ABS_PATH}/SPIRV/disassemble.cpp
80                 ${GLSLANG_ABS_PATH}/SPIRV/doc.cpp
81                 ${GLSLANG_ABS_PATH}/SPIRV/GlslangToSpv.cpp
82                 ${GLSLANG_ABS_PATH}/SPIRV/InReadableOrder.cpp
83                 ${GLSLANG_ABS_PATH}/SPIRV/Logger.cpp
84                 ${GLSLANG_ABS_PATH}/SPIRV/SpvBuilder.cpp
85                 ${GLSLANG_ABS_PATH}/SPIRV/SPVRemapper.cpp
86
87                 osinclude.cpp
88                 )
89
90         set(CMAKE_C_FLAGS       ${DE_3RD_PARTY_C_FLAGS})
91         set(CMAKE_CXX_FLAGS     ${DE_3RD_PARTY_CXX_FLAGS})
92
93         if (DE_COMPILER_IS_GCC OR DE_COMPILER_IS_CLANG)
94                 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
95         endif ()
96
97         add_library(glslang STATIC ${GLSLANG_SRCS})
98         target_link_libraries(glslang dethread ${ZLIB_LIBRARY})
99
100         add_definitions(-DENABLE_HLSL)
101
102         set(GLSLANG_INCLUDE_PATH        ${GLSLANG_ABS_PATH}     PARENT_SCOPE)
103         set(GLSLANG_LIBRARY                     glslang                         PARENT_SCOPE)
104         set(DEQP_HAVE_GLSLANG           ON                                      PARENT_SCOPE)
105
106 else ()
107         message(STATUS "glslang not found; GLSL to SPIR-V compilation not available")
108
109         set(DEQP_HAVE_GLSLANG           OFF                                     PARENT_SCOPE)
110
111 endif ()