Fix SHADERC_SKIP_TESTS configuration to actually skip all tests.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5038cfb..801d4f0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -4,16 +4,14 @@
message(STATUS "Shaderc: build type is \"${CMAKE_BUILD_TYPE}\".")
-option(SHADERC_SKIP_TESTS
- "Skip building unit tests based on googlemock and googletest"
- ${SHADERC_SKIP_TESTS})
+option(SHADERC_SKIP_TESTS "Skip building tests" ${SHADERC_SKIP_TESTS})
if(NOT ${SHADERC_SKIP_TESTS})
set(SHADERC_ENABLE_TESTS ON)
endif()
if(${SHADERC_ENABLE_TESTS})
- message(STATUS "Configuring Shaderc to build unit tests.")
+ message(STATUS "Configuring Shaderc to build tests.")
else()
- message(STATUS "Configuring Shaderc to avoid building unit tests.")
+ message(STATUS "Configuring Shaderc to avoid building tests.")
endif()
include(cmake/setup_build.cmake)
diff --git a/cmake/utils.cmake b/cmake/utils.cmake
index 0d1b4bb..f807d9f 100644
--- a/cmake/utils.cmake
+++ b/cmake/utils.cmake
@@ -21,10 +21,10 @@
endif()
if (NOT SHADERC_ENABLE_SHARED_CRT)
if (WIN32)
- # For MinGW cross compile, statically link to the libgcc runtime.
- # But it still depends on MSVCRT.dll.
- set_target_properties(${TARGET} PROPERTIES
- LINK_FLAGS "-static -static-libgcc")
+ # For MinGW cross compile, statically link to the libgcc runtime.
+ # But it still depends on MSVCRT.dll.
+ set_target_properties(${TARGET} PROPERTIES
+ LINK_FLAGS "-static -static-libgcc")
endif(WIN32)
endif(NOT SHADERC_ENABLE_SHARED_CRT)
else()
@@ -40,10 +40,10 @@
target_compile_options(${TARGET} PRIVATE -std=c++11)
if (NOT SHADERC_ENABLE_SHARED_CRT)
if (WIN32)
- # For MinGW cross compile, statically link to the C++ runtime.
- # But it still depends on MSVCRT.dll.
- set_target_properties(${TARGET} PROPERTIES
- LINK_FLAGS "-static -static-libgcc -static-libstdc++")
+ # For MinGW cross compile, statically link to the C++ runtime.
+ # But it still depends on MSVCRT.dll.
+ set_target_properties(${TARGET} PROPERTIES
+ LINK_FLAGS "-static -static-libgcc -static-libstdc++")
endif(WIN32)
endif(NOT SHADERC_ENABLE_SHARED_CRT)
endif()
@@ -67,7 +67,7 @@
# and functions whose names start with "nosetest". The test name will be
# ${PREFIX}_nosetests.
function(shaderc_add_nosetests PREFIX)
- if(NOSETESTS_EXE)
+ if("${SHADERC_ENABLE_TESTS}" AND NOSETESTS_EXE)
add_test(
NAME ${PREFIX}_nosetests
COMMAND ${NOSETESTS_EXE} -m "^[Nn]ose[Tt]est" -v
diff --git a/glslc/test/CMakeLists.txt b/glslc/test/CMakeLists.txt
index e00a5d4..7f02328 100644
--- a/glslc/test/CMakeLists.txt
+++ b/glslc/test/CMakeLists.txt
@@ -1,8 +1,9 @@
shaderc_add_nosetests(expect)
shaderc_add_nosetests(glslc_test_framework)
-add_test(NAME glslc_tests
- COMMAND ${PYTHON_EXECUTABLE}
- ${CMAKE_CURRENT_SOURCE_DIR}/glslc_test_framework.py
- $<TARGET_FILE:glslc_exe> --test-dir ${CMAKE_CURRENT_SOURCE_DIR})
-
+if(${SHADERC_ENABLE_TESTS})
+ add_test(NAME glslc_tests
+ COMMAND ${PYTHON_EXECUTABLE}
+ ${CMAKE_CURRENT_SOURCE_DIR}/glslc_test_framework.py
+ $<TARGET_FILE:glslc_exe> --test-dir ${CMAKE_CURRENT_SOURCE_DIR})
+endif()
diff --git a/libshaderc/CMakeLists.txt b/libshaderc/CMakeLists.txt
index 3f979f7..59ff932 100644
--- a/libshaderc/CMakeLists.txt
+++ b/libshaderc/CMakeLists.txt
@@ -32,16 +32,16 @@
shaderc_combine_static_lib(shaderc_combined shaderc)
shaderc_add_tests(
-TEST_PREFIX shaderc_combined
-LINK_LIBS shaderc_combined ${CMAKE_THREAD_LIBS_INIT}
-INCLUDE_DIRS include ${glslang_SOURCE_DIR}
-TEST_NAMES
- shaderc
- shaderc_cpp)
+ TEST_PREFIX shaderc_combined
+ LINK_LIBS shaderc_combined ${CMAKE_THREAD_LIBS_INIT}
+ INCLUDE_DIRS include ${glslang_SOURCE_DIR}
+ TEST_NAMES
+ shaderc
+ shaderc_cpp)
-add_executable(shaderc_c_smoke_test ./src/shaderc_c_smoke_test.c)
-shaderc_default_c_compile_options(shaderc_c_smoke_test)
-
-target_link_libraries(shaderc_c_smoke_test PRIVATE shaderc)
-add_test(NAME shaderc_c_smoke_test COMMAND shaderc_c_smoke_test)
-
+if(${SHADERC_ENABLE_TESTS})
+ add_executable(shaderc_c_smoke_test ./src/shaderc_c_smoke_test.c)
+ shaderc_default_c_compile_options(shaderc_c_smoke_test)
+ target_link_libraries(shaderc_c_smoke_test PRIVATE shaderc)
+ add_test(NAME shaderc_c_smoke_test COMMAND shaderc_c_smoke_test)
+endif()
diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt
index 71bb3c9..8f7f8b2 100644
--- a/third_party/CMakeLists.txt
+++ b/third_party/CMakeLists.txt
@@ -37,43 +37,49 @@
endif()
if (IS_DIRECTORY ${SHADERC_SPIRV_TOOLS_DIR})
+ if ("${SHADERC_SKIP_TESTS}")
+ # Also skip building tests in SPIRV-Tools.
+ set(SPIRV_SKIP_TESTS ON CACHE BOOL "Skip building SPIRV-Tools tests")
+ endif()
add_subdirectory(${SHADERC_SPIRV_TOOLS_DIR} spirv-tools)
endif()
if (NOT TARGET SPIRV-Tools)
message(FATAL_ERROR "SPIRV-Tools was not found - required for compilation")
endif()
-# Configure out-of-source-directory tests for glslang.
-# The glslang project uses a bash script called "runtests" to run tests.
-# The runtests script assumes the glslangValidator executable exists in
-# a location inside the source tree, but we build it elsewhere.
-# We need to copy the test files, fix the path references, and then run tests.
-set(GLSLANG_TEST_SRC_DIR ${SHADERC_GLSLANG_DIR}/Test)
-set(GLSLANG_TEST_BIN_DIR
- ${CMAKE_CURRENT_BINARY_DIR}/test-glslang/${CMAKE_CFG_INTDIR})
+if(${SHADERC_ENABLE_TESTS})
+ # Configure out-of-source-directory tests for glslang.
+ # The glslang project uses a bash script called "runtests" to run tests.
+ # The runtests script assumes the glslangValidator executable exists in
+ # a location inside the source tree, but we build it elsewhere.
+ # We need to copy the test files, fix the path references, and then run tests.
+ set(GLSLANG_TEST_SRC_DIR ${SHADERC_GLSLANG_DIR}/Test)
+ set(GLSLANG_TEST_BIN_DIR
+ ${CMAKE_CURRENT_BINARY_DIR}/test-glslang/${CMAKE_CFG_INTDIR})
-# If we are building in a multi-configuration setting we have
-# to put the glslang tests into their respective subdirectories.
-if (CMAKE_CONFIGURATION_TYPES)
- set(GLSLANG_CONFIGURATION_DIR ${CMAKE_CFG_INTDIR})
-endif()
+ # If we are building in a multi-configuration setting we have
+ # to put the glslang tests into their respective subdirectories.
+ if (CMAKE_CONFIGURATION_TYPES)
+ set(GLSLANG_CONFIGURATION_DIR ${CMAKE_CFG_INTDIR})
+ endif()
-add_custom_target(copy-tests-if-necessary ALL
- COMMAND ${PYTHON_EXECUTABLE}
- ${shaderc_SOURCE_DIR}/utils/copy-tests-if-necessary.py
- ${GLSLANG_TEST_SRC_DIR} ${GLSLANG_TEST_BIN_DIR} ${GLSLANG_CONFIGURATION_DIR}
- COMMENT "Copying and patching glslang tests if needed")
+ add_custom_target(copy-tests-if-necessary ALL
+ COMMAND ${PYTHON_EXECUTABLE}
+ ${shaderc_SOURCE_DIR}/utils/copy-tests-if-necessary.py
+ ${GLSLANG_TEST_SRC_DIR} ${GLSLANG_TEST_BIN_DIR} ${GLSLANG_CONFIGURATION_DIR}
+ COMMENT "Copying and patching glslang tests if needed")
-if (CMAKE_CONFIGURATION_TYPES)
- # If we are running a multi-configuration project,
- # the tests will be in test-glslang/${Configuration}
- add_test(NAME glslang-testsuite
- COMMAND bash runtests
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test-glslang/$<CONFIGURATION>
- )
-else()
- add_test(NAME glslang-testsuite
- COMMAND bash runtests
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test-glslang/
- )
+ if (CMAKE_CONFIGURATION_TYPES)
+ # If we are running a multi-configuration project,
+ # the tests will be in test-glslang/${Configuration}
+ add_test(NAME glslang-testsuite
+ COMMAND bash runtests
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test-glslang/$<CONFIGURATION>
+ )
+ else()
+ add_test(NAME glslang-testsuite
+ COMMAND bash runtests
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test-glslang/
+ )
+ endif()
endif()