You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
101 lines
3.6 KiB
101 lines
3.6 KiB
# 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("//build_overrides/pigweed.gni")
|
|
|
|
declare_args() {
|
|
# Enable/disable Arduino builds via group("arduino").
|
|
# Set to the full path of where cores are installed.
|
|
pw_arduino_build_CORE_PATH = ""
|
|
|
|
# Expected args for an Arduino build:
|
|
pw_arduino_build_CORE_NAME = ""
|
|
|
|
# TODO(tonymd): "teensy/avr" here should match the folders in this dir:
|
|
# "../third_party/arduino/cores/$pw_arduino_build_CORE_NAME/hardware/*")
|
|
# For teensy: "teensy/avr", for adafruit-samd: "samd/1.6.2"
|
|
pw_arduino_build_PACKAGE_NAME = ""
|
|
pw_arduino_build_BOARD = ""
|
|
|
|
# Menu options should be a list of strings.
|
|
pw_arduino_build_MENU_OPTIONS = []
|
|
}
|
|
|
|
if (pw_arduino_build_CORE_PATH != "") {
|
|
# Check that enough pw_arduino_build_* args are set to find and use a core.
|
|
_required_args_message =
|
|
"The following build args must all be set: " +
|
|
"pw_arduino_build_CORE_PATH, pw_arduino_build_CORE_NAME, " +
|
|
"pw_arduino_build_PACKAGE_NAME."
|
|
assert(pw_arduino_build_CORE_NAME != "",
|
|
"Missing 'pw_arduino_build_CORE_NAME' build arg. " +
|
|
_required_args_message)
|
|
assert(pw_arduino_build_PACKAGE_NAME != "",
|
|
"Missing 'pw_arduino_build_PACKAGE_NAME' build arg. " +
|
|
_required_args_message)
|
|
|
|
_arduino_selected_core_path =
|
|
rebase_path("$pw_arduino_build_CORE_PATH/$pw_arduino_build_CORE_NAME")
|
|
|
|
arduino_builder_script =
|
|
get_path_info("py/pw_arduino_build/__main__.py", "abspath")
|
|
|
|
# Check pw_arduino_build_BOARD is set
|
|
assert(pw_arduino_build_BOARD != "",
|
|
"pw_arduino_build_BOARD build arg not set. " +
|
|
"To see supported boards run: " +
|
|
"arduino_builder --arduino-package-path " +
|
|
_arduino_selected_core_path + " --arduino-package-name " +
|
|
pw_arduino_build_PACKAGE_NAME + " list-boards")
|
|
|
|
_compiler_path_override =
|
|
rebase_path(getenv("_PW_ACTUAL_ENVIRONMENT_ROOT") + "/cipd/pigweed/bin")
|
|
|
|
arduino_core_library_path = "$_arduino_selected_core_path/hardware/" +
|
|
"$pw_arduino_build_PACKAGE_NAME/libraries"
|
|
|
|
arduino_global_args = [
|
|
"--arduino-package-path",
|
|
_arduino_selected_core_path,
|
|
"--arduino-package-name",
|
|
pw_arduino_build_PACKAGE_NAME,
|
|
"--compiler-path-override",
|
|
_compiler_path_override,
|
|
|
|
# Save config files to "out/arduino_debug/gen/arduino_builder_config.json"
|
|
"--config-file",
|
|
rebase_path(root_gen_dir) + "/arduino_builder_config.json",
|
|
"--save-config",
|
|
]
|
|
|
|
arduino_board_args = [
|
|
"--build-path",
|
|
rebase_path(root_build_dir),
|
|
"--board",
|
|
pw_arduino_build_BOARD,
|
|
]
|
|
if (pw_arduino_build_MENU_OPTIONS != []) {
|
|
arduino_board_args += [ "--menu-options" ]
|
|
arduino_board_args += pw_arduino_build_MENU_OPTIONS
|
|
}
|
|
|
|
arduino_show_command_args = arduino_global_args + [
|
|
"show",
|
|
"--delimit-with-newlines",
|
|
] + arduino_board_args
|
|
|
|
arduino_run_command_args =
|
|
arduino_global_args + [ "run" ] + arduino_board_args
|
|
}
|