| # Copyright 2019 The SwiftShader Authors. All Rights Reserved. | |
| # | |
| # Licensed under the Apache License, Version 2.0 (the "License"); | |
| # you may not use this file except in compliance with the License. | |
| # You may obtain a copy of the License at | |
| # | |
| # http://www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # Unless required by applicable law or agreed to in writing, software | |
| # distributed under the License is distributed on an "AS IS" BASIS, | |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| # See the License for the specific language governing permissions and | |
| # limitations under the License. | |
| import("../../src/swiftshader.gni") | |
| import("//testing/test.gni") | |
| config("marl_config") { | |
| include_dirs = [ "include" ] | |
| if (!is_win) { | |
| defines = [ "MARL_USE_PTHREAD_THREAD_LOCAL=1" ] | |
| } | |
| } | |
| swiftshader_source_set("Marl_headers") { | |
| sources = [ | |
| "include/marl/blockingcall.h", | |
| "include/marl/conditionvariable.h", | |
| "include/marl/containers.h", | |
| "include/marl/debug.h", | |
| "include/marl/defer.h", | |
| "include/marl/event.h", | |
| "include/marl/finally.h", | |
| "include/marl/memory.h", | |
| "include/marl/mutex.h", | |
| "include/marl/parallelize.h", | |
| "include/marl/pool.h", | |
| "include/marl/sanitizers.h", | |
| "include/marl/scheduler.h", | |
| "include/marl/task.h", | |
| "include/marl/thread.h", | |
| "include/marl/ticket.h", | |
| "include/marl/trace.h", | |
| "include/marl/tsa.h", | |
| "include/marl/waitgroup.h", | |
| ] | |
| public_configs = [ ":marl_config" ] | |
| } | |
| swiftshader_source_set("Marl") { | |
| sources = [ | |
| "src/debug.cpp", | |
| "src/memory.cpp", | |
| "src/scheduler.cpp", | |
| "src/thread.cpp", | |
| "src/trace.cpp", | |
| ] | |
| if (!is_win) { | |
| if (current_cpu == "arm64") { | |
| sources += [ | |
| "src/osfiber_aarch64.c", | |
| "src/osfiber_asm_aarch64.h", | |
| "src/osfiber_asm_aarch64.S", | |
| ] | |
| } else if (current_cpu == "arm") { | |
| sources += [ | |
| "src/osfiber_arm.c", | |
| "src/osfiber_asm_arm.h", | |
| "src/osfiber_asm_arm.S", | |
| ] | |
| } else if (current_cpu == "mips64") { | |
| sources += [ | |
| "src/osfiber_mips64.c", | |
| "src/osfiber_asm_mips64.h", | |
| "src/osfiber_asm_mips64.S", | |
| ] | |
| } else if (current_cpu == "ppc64") { | |
| sources += [ | |
| "src/osfiber_ppc64.c", | |
| "src/osfiber_asm_ppc64.h", | |
| "src/osfiber_asm_ppc64.S", | |
| ] | |
| } else if (current_cpu == "riscv64") { | |
| sources += [ | |
| "src/osfiber_rv64.c", | |
| "src/osfiber_asm_rv64.h", | |
| "src/osfiber_asm_rv64.S", | |
| ] | |
| } else if (current_cpu == "loong64") { | |
| sources += [ | |
| "src/osfiber_loongarch64.c", | |
| "src/osfiber_asm_loongarch64.h", | |
| "src/osfiber_asm_loongarch64.S", | |
| ] | |
| } else if (current_cpu == "x64") { | |
| sources += [ | |
| "src/osfiber_x64.c", | |
| "src/osfiber_asm_x64.h", | |
| "src/osfiber_asm_x64.S", | |
| ] | |
| } else if (current_cpu == "x86") { | |
| sources += [ | |
| "src/osfiber_x86.c", | |
| "src/osfiber_asm_x86.h", | |
| "src/osfiber_asm_x86.S", | |
| ] | |
| } else { | |
| assert(false, "Unhandled value for current-cpu=" + current_cpu) | |
| } | |
| } | |
| public_deps = [ ":Marl_headers" ] | |
| } |