# Copyright 2021 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # Defines a template for Swift source files. The default module_name # of the target is the entire target label (without the leading //) # with all "/" and ":" replaced with "_". template("swift_source_set") { _target_name = target_name source_set(target_name) { forward_variables_from(invoker, "*", TESTONLY_AND_VISIBILITY) forward_variables_from(invoker, TESTONLY_AND_VISIBILITY) if (!defined(module_name)) { _target_label = get_label_info(":$_target_name", "label_no_toolchain") # Strip the // from the beginning of the label. _target_label = string_replace(_target_label, "//", "", 1) module_name = string_replace(string_replace(_target_label, "/", "_"), ":", "_") } } } set_defaults("swift_source_set") { configs = default_compiler_configs }