blob: 67991adbac97e25e31ed133936228a2a69556e30 [file] [log] [blame] [edit]
# Copyright 2019 The Dawn Authors
#
# 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("../../scripts/dawn_overrides_with_defaults.gni")
import("${dawn_root}/generator/dawn_generator.gni")
import("${dawn_root}/scripts/dawn_component.gni")
###############################################################################
# Dawn C++ wrapper
###############################################################################
dawn_json_generator("cpp_gen") {
target = "cpp"
outputs = [ "src/dawn/webgpu_cpp.cpp" ]
}
source_set("cpp") {
deps = [
":cpp_gen",
"${dawn_root}/include/dawn:cpp_headers",
]
sources = get_target_outputs(":cpp_gen")
}
###############################################################################
# Dawn proc
###############################################################################
dawn_json_generator("proc_gen") {
target = "proc"
outputs = [
"src/dawn/dawn_proc.c",
"src/dawn/dawn_thread_dispatch_proc.cpp",
]
}
dawn_component("proc") {
DEFINE_PREFIX = "WGPU"
public_deps = [ "${dawn_root}/include/dawn:headers" ]
deps = [ ":proc_gen" ]
sources = get_target_outputs(":proc_gen")
sources += [
"${dawn_root}/include/dawn/dawn_proc.h",
"${dawn_root}/include/dawn/dawn_thread_dispatch_proc.h",
]
}
###############################################################################
# Other generated files (upstream header, emscripten header, emscripten bits)
###############################################################################
dawn_json_generator("webgpu_headers_gen") {
target = "webgpu_headers"
outputs = [ "webgpu-headers/webgpu.h" ]
}
dawn_json_generator("emscripten_bits_gen") {
target = "emscripten_bits"
outputs = [
"emscripten-bits/webgpu.h",
"emscripten-bits/webgpu_cpp.h",
"emscripten-bits/webgpu_cpp.cpp",
"emscripten-bits/webgpu_struct_info.json",
"emscripten-bits/library_webgpu_enum_tables.js",
]
}
################################################################################
# Build target aliases
# TODO(crbug.com/dawn/1275) - remove these
################################################################################
group("dawncpp") {
public_deps = [ ":cpp" ]
}
group("dawncpp_headers") {
public_deps = [ "${dawn_root}/include/dawn:cpp_headers" ]
}
group("dawn_proc") {
public_deps = [ ":proc" ]
}
group("dawn_headers") {
public_deps = [ "${dawn_root}/include/dawn:headers" ]
}
group("dawn_cpp") {
public_deps = [ ":cpp" ]
}