mirror of
https://fuchsia.googlesource.com/third_party/pigweed.googlesource.com/pigweed/pigweed
synced 2024-09-20 22:00:58 +00:00
9c35aac84a
Throughout the GN build, a common pattern that occurs is: if (condition) { my_real_target(target_name) { # ... } } else { # Print an error indicating that the user must configure condition. pw_python_action(target_name) { script = "condition_not_met.py" } } This typically requires writing a custom error-printing script for each error message. While some error messages have custom logic, many only need to print a simple string. This change adds a pw_error GN template which prints out a specified error message and the target in which it occurred. Change-Id: Ia93787d9353bac190bf6e1e567e09f9a07d9703f Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/22720 Reviewed-by: Keir Mierle <keir@google.com> Reviewed-by: Armando Montanez <amontanez@google.com> Reviewed-by: Wyatt Hepler <hepler@google.com> Commit-Queue: Alexei Frolov <frolv@google.com>
37 lines
1.1 KiB
Plaintext
37 lines
1.1 KiB
Plaintext
# Copyright 2020 The Pigweed 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
|
|
#
|
|
# https://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("python_action.gni")
|
|
|
|
# Prints an error message and exits the build unsuccessfully.
|
|
#
|
|
# Args:
|
|
# message: The message to print.
|
|
#
|
|
template("pw_error") {
|
|
assert(defined(invoker.message) && invoker.message != "",
|
|
"pw_error requires an error message")
|
|
|
|
pw_python_action(target_name) {
|
|
script = "$dir_pw_build/py/pw_build/error.py"
|
|
args = [
|
|
"--target",
|
|
get_label_info(target_name, "label_no_toolchain"),
|
|
"--message",
|
|
invoker.message,
|
|
]
|
|
stamp = true
|
|
}
|
|
}
|