1*03ce13f7SAndroid Build Coastguard Worker# Copyright 2020 The SwiftShader Authors. All Rights Reserved. 2*03ce13f7SAndroid Build Coastguard Worker# 3*03ce13f7SAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); 4*03ce13f7SAndroid Build Coastguard Worker# you may not use this file except in compliance with the License. 5*03ce13f7SAndroid Build Coastguard Worker# You may obtain a copy of the License at 6*03ce13f7SAndroid Build Coastguard Worker# 7*03ce13f7SAndroid Build Coastguard Worker# http://www.apache.org/licenses/LICENSE-2.0 8*03ce13f7SAndroid Build Coastguard Worker# 9*03ce13f7SAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 10*03ce13f7SAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, 11*03ce13f7SAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*03ce13f7SAndroid Build Coastguard Worker# See the License for the specific language governing permissions and 13*03ce13f7SAndroid Build Coastguard Worker# limitations under the License. 14*03ce13f7SAndroid Build Coastguard Worker 15*03ce13f7SAndroid Build Coastguard Workerset(ROOT_PROJECT_COMPILE_OPTIONS 16*03ce13f7SAndroid Build Coastguard Worker ${SWIFTSHADER_COMPILE_OPTIONS} 17*03ce13f7SAndroid Build Coastguard Worker ${WARNINGS_AS_ERRORS} 18*03ce13f7SAndroid Build Coastguard Worker) 19*03ce13f7SAndroid Build Coastguard Worker 20*03ce13f7SAndroid Build Coastguard Workerset(PIPELINE_SRC_FILES 21*03ce13f7SAndroid Build Coastguard Worker ComputeProgram.cpp 22*03ce13f7SAndroid Build Coastguard Worker ComputeProgram.hpp 23*03ce13f7SAndroid Build Coastguard Worker Constants.cpp 24*03ce13f7SAndroid Build Coastguard Worker Constants.hpp 25*03ce13f7SAndroid Build Coastguard Worker PixelProgram.cpp 26*03ce13f7SAndroid Build Coastguard Worker PixelProgram.hpp 27*03ce13f7SAndroid Build Coastguard Worker PixelRoutine.cpp 28*03ce13f7SAndroid Build Coastguard Worker PixelRoutine.hpp 29*03ce13f7SAndroid Build Coastguard Worker SamplerCore.cpp 30*03ce13f7SAndroid Build Coastguard Worker SamplerCore.hpp 31*03ce13f7SAndroid Build Coastguard Worker SetupRoutine.cpp 32*03ce13f7SAndroid Build Coastguard Worker SetupRoutine.hpp 33*03ce13f7SAndroid Build Coastguard Worker ShaderCore.cpp 34*03ce13f7SAndroid Build Coastguard Worker ShaderCore.hpp 35*03ce13f7SAndroid Build Coastguard Worker SpirvBinary.hpp 36*03ce13f7SAndroid Build Coastguard Worker SpirvBinary.cpp 37*03ce13f7SAndroid Build Coastguard Worker SpirvID.hpp 38*03ce13f7SAndroid Build Coastguard Worker SpirvProfiler.hpp 39*03ce13f7SAndroid Build Coastguard Worker SpirvProfiler.cpp 40*03ce13f7SAndroid Build Coastguard Worker SpirvShader.cpp 41*03ce13f7SAndroid Build Coastguard Worker SpirvShader.hpp 42*03ce13f7SAndroid Build Coastguard Worker SpirvShaderArithmetic.cpp 43*03ce13f7SAndroid Build Coastguard Worker SpirvShaderControlFlow.cpp 44*03ce13f7SAndroid Build Coastguard Worker SpirvShaderDebugger.cpp 45*03ce13f7SAndroid Build Coastguard Worker SpirvShaderGLSLstd450.cpp 46*03ce13f7SAndroid Build Coastguard Worker SpirvShaderGroup.cpp 47*03ce13f7SAndroid Build Coastguard Worker SpirvShaderImage.cpp 48*03ce13f7SAndroid Build Coastguard Worker SpirvShaderInstructions.cpp 49*03ce13f7SAndroid Build Coastguard Worker SpirvShaderMemory.cpp 50*03ce13f7SAndroid Build Coastguard Worker SpirvShaderSampling.cpp 51*03ce13f7SAndroid Build Coastguard Worker SpirvShaderSpec.cpp 52*03ce13f7SAndroid Build Coastguard Worker VertexProgram.cpp 53*03ce13f7SAndroid Build Coastguard Worker VertexProgram.hpp 54*03ce13f7SAndroid Build Coastguard Worker VertexRoutine.cpp 55*03ce13f7SAndroid Build Coastguard Worker VertexRoutine.hpp 56*03ce13f7SAndroid Build Coastguard Worker) 57*03ce13f7SAndroid Build Coastguard Worker 58*03ce13f7SAndroid Build Coastguard Workerset(PIPELINE_COMPILE_OPTIONS "") 59*03ce13f7SAndroid Build Coastguard Workerif(CMAKE_CXX_COMPILER_ID MATCHES "Clang") 60*03ce13f7SAndroid Build Coastguard Worker list(APPEND PIPELINE_COMPILE_OPTIONS 61*03ce13f7SAndroid Build Coastguard Worker "-Wexit-time-destructors" # declaration requires an exit-time destructor 62*03ce13f7SAndroid Build Coastguard Worker ) 63*03ce13f7SAndroid Build Coastguard Workerendif() 64*03ce13f7SAndroid Build Coastguard Worker 65*03ce13f7SAndroid Build Coastguard Workeradd_library(vk_pipeline EXCLUDE_FROM_ALL 66*03ce13f7SAndroid Build Coastguard Worker ${PIPELINE_SRC_FILES} 67*03ce13f7SAndroid Build Coastguard Worker) 68*03ce13f7SAndroid Build Coastguard Worker 69*03ce13f7SAndroid Build Coastguard Worker# Add SPIRV-Tools dep 70*03ce13f7SAndroid Build Coastguard Workerif (NOT TARGET SPIRV-Tools) 71*03ce13f7SAndroid Build Coastguard Worker message(FATAL_ERROR "Missing required target: SPIRV-Tools") 72*03ce13f7SAndroid Build Coastguard Workerendif() 73*03ce13f7SAndroid Build Coastguard Worker 74*03ce13f7SAndroid Build Coastguard Workerset_target_properties(core_tables PROPERTIES FOLDER "SPIRV-Tools build") 75*03ce13f7SAndroid Build Coastguard Workerset_target_properties(enum_string_mapping PROPERTIES FOLDER "SPIRV-Tools build") 76*03ce13f7SAndroid Build Coastguard Workerset_target_properties(extinst_tables PROPERTIES FOLDER "SPIRV-Tools build") 77*03ce13f7SAndroid Build Coastguard Worker 78*03ce13f7SAndroid Build Coastguard Workerset_target_properties(vk_pipeline PROPERTIES 79*03ce13f7SAndroid Build Coastguard Worker POSITION_INDEPENDENT_CODE 1 80*03ce13f7SAndroid Build Coastguard Worker FOLDER "SwiftShader VK" 81*03ce13f7SAndroid Build Coastguard Worker) 82*03ce13f7SAndroid Build Coastguard Worker 83*03ce13f7SAndroid Build Coastguard Workertarget_include_directories(vk_pipeline 84*03ce13f7SAndroid Build Coastguard Worker PUBLIC 85*03ce13f7SAndroid Build Coastguard Worker ".." 86*03ce13f7SAndroid Build Coastguard Worker "${SWIFTSHADER_DIR}/include" 87*03ce13f7SAndroid Build Coastguard Worker "${SPIRV-Headers_SOURCE_DIR}/include" 88*03ce13f7SAndroid Build Coastguard Worker "${SPIRV_TOOLS_EXT_INC_DIR}" 89*03ce13f7SAndroid Build Coastguard Worker) 90*03ce13f7SAndroid Build Coastguard Worker 91*03ce13f7SAndroid Build Coastguard Workertarget_compile_options(vk_pipeline 92*03ce13f7SAndroid Build Coastguard Worker PRIVATE 93*03ce13f7SAndroid Build Coastguard Worker ${ROOT_PROJECT_COMPILE_OPTIONS} 94*03ce13f7SAndroid Build Coastguard Worker ${PIPELINE_COMPILE_OPTIONS} 95*03ce13f7SAndroid Build Coastguard Worker) 96*03ce13f7SAndroid Build Coastguard Worker 97*03ce13f7SAndroid Build Coastguard Workertarget_link_options(vk_pipeline 98*03ce13f7SAndroid Build Coastguard Worker PUBLIC 99*03ce13f7SAndroid Build Coastguard Worker ${SWIFTSHADER_LINK_FLAGS} 100*03ce13f7SAndroid Build Coastguard Worker) 101*03ce13f7SAndroid Build Coastguard Worker 102*03ce13f7SAndroid Build Coastguard Workertarget_link_libraries(vk_pipeline 103*03ce13f7SAndroid Build Coastguard Worker PUBLIC 104*03ce13f7SAndroid Build Coastguard Worker vk_base 105*03ce13f7SAndroid Build Coastguard Worker vk_system 106*03ce13f7SAndroid Build Coastguard Worker marl 107*03ce13f7SAndroid Build Coastguard Worker Reactor 108*03ce13f7SAndroid Build Coastguard Worker SPIRV-Tools 109*03ce13f7SAndroid Build Coastguard Worker SPIRV-Tools-opt 110*03ce13f7SAndroid Build Coastguard Worker) 111