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()