# Suppress all warnings from external projects.
set_property(DIRECTORY APPEND PROPERTY COMPILE_OPTIONS -w)
-if (TARGET gmock)
- message(STATUS "Google Mock already configured - use it")
-elseif(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/googletest)
- # We need to make sure Google Test does not mess up with the
- # global CRT settings on Windows.
- if(WIN32)
- set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
- endif(WIN32)
- add_subdirectory(googletest)
- set(GTEST_TARGETS
- gtest
- gtest_main
- gmock
- gmock_main)
- foreach(target ${GTEST_TARGETS})
- set_property(TARGET ${target} PROPERTY FOLDER gtest)
- endforeach()
- mark_as_advanced(gmock_build_tests
- BUILD_GMOCK
- BUILD_GTEST
- BUILD_SHARED_LIBS
- gtest_build_samples
- gtest_build_tests
- gtest_disable_pthreads
- gtest_force_shared_crt
- gtest_hide_internal_symbols)
-else()
- message(STATUS
- "Google Mock was not found - tests based on that will not build")
+if(BUILD_TESTING)
+ if(TARGET gmock)
+ message(STATUS "Google Mock already configured - use it")
+ elseif(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/googletest)
+ # We need to make sure Google Test does not mess up with the
+ # global CRT settings on Windows.
+ if(WIN32)
+ set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
+ endif(WIN32)
+ add_subdirectory(googletest)
+ set(GTEST_TARGETS
+ gtest
+ gtest_main
+ gmock
+ gmock_main)
+ foreach(target ${GTEST_TARGETS})
+ set_property(TARGET ${target} PROPERTY FOLDER gtest)
+ endforeach()
+ mark_as_advanced(gmock_build_tests
+ BUILD_GMOCK
+ BUILD_GTEST
+ BUILD_SHARED_LIBS
+ gtest_build_samples
+ gtest_build_tests
+ gtest_disable_pthreads
+ gtest_force_shared_crt
+ gtest_hide_internal_symbols)
+ else()
+ message(STATUS
+ "Google Mock was not found - tests based on that will not build")
+ endif()
endif()
-if (TARGET gmock)
- message(STATUS "Google Mock found - building tests")
+if(BUILD_TESTING)
+ if(TARGET gmock)
+ message(STATUS "Google Mock found - building tests")
- set(TEST_SOURCES
- # Framework related source files
- ${CMAKE_CURRENT_SOURCE_DIR}/Initializer.h
- ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/Settings.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/Settings.h
- ${CMAKE_CURRENT_SOURCE_DIR}/TestFixture.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/TestFixture.h
+ set(TEST_SOURCES
+ # Framework related source files
+ ${CMAKE_CURRENT_SOURCE_DIR}/Initializer.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/Settings.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/Settings.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/TestFixture.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/TestFixture.h
- # Test related source files
- ${CMAKE_CURRENT_SOURCE_DIR}/AST.FromFile.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/BuiltInResource.FromFile.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/Config.FromFile.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/HexFloat.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/Hlsl.FromFile.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/Link.FromFile.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/Link.FromFile.Vk.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/Pp.FromFile.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/Spv.FromFile.cpp
+ # Test related source files
+ ${CMAKE_CURRENT_SOURCE_DIR}/AST.FromFile.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/BuiltInResource.FromFile.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/Config.FromFile.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/HexFloat.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/Hlsl.FromFile.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/Link.FromFile.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/Link.FromFile.Vk.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/Pp.FromFile.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/Spv.FromFile.cpp
- # -- Remapper tests
- ${CMAKE_CURRENT_SOURCE_DIR}/Remap.FromFile.cpp)
+ # -- Remapper tests
+ ${CMAKE_CURRENT_SOURCE_DIR}/Remap.FromFile.cpp)
- add_executable(glslangtests ${TEST_SOURCES})
- set_property(TARGET glslangtests PROPERTY FOLDER tests)
- glslang_set_link_args(glslangtests)
- install(TARGETS glslangtests
- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ add_executable(glslangtests ${TEST_SOURCES})
+ set_property(TARGET glslangtests PROPERTY FOLDER tests)
+ glslang_set_link_args(glslangtests)
+ install(TARGETS glslangtests
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
- set(GLSLANG_TEST_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../Test")
- # Supply a default test root directory, so that manual testing
- # doesn't have to specify the --test-root option in the normal
- # case that you want to use the tests from the same source tree.
- target_compile_definitions(glslangtests
- PRIVATE GLSLANG_TEST_DIRECTORY="${GLSLANG_TEST_DIRECTORY}")
- target_include_directories(glslangtests PRIVATE
- ${CMAKE_CURRENT_SOURCE_DIR}
- ${PROJECT_SOURCE_DIR}
- ${gmock_SOURCE_DIR}/include
- ${gtest_SOURCE_DIR}/include)
+ set(GLSLANG_TEST_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../Test")
+ # Supply a default test root directory, so that manual testing
+ # doesn't have to specify the --test-root option in the normal
+ # case that you want to use the tests from the same source tree.
+ target_compile_definitions(glslangtests
+ PRIVATE GLSLANG_TEST_DIRECTORY="${GLSLANG_TEST_DIRECTORY}")
+ target_include_directories(glslangtests PRIVATE
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${PROJECT_SOURCE_DIR}
+ ${gmock_SOURCE_DIR}/include
+ ${gtest_SOURCE_DIR}/include)
- set(LIBRARIES
- SPVRemapper glslang OSDependent OGLCompiler glslang
- SPIRV glslang-default-resource-limits)
- if(ENABLE_HLSL)
- set(LIBRARIES ${LIBRARIES} HLSL)
- endif(ENABLE_HLSL)
- target_link_libraries(glslangtests PRIVATE ${LIBRARIES} gmock)
+ set(LIBRARIES
+ SPVRemapper glslang OSDependent OGLCompiler glslang
+ SPIRV glslang-default-resource-limits)
+ if(ENABLE_HLSL)
+ set(LIBRARIES ${LIBRARIES} HLSL)
+ endif(ENABLE_HLSL)
+ target_link_libraries(glslangtests PRIVATE ${LIBRARIES} gmock)
- add_test(NAME glslang-gtests
- COMMAND glslangtests --test-root "${GLSLANG_TEST_DIRECTORY}")
+ add_test(NAME glslang-gtests
+ COMMAND glslangtests --test-root "${GLSLANG_TEST_DIRECTORY}")
+ endif()
endif()