1*03ce13f7SAndroid Build Coastguard Worker# Copyright 2019 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 Workerimport("../../src/swiftshader.gni") 16*03ce13f7SAndroid Build Coastguard Worker 17*03ce13f7SAndroid Build Coastguard Workerimport("//testing/test.gni") 18*03ce13f7SAndroid Build Coastguard Worker 19*03ce13f7SAndroid Build Coastguard Workerconfig("marl_config") { 20*03ce13f7SAndroid Build Coastguard Worker include_dirs = [ "include" ] 21*03ce13f7SAndroid Build Coastguard Worker if (!is_win) { 22*03ce13f7SAndroid Build Coastguard Worker defines = [ "MARL_USE_PTHREAD_THREAD_LOCAL=1" ] 23*03ce13f7SAndroid Build Coastguard Worker } 24*03ce13f7SAndroid Build Coastguard Worker} 25*03ce13f7SAndroid Build Coastguard Worker 26*03ce13f7SAndroid Build Coastguard Workerswiftshader_source_set("Marl_headers") { 27*03ce13f7SAndroid Build Coastguard Worker sources = [ 28*03ce13f7SAndroid Build Coastguard Worker "include/marl/blockingcall.h", 29*03ce13f7SAndroid Build Coastguard Worker "include/marl/conditionvariable.h", 30*03ce13f7SAndroid Build Coastguard Worker "include/marl/containers.h", 31*03ce13f7SAndroid Build Coastguard Worker "include/marl/debug.h", 32*03ce13f7SAndroid Build Coastguard Worker "include/marl/defer.h", 33*03ce13f7SAndroid Build Coastguard Worker "include/marl/event.h", 34*03ce13f7SAndroid Build Coastguard Worker "include/marl/finally.h", 35*03ce13f7SAndroid Build Coastguard Worker "include/marl/memory.h", 36*03ce13f7SAndroid Build Coastguard Worker "include/marl/mutex.h", 37*03ce13f7SAndroid Build Coastguard Worker "include/marl/parallelize.h", 38*03ce13f7SAndroid Build Coastguard Worker "include/marl/pool.h", 39*03ce13f7SAndroid Build Coastguard Worker "include/marl/sanitizers.h", 40*03ce13f7SAndroid Build Coastguard Worker "include/marl/scheduler.h", 41*03ce13f7SAndroid Build Coastguard Worker "include/marl/task.h", 42*03ce13f7SAndroid Build Coastguard Worker "include/marl/thread.h", 43*03ce13f7SAndroid Build Coastguard Worker "include/marl/ticket.h", 44*03ce13f7SAndroid Build Coastguard Worker "include/marl/trace.h", 45*03ce13f7SAndroid Build Coastguard Worker "include/marl/tsa.h", 46*03ce13f7SAndroid Build Coastguard Worker "include/marl/waitgroup.h", 47*03ce13f7SAndroid Build Coastguard Worker ] 48*03ce13f7SAndroid Build Coastguard Worker 49*03ce13f7SAndroid Build Coastguard Worker public_configs = [ ":marl_config" ] 50*03ce13f7SAndroid Build Coastguard Worker} 51*03ce13f7SAndroid Build Coastguard Worker 52*03ce13f7SAndroid Build Coastguard Workerswiftshader_source_set("Marl") { 53*03ce13f7SAndroid Build Coastguard Worker sources = [ 54*03ce13f7SAndroid Build Coastguard Worker "src/debug.cpp", 55*03ce13f7SAndroid Build Coastguard Worker "src/memory.cpp", 56*03ce13f7SAndroid Build Coastguard Worker "src/scheduler.cpp", 57*03ce13f7SAndroid Build Coastguard Worker "src/thread.cpp", 58*03ce13f7SAndroid Build Coastguard Worker "src/trace.cpp", 59*03ce13f7SAndroid Build Coastguard Worker ] 60*03ce13f7SAndroid Build Coastguard Worker 61*03ce13f7SAndroid Build Coastguard Worker if (!is_win) { 62*03ce13f7SAndroid Build Coastguard Worker if (current_cpu == "arm64") { 63*03ce13f7SAndroid Build Coastguard Worker sources += [ 64*03ce13f7SAndroid Build Coastguard Worker "src/osfiber_aarch64.c", 65*03ce13f7SAndroid Build Coastguard Worker "src/osfiber_asm_aarch64.h", 66*03ce13f7SAndroid Build Coastguard Worker "src/osfiber_asm_aarch64.S", 67*03ce13f7SAndroid Build Coastguard Worker ] 68*03ce13f7SAndroid Build Coastguard Worker } else if (current_cpu == "arm") { 69*03ce13f7SAndroid Build Coastguard Worker sources += [ 70*03ce13f7SAndroid Build Coastguard Worker "src/osfiber_arm.c", 71*03ce13f7SAndroid Build Coastguard Worker "src/osfiber_asm_arm.h", 72*03ce13f7SAndroid Build Coastguard Worker "src/osfiber_asm_arm.S", 73*03ce13f7SAndroid Build Coastguard Worker ] 74*03ce13f7SAndroid Build Coastguard Worker } else if (current_cpu == "mips64") { 75*03ce13f7SAndroid Build Coastguard Worker sources += [ 76*03ce13f7SAndroid Build Coastguard Worker "src/osfiber_mips64.c", 77*03ce13f7SAndroid Build Coastguard Worker "src/osfiber_asm_mips64.h", 78*03ce13f7SAndroid Build Coastguard Worker "src/osfiber_asm_mips64.S", 79*03ce13f7SAndroid Build Coastguard Worker ] 80*03ce13f7SAndroid Build Coastguard Worker } else if (current_cpu == "ppc64") { 81*03ce13f7SAndroid Build Coastguard Worker sources += [ 82*03ce13f7SAndroid Build Coastguard Worker "src/osfiber_ppc64.c", 83*03ce13f7SAndroid Build Coastguard Worker "src/osfiber_asm_ppc64.h", 84*03ce13f7SAndroid Build Coastguard Worker "src/osfiber_asm_ppc64.S", 85*03ce13f7SAndroid Build Coastguard Worker ] 86*03ce13f7SAndroid Build Coastguard Worker } else if (current_cpu == "riscv64") { 87*03ce13f7SAndroid Build Coastguard Worker sources += [ 88*03ce13f7SAndroid Build Coastguard Worker "src/osfiber_rv64.c", 89*03ce13f7SAndroid Build Coastguard Worker "src/osfiber_asm_rv64.h", 90*03ce13f7SAndroid Build Coastguard Worker "src/osfiber_asm_rv64.S", 91*03ce13f7SAndroid Build Coastguard Worker ] 92*03ce13f7SAndroid Build Coastguard Worker } else if (current_cpu == "loong64") { 93*03ce13f7SAndroid Build Coastguard Worker sources += [ 94*03ce13f7SAndroid Build Coastguard Worker "src/osfiber_loongarch64.c", 95*03ce13f7SAndroid Build Coastguard Worker "src/osfiber_asm_loongarch64.h", 96*03ce13f7SAndroid Build Coastguard Worker "src/osfiber_asm_loongarch64.S", 97*03ce13f7SAndroid Build Coastguard Worker ] 98*03ce13f7SAndroid Build Coastguard Worker } else if (current_cpu == "x64") { 99*03ce13f7SAndroid Build Coastguard Worker sources += [ 100*03ce13f7SAndroid Build Coastguard Worker "src/osfiber_x64.c", 101*03ce13f7SAndroid Build Coastguard Worker "src/osfiber_asm_x64.h", 102*03ce13f7SAndroid Build Coastguard Worker "src/osfiber_asm_x64.S", 103*03ce13f7SAndroid Build Coastguard Worker ] 104*03ce13f7SAndroid Build Coastguard Worker } else if (current_cpu == "x86") { 105*03ce13f7SAndroid Build Coastguard Worker sources += [ 106*03ce13f7SAndroid Build Coastguard Worker "src/osfiber_x86.c", 107*03ce13f7SAndroid Build Coastguard Worker "src/osfiber_asm_x86.h", 108*03ce13f7SAndroid Build Coastguard Worker "src/osfiber_asm_x86.S", 109*03ce13f7SAndroid Build Coastguard Worker ] 110*03ce13f7SAndroid Build Coastguard Worker } else { 111*03ce13f7SAndroid Build Coastguard Worker assert(false, "Unhandled value for current-cpu=" + current_cpu) 112*03ce13f7SAndroid Build Coastguard Worker } 113*03ce13f7SAndroid Build Coastguard Worker } 114*03ce13f7SAndroid Build Coastguard Worker 115*03ce13f7SAndroid Build Coastguard Worker public_deps = [ ":Marl_headers" ] 116*03ce13f7SAndroid Build Coastguard Worker} 117