blob: 4c0264892fb77d00b0ade0ba521dd6c3ea59ac20 [file] [log] [blame] [edit]
# 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" ]
}