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