| # 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" ] |
| } |