| # Copyright 2020 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") | 
 |  | 
 | group("dawn_samples") { | 
 |   deps = [ | 
 |     ":Animometer", | 
 |     ":CHelloTriangle", | 
 |     ":ComputeBoids", | 
 |     ":CppHelloTriangle", | 
 |     ":CubeReflection", | 
 |     ":ManualSwapChainTest", | 
 |   ] | 
 | } | 
 |  | 
 | # Static library to contain code and dependencies common to all samples | 
 | static_library("dawn_sample_utils") { | 
 |   sources = [ | 
 |     "SampleUtils.cpp", | 
 |     "SampleUtils.h", | 
 |   ] | 
 |  | 
 |   # Export all of these as public deps so that `gn check` allows includes | 
 |   public_deps = [ | 
 |     "${dawn_root}/src/common", | 
 |     "${dawn_root}/src/dawn:dawn_proc", | 
 |     "${dawn_root}/src/dawn:dawncpp", | 
 |     "${dawn_root}/src/dawn_native", | 
 |     "${dawn_root}/src/dawn_wire", | 
 |     "${dawn_root}/src/utils:dawn_bindings", | 
 |     "${dawn_root}/src/utils:dawn_glfw", | 
 |     "${dawn_root}/src/utils:dawn_utils", | 
 |   ] | 
 |   public_configs = [ "${dawn_root}/src/common:dawn_internal" ] | 
 | } | 
 |  | 
 | # Template for samples to avoid listing dawn_sample_utils as a dep every time | 
 | template("dawn_sample") { | 
 |   executable(target_name) { | 
 |     deps = [ ":dawn_sample_utils" ] | 
 |     forward_variables_from(invoker, "*", [ "deps" ]) | 
 |  | 
 |     if (defined(invoker.deps)) { | 
 |       deps += invoker.deps | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | dawn_sample("CppHelloTriangle") { | 
 |   sources = [ "CppHelloTriangle.cpp" ] | 
 | } | 
 |  | 
 | dawn_sample("CHelloTriangle") { | 
 |   sources = [ "CHelloTriangle.cpp" ] | 
 | } | 
 |  | 
 | dawn_sample("ComputeBoids") { | 
 |   sources = [ "ComputeBoids.cpp" ] | 
 |   deps = [ "${dawn_root}/third_party/gn/glm" ] | 
 | } | 
 |  | 
 | dawn_sample("Animometer") { | 
 |   sources = [ "Animometer.cpp" ] | 
 | } | 
 |  | 
 | dawn_sample("CubeReflection") { | 
 |   sources = [ "CubeReflection.cpp" ] | 
 |   deps = [ "${dawn_root}/third_party/gn/glm" ] | 
 | } | 
 |  | 
 | dawn_sample("ManualSwapChainTest") { | 
 |   sources = [ "ManualSwapChainTest.cpp" ] | 
 | } |