|  | # Copyright 2024 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. | 
|  |  | 
|  | load("@bazel_skylib//rules:native_binary.bzl", "native_binary") | 
|  |  | 
|  | def host_console(name, binary, extra_args = []): | 
|  | """Create a host binary console run target. | 
|  |  | 
|  | Args: | 
|  | name: target name | 
|  | binary: target binary the console is for | 
|  | extra_args: additional arguments added to the console invocation | 
|  | """ | 
|  | native_binary( | 
|  | name = name, | 
|  | src = "//tools:console", | 
|  | args = [ | 
|  | # This arg lets us skip manual port selection. | 
|  | "--socket", | 
|  | "default", | 
|  | "--config-file", | 
|  | "$(rootpath //:pw_console_config)", | 
|  | ] + extra_args, | 
|  | data = [ | 
|  | binary, | 
|  | "//:pw_console_config", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | def device_console(name, binary, extra_args = []): | 
|  | """Create a device binary console run target. | 
|  |  | 
|  | Makes running a console for a binary easy, and ensures the associated binary is | 
|  | up to date (but does not flash the device). | 
|  |  | 
|  | Args: | 
|  | name: target name | 
|  | binary: target binary the console is for | 
|  | extra_args: additional arguments added to the console invocation | 
|  | """ | 
|  | native_binary( | 
|  | name = name, | 
|  | src = "//tools:console", | 
|  | args = [ | 
|  | "-b", | 
|  | "115200", | 
|  | "--token-databases", | 
|  | "$(rootpath " + binary + ")", | 
|  | "--config-file", | 
|  | "$(rootpath //:pw_console_config)", | 
|  | ] + extra_args, | 
|  | data = [ | 
|  | binary, | 
|  | "//:pw_console_config", | 
|  | ], | 
|  | ) |