yum-mirror/glslang
git clone https://git.yummers.dev/yum-mirror/glslang
c8ec3690
main
1# Copyright (C) 2020-2023 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 34if ( GLSLANG_TESTS) 35if ( TARGET ${ GMOCK_TARGET }) 36message ( STATUS "Google Mock found - building tests" ) 37 38set ( TEST_SOURCES 39# Framework related source files 40${ CMAKE_CURRENT_SOURCE_DIR } /Initializer.h 41${ CMAKE_CURRENT_SOURCE_DIR } /main.cpp 42${ CMAKE_CURRENT_SOURCE_DIR } /Settings.cpp 43${ CMAKE_CURRENT_SOURCE_DIR } /Settings.h 44${ CMAKE_CURRENT_SOURCE_DIR } /TestFixture.cpp 45${ CMAKE_CURRENT_SOURCE_DIR } /TestFixture.h 46 47# Test related source files 48${ CMAKE_CURRENT_SOURCE_DIR } /AST.FromFile.cpp 49${ CMAKE_CURRENT_SOURCE_DIR } /BuiltInResource.FromFile.cpp 50${ CMAKE_CURRENT_SOURCE_DIR } /Common.cpp 51${ CMAKE_CURRENT_SOURCE_DIR } /Config.FromFile.cpp 52${ CMAKE_CURRENT_SOURCE_DIR } /Discard.cpp 53${ CMAKE_CURRENT_SOURCE_DIR } /HexFloat.cpp 54${ CMAKE_CURRENT_SOURCE_DIR } /Hlsl.FromFile.cpp 55${ CMAKE_CURRENT_SOURCE_DIR } /Link.FromFile.cpp 56${ CMAKE_CURRENT_SOURCE_DIR } /Link.FromFile.Vk.cpp 57${ CMAKE_CURRENT_SOURCE_DIR } /LiveTraverser.FromFile.cpp 58${ CMAKE_CURRENT_SOURCE_DIR } /Pp.FromFile.cpp 59${ CMAKE_CURRENT_SOURCE_DIR } /Spv.FromFile.cpp 60${ CMAKE_CURRENT_SOURCE_DIR } /StructName.cpp 61${ CMAKE_CURRENT_SOURCE_DIR } /SpvPatternTest.cpp 62${ CMAKE_CURRENT_SOURCE_DIR } /SpvDebugInfoTest.cpp 63${ CMAKE_CURRENT_SOURCE_DIR } /InvertY.cpp 64${ CMAKE_CURRENT_SOURCE_DIR } /VkRelaxed.FromFile.cpp 65${ CMAKE_CURRENT_SOURCE_DIR } /GlslMapIO.FromFile.cpp 66${ CMAKE_CURRENT_SOURCE_DIR } /UboUnsizedArray.cpp ) 67 68add_executable ( glslangtests ${ TEST_SOURCES }) 69glslang_pch ( glslangtests ${ CMAKE_CURRENT_SOURCE_DIR } /pch.h ) 70set_property ( TARGET glslangtests PROPERTY FOLDER tests ) 71glslang_set_link_args ( glslangtests ) 72 73set ( GLSLANG_TEST_DIRECTORY " ${ CMAKE_CURRENT_SOURCE_DIR } /../Test" ) 74# Supply a default test root directory, so that manual testing 75# doesn't have to specify the --test-root option in the normal 76# case that you want to use the tests from the same source tree. 77target_compile_definitions ( glslangtests 78PRIVATE GLSLANG_TEST_DIRECTORY= " ${ GLSLANG_TEST_DIRECTORY } " 79PRIVATE GLSLANG_TEST_BUILD=1 ) 80target_include_directories ( glslangtests PRIVATE 81${ CMAKE_CURRENT_SOURCE_DIR } 82${ PROJECT_SOURCE_DIR }) 83 84if ( ENABLE_OPT) 85target_link_libraries ( glslangtests 86PRIVATE SPIRV-Tools-opt 87) 88endif () 89 90set ( LIBRARIES 91glslang glslang-default-resource-limits 92$ < $ <AND: $ <CXX_COMPILER_ID:GNU>, $ <VERSION_LESS: $ <CXX_COMPILER_VERSION>,9.0>>:stdc++fs> ) 93 94target_link_libraries ( glslangtests PRIVATE ${ LIBRARIES } ${ GMOCK_TARGET }) 95 96# The TARGET_RUNTIME_DLL_DIRS feature requires CMake 3.27 or greater. 97if ( WIN32AND BUILD_SHARED_LIBSAND CMAKE_VERSIONVERSION_LESS "3.27" ) 98message ( WARNING "The Windows shared library test configuration requires CMake 3.27 or greater" ) 99else () 100add_test ( NAME glslang-gtests 101COMMAND glslangtests --test-root " ${ GLSLANG_TEST_DIRECTORY } " ) 102 103# Prepend paths to shared libraries. 104if ( BUILD_SHARED_LIBS) 105set_tests_properties ( glslang-gtests PROPERTIES ENVIRONMENT_MODIFICATION "PATH=path_list_prepend: $ <JOIN: $ <TARGET_RUNTIME_DLL_DIRS:glslangtests>,\;>" ) 106endif () 107endif () 108endif () 109endif ()