1# Copyright (C) 2020 The Khronos Group Inc. 2# 3# All rights reserved. 4# 5# Redistribution and use in source and binary forms, with or without 6# modification, are permitted provided that the following conditions 7# are met: 8# 9# Redistributions of source code must retain the above copyright 10# notice, this list of conditions and the following disclaimer. 11# 12# Redistributions in binary form must reproduce the above 13# copyright notice, this list of conditions and the following 14# disclaimer in the documentation and/or other materials provided 15# with the distribution. 16# 17# Neither the name of The Khronos Group Inc. nor the names of its 18# contributors may be used to endorse or promote products derived 19# from this software without specific prior written permission. 20# 21# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 22# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 23# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 24# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 25# COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 26# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 27# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 28# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 29# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 31# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 32# POSSIBILITY OF SUCH DAMAGE. 33 34# Suppress all warnings from external projects. 35set_property(DIRECTORY APPEND PROPERTY COMPILE_OPTIONS -w) 36 37if(GLSLANG_TESTS) 38 if(TARGET gmock) 39 message(STATUS "Google Mock already configured - use it") 40 elseif(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/googletest) 41 # We need to make sure Google Test does not mess up with the 42 # global CRT settings on Windows. 43 if(WIN32) 44 set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) 45 endif(WIN32) 46 # EXCLUDE_FROM_ALL keeps the install target from installing GTEST files. 47 add_subdirectory(googletest EXCLUDE_FROM_ALL) 48 set(GTEST_TARGETS 49 gtest 50 gtest_main 51 gmock 52 gmock_main) 53 foreach(target ${GTEST_TARGETS}) 54 set_property(TARGET ${target} PROPERTY FOLDER gtest) 55 endforeach() 56 mark_as_advanced(gmock_build_tests 57 BUILD_GMOCK 58 BUILD_GTEST 59 BUILD_SHARED_LIBS 60 gtest_build_samples 61 gtest_build_tests 62 gtest_disable_pthreads 63 gtest_force_shared_crt 64 gtest_hide_internal_symbols) 65 else() 66 message(STATUS 67 "Google Mock was not found - tests based on that will not build") 68 endif() 69endif() 70 71if(ENABLE_OPT AND NOT TARGET SPIRV-Tools-opt) 72 if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/spirv-tools) 73 set(SPIRV_SKIP_TESTS ON CACHE BOOL "Skip building SPIRV-Tools tests") 74 add_subdirectory(spirv-tools) 75 endif() 76endif() 77 78