Make test suite optional by using CTest
This commit is contained in:
parent
5a5699bdbd
commit
8f824265ea
@ -15,6 +15,9 @@ option(ENABLE_HLSL "Enables HLSL input support" ON)
|
|||||||
|
|
||||||
project(glslang)
|
project(glslang)
|
||||||
|
|
||||||
|
# make testing optional
|
||||||
|
include(CTest)
|
||||||
|
|
||||||
if(ENABLE_AMD_EXTENSIONS)
|
if(ENABLE_AMD_EXTENSIONS)
|
||||||
add_definitions(-DAMD_EXTENSIONS)
|
add_definitions(-DAMD_EXTENSIONS)
|
||||||
endif(ENABLE_AMD_EXTENSIONS)
|
endif(ENABLE_AMD_EXTENSIONS)
|
||||||
|
|||||||
60
External/CMakeLists.txt
vendored
60
External/CMakeLists.txt
vendored
@ -1,33 +1,35 @@
|
|||||||
# Suppress all warnings from external projects.
|
# Suppress all warnings from external projects.
|
||||||
set_property(DIRECTORY APPEND PROPERTY COMPILE_OPTIONS -w)
|
set_property(DIRECTORY APPEND PROPERTY COMPILE_OPTIONS -w)
|
||||||
|
|
||||||
if (TARGET gmock)
|
if(BUILD_TESTING)
|
||||||
message(STATUS "Google Mock already configured - use it")
|
if(TARGET gmock)
|
||||||
elseif(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/googletest)
|
message(STATUS "Google Mock already configured - use it")
|
||||||
# We need to make sure Google Test does not mess up with the
|
elseif(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/googletest)
|
||||||
# global CRT settings on Windows.
|
# We need to make sure Google Test does not mess up with the
|
||||||
if(WIN32)
|
# global CRT settings on Windows.
|
||||||
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
|
if(WIN32)
|
||||||
endif(WIN32)
|
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
|
||||||
add_subdirectory(googletest)
|
endif(WIN32)
|
||||||
set(GTEST_TARGETS
|
add_subdirectory(googletest)
|
||||||
gtest
|
set(GTEST_TARGETS
|
||||||
gtest_main
|
gtest
|
||||||
gmock
|
gtest_main
|
||||||
gmock_main)
|
gmock
|
||||||
foreach(target ${GTEST_TARGETS})
|
gmock_main)
|
||||||
set_property(TARGET ${target} PROPERTY FOLDER gtest)
|
foreach(target ${GTEST_TARGETS})
|
||||||
endforeach()
|
set_property(TARGET ${target} PROPERTY FOLDER gtest)
|
||||||
mark_as_advanced(gmock_build_tests
|
endforeach()
|
||||||
BUILD_GMOCK
|
mark_as_advanced(gmock_build_tests
|
||||||
BUILD_GTEST
|
BUILD_GMOCK
|
||||||
BUILD_SHARED_LIBS
|
BUILD_GTEST
|
||||||
gtest_build_samples
|
BUILD_SHARED_LIBS
|
||||||
gtest_build_tests
|
gtest_build_samples
|
||||||
gtest_disable_pthreads
|
gtest_build_tests
|
||||||
gtest_force_shared_crt
|
gtest_disable_pthreads
|
||||||
gtest_hide_internal_symbols)
|
gtest_force_shared_crt
|
||||||
else()
|
gtest_hide_internal_symbols)
|
||||||
message(STATUS
|
else()
|
||||||
"Google Mock was not found - tests based on that will not build")
|
message(STATUS
|
||||||
|
"Google Mock was not found - tests based on that will not build")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@ -1,55 +1,57 @@
|
|||||||
if (TARGET gmock)
|
if(BUILD_TESTING)
|
||||||
message(STATUS "Google Mock found - building tests")
|
if(TARGET gmock)
|
||||||
|
message(STATUS "Google Mock found - building tests")
|
||||||
|
|
||||||
set(TEST_SOURCES
|
set(TEST_SOURCES
|
||||||
# Framework related source files
|
# Framework related source files
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/Initializer.h
|
${CMAKE_CURRENT_SOURCE_DIR}/Initializer.h
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/Settings.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/Settings.cpp
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/Settings.h
|
${CMAKE_CURRENT_SOURCE_DIR}/Settings.h
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/TestFixture.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/TestFixture.cpp
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/TestFixture.h
|
${CMAKE_CURRENT_SOURCE_DIR}/TestFixture.h
|
||||||
|
|
||||||
# Test related source files
|
# Test related source files
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/AST.FromFile.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/AST.FromFile.cpp
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/BuiltInResource.FromFile.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/BuiltInResource.FromFile.cpp
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/Config.FromFile.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/Config.FromFile.cpp
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/HexFloat.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/HexFloat.cpp
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/Hlsl.FromFile.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/Hlsl.FromFile.cpp
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/Link.FromFile.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/Link.FromFile.cpp
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/Link.FromFile.Vk.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/Link.FromFile.Vk.cpp
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/Pp.FromFile.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/Pp.FromFile.cpp
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/Spv.FromFile.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/Spv.FromFile.cpp
|
||||||
|
|
||||||
# -- Remapper tests
|
# -- Remapper tests
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/Remap.FromFile.cpp)
|
${CMAKE_CURRENT_SOURCE_DIR}/Remap.FromFile.cpp)
|
||||||
|
|
||||||
add_executable(glslangtests ${TEST_SOURCES})
|
add_executable(glslangtests ${TEST_SOURCES})
|
||||||
set_property(TARGET glslangtests PROPERTY FOLDER tests)
|
set_property(TARGET glslangtests PROPERTY FOLDER tests)
|
||||||
glslang_set_link_args(glslangtests)
|
glslang_set_link_args(glslangtests)
|
||||||
install(TARGETS glslangtests
|
install(TARGETS glslangtests
|
||||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||||
|
|
||||||
set(GLSLANG_TEST_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../Test")
|
set(GLSLANG_TEST_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../Test")
|
||||||
# Supply a default test root directory, so that manual testing
|
# Supply a default test root directory, so that manual testing
|
||||||
# doesn't have to specify the --test-root option in the normal
|
# 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.
|
# case that you want to use the tests from the same source tree.
|
||||||
target_compile_definitions(glslangtests
|
target_compile_definitions(glslangtests
|
||||||
PRIVATE GLSLANG_TEST_DIRECTORY="${GLSLANG_TEST_DIRECTORY}")
|
PRIVATE GLSLANG_TEST_DIRECTORY="${GLSLANG_TEST_DIRECTORY}")
|
||||||
target_include_directories(glslangtests PRIVATE
|
target_include_directories(glslangtests PRIVATE
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}
|
${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
${PROJECT_SOURCE_DIR}
|
${PROJECT_SOURCE_DIR}
|
||||||
${gmock_SOURCE_DIR}/include
|
${gmock_SOURCE_DIR}/include
|
||||||
${gtest_SOURCE_DIR}/include)
|
${gtest_SOURCE_DIR}/include)
|
||||||
|
|
||||||
set(LIBRARIES
|
set(LIBRARIES
|
||||||
SPVRemapper glslang OSDependent OGLCompiler glslang
|
SPVRemapper glslang OSDependent OGLCompiler glslang
|
||||||
SPIRV glslang-default-resource-limits)
|
SPIRV glslang-default-resource-limits)
|
||||||
if(ENABLE_HLSL)
|
if(ENABLE_HLSL)
|
||||||
set(LIBRARIES ${LIBRARIES} HLSL)
|
set(LIBRARIES ${LIBRARIES} HLSL)
|
||||||
endif(ENABLE_HLSL)
|
endif(ENABLE_HLSL)
|
||||||
target_link_libraries(glslangtests PRIVATE ${LIBRARIES} gmock)
|
target_link_libraries(glslangtests PRIVATE ${LIBRARIES} gmock)
|
||||||
|
|
||||||
add_test(NAME glslang-gtests
|
add_test(NAME glslang-gtests
|
||||||
COMMAND glslangtests --test-root "${GLSLANG_TEST_DIRECTORY}")
|
COMMAND glslangtests --test-root "${GLSLANG_TEST_DIRECTORY}")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user