blob: feddfeecf1423cc22e05f575de2e6f722b79a7be [file] [log] [blame]
# 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 headers
###############################################################################
dawn_json_generator("dawn_headers_gen") {
target = "dawn_headers"
outputs = [
"src/include/dawn/dawn_proc_table.h",
"src/include/dawn/webgpu.h",
]
}
source_set("dawn_headers") {
all_dependent_configs = [ "${dawn_root}/src/common:dawn_public_include_dirs" ]
public_deps = [ ":dawn_headers_gen" ]
sources = get_target_outputs(":dawn_headers_gen")
sources += [ "${dawn_root}/src/include/dawn/dawn_wsi.h" ]
}
###############################################################################
# Dawn C++ headers
###############################################################################
dawn_json_generator("dawncpp_headers_gen") {
target = "dawncpp_headers"
outputs = [
"src/include/dawn/webgpu_cpp.h",
"src/include/dawn/webgpu_cpp_print.h",
]
}
source_set("dawncpp_headers") {
public_deps = [
":dawn_headers",
":dawncpp_headers_gen",
]
sources = get_target_outputs(":dawncpp_headers_gen")
sources += [ "${dawn_root}/src/include/dawn/EnumClassBitmasks.h" ]
}
###############################################################################
# Dawn C++ wrapper
###############################################################################
dawn_json_generator("dawncpp_gen") {
target = "dawncpp"
outputs = [ "src/dawn/webgpu_cpp.cpp" ]
}
source_set("dawncpp") {
deps = [
":dawncpp_gen",
":dawncpp_headers",
]
sources = get_target_outputs(":dawncpp_gen")
}
###############################################################################
# dawn_proc
###############################################################################
dawn_json_generator("dawn_proc_gen") {
target = "dawn_proc"
outputs = [
"src/dawn/dawn_proc.c",
"src/dawn/dawn_thread_dispatch_proc.cpp",
]
}
dawn_component("dawn_proc") {
DEFINE_PREFIX = "WGPU"
public_deps = [ ":dawn_headers" ]
deps = [ ":dawn_proc_gen" ]
sources = get_target_outputs(":dawn_proc_gen")
sources += [
"${dawn_root}/src/include/dawn/dawn_proc.h",
"${dawn_root}/src/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",
]
}