| # 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", |
| ] |
| } |
| |
| dawn_json_generator("emscripten_bits_gen") { |
| target = "emscripten_bits" |
| outputs = [ |
| "src/dawn/webgpu_struct_info.json", |
| "src/dawn/library_webgpu_enum_tables.js", |
| ] |
| } |
| |
| 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", |
| ] |
| } |