# Copyright 2013 The Flutter Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import("//flutter/common/config.gni") import("//flutter/testing/testing.gni") # ------------------------------------------------------------------------------ # @brief Define an Impeller component. Components are different # Impeller subsystems part of the umbrella framework. # # @param[optional] target_type The type of the component. This can be any of # the target types supported by GN. Defaults to # source_set. If Impeller is not supported on the # target platform, this target is a no-op. # template("impeller_component") { if (defined(invoker.testonly) && invoker.testonly && !enable_unittests) { group(target_name) { not_needed(invoker, "*") } } else { target_type = "source_set" if (defined(invoker.target_type)) { target_type = invoker.target_type } target(target_type, target_name) { forward_variables_from(invoker, "*") if (!defined(invoker.public_configs)) { public_configs = [] } public_configs += [ "//flutter/impeller:impeller_public_config" ] if (!defined(invoker.cflags)) { cflags = [] } cflags += [ "-Wthread-safety-analysis" ] if (!defined(invoker.cflags_objc)) { cflags_objc = [] } if (is_ios || is_mac) { cflags_objc += flutter_cflags_objc_arc } if (!defined(invoker.cflags_objcc)) { cflags_objcc = [] } if (is_ios || is_mac) { cflags_objcc += flutter_cflags_objcc_arc } } } }