CMakeLists.txt 2.7 KB

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