Modernise CMake
[platform/upstream/glslang.git] / gtests / CMakeLists.txt
1 if (TARGET gmock)
2     message(STATUS "Google Mock found - building tests")
3
4     set(TEST_SOURCES
5         # Framework related source files
6         ${CMAKE_CURRENT_SOURCE_DIR}/Initializer.h
7         ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
8         ${CMAKE_CURRENT_SOURCE_DIR}/Settings.cpp
9         ${CMAKE_CURRENT_SOURCE_DIR}/Settings.h
10         ${CMAKE_CURRENT_SOURCE_DIR}/TestFixture.cpp
11         ${CMAKE_CURRENT_SOURCE_DIR}/TestFixture.h
12
13         # Test related source files
14         ${CMAKE_CURRENT_SOURCE_DIR}/AST.FromFile.cpp
15         ${CMAKE_CURRENT_SOURCE_DIR}/BuiltInResource.FromFile.cpp
16         ${CMAKE_CURRENT_SOURCE_DIR}/Config.FromFile.cpp
17         ${CMAKE_CURRENT_SOURCE_DIR}/HexFloat.cpp
18         ${CMAKE_CURRENT_SOURCE_DIR}/Hlsl.FromFile.cpp
19         ${CMAKE_CURRENT_SOURCE_DIR}/Link.FromFile.cpp
20         ${CMAKE_CURRENT_SOURCE_DIR}/Link.FromFile.Vk.cpp
21         ${CMAKE_CURRENT_SOURCE_DIR}/Pp.FromFile.cpp
22         ${CMAKE_CURRENT_SOURCE_DIR}/Spv.FromFile.cpp
23
24         # -- Remapper tests
25         ${CMAKE_CURRENT_SOURCE_DIR}/Remap.FromFile.cpp)
26
27     add_executable(glslangtests ${TEST_SOURCES})
28     set_property(TARGET glslangtests PROPERTY FOLDER tests)
29     glslang_set_link_args(glslangtests)
30     install(TARGETS glslangtests
31             RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
32
33     set(GLSLANG_TEST_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../Test")
34     # Supply a default test root directory, so that manual testing
35     # doesn't have to specify the --test-root option in the normal
36     # case that you want to use the tests from the same source tree.
37     target_compile_definitions(glslangtests
38                                PRIVATE GLSLANG_TEST_DIRECTORY="${GLSLANG_TEST_DIRECTORY}")
39     target_include_directories(glslangtests PRIVATE
40                                ${CMAKE_CURRENT_SOURCE_DIR}
41                                ${PROJECT_SOURCE_DIR}
42                                ${gmock_SOURCE_DIR}/include
43                                ${gtest_SOURCE_DIR}/include)
44
45     set(LIBRARIES
46         SPVRemapper glslang OSDependent OGLCompiler glslang
47         SPIRV glslang-default-resource-limits)
48     if(ENABLE_HLSL)
49         set(LIBRARIES ${LIBRARIES} HLSL)
50     endif(ENABLE_HLSL)
51     target_link_libraries(glslangtests PRIVATE ${LIBRARIES} gmock)
52
53     add_test(NAME glslang-gtests
54              COMMAND glslangtests --test-root "${GLSLANG_TEST_DIRECTORY}")
55 endif()