mirror of
https://github.com/raspberrypi/pico-sdk.git
synced 2025-02-06 03:40:02 +00:00
6ff3e4fab2
* Add host Bazel build Updates target_compatible_with across the repo to ensure that wildcard builds for both host and rp2040 succeed. * Get unit tests building * Add Python script to identify build system differences Uses the build system tags to make it easier to identify differences between the CMake and Bazel builds. * Temporarily disable pico divider test * Support PICO_BARE_METAL in Bazel * Support PICO_NO_GC_SECTIONS in Bazel * Support boot2 configuration in Bazel Adds support for PICO_DEFAULT_BOOT_STAGE2 and PICO_DEFAULT_BOOT_STAGE2_FILE in the Bazel build. * Allowlist some CMake-only options * Support CXX configuration options in Bazel * Move multiple_choice_flag.bzl * Support all pico boards * Support linking multiple stdio implementations Changes the Bazel build so stdio implementations are no longer mutually exclusive. * Add PICO_BOOT_STAGE2_LINK_IMAGE * Support PICO_CMSIS_PATH in Bazel * Support PICO_USE_DEFAULT_MAX_PAGE_SIZE in Bazel * Silence PICO_CMSIS_VENDOR and PICO_CMSIS_DEVICE differences * Support PICO_STDIO_USB_CONNECT_WAIT_TIMEOUT_MS in Bazel * Properly support version defines * Support embedding binary info in Bazel * Embed build type in binary * Support different linker scripts in Bazel build * Finish out missing PICO_BUILD_DEFINE in Bazel build * Support PICO_NO_TARGET_NAME * Reorganize initial configuration options in Bazel Cleans up and reorganizes some of the initial configuration options added to the Bazel build so everything is consistent. * Add builds for pioasm and elf2uf2 * Use Python rules from rules_python * Actually link in output formats in pioasm tool * Make tools have public visibility * Add UF2 Bazel aspect * Add TODOs for pioasm/uf2 helpers * Fix compile flag typo * Update Bazel SDK configuration strings to match recent CMake changes * Fix pico_divider test * Clean up straggling TODOs * Clarify pico_stdio_test compatibility * Initial Bazel Pico W support * Add new files from develop * Clean up compatibility expressions in Bazel build * Clean up rp2 constraint handling in Bazel * More Bazel docs cleanup * Format Bazel build files * Consolidate transitions in the Pico SDK * Make every _allowlist_function_transition explicit * More docs cleanup * Add a few missing defines * Improve PICO_CONFIG_HEADER correctness in Bazel * Minor docs clarifications
58 lines
1.9 KiB
Python
58 lines
1.9 KiB
Python
load("@rules_python//python:defs.bzl", "py_binary")
|
|
|
|
package(default_visibility = ["//visibility:public"])
|
|
|
|
py_binary(
|
|
name = "generate_version_header",
|
|
srcs = ["generate_version_header.py"],
|
|
visibility = ["//:__subpackages__"],
|
|
)
|
|
|
|
# This isn't actually generated, it just uses the same name
|
|
# to make it show up easier in searches.
|
|
#
|
|
# Rather than generating lists of headers to match CMake, the Bazel build
|
|
# opts to have a static header that transitively include two known headers.
|
|
# By default, empty header files are included, and users/platforms are expected
|
|
# to specify an appropriate `cc_library` to replace them.
|
|
#
|
|
# You tell bazel which `cc_library` provides the respective headers by
|
|
# configuring these `label_flag`s:
|
|
#
|
|
# # Specify the library that provides "pico_config_extra_headers.h"
|
|
# --@pico-sdk//bazel/config:PICO_CONFIG_EXTRA_HEADER=//my_proj:my_custom_headers
|
|
#
|
|
# # Specify the library that provides "pico_config_platform_headers.h"
|
|
# --@pico-sdk//bazel/config:PICO_CONFIG_PLATFORM_HEADER=//my_proj:my_custom_platform_headers
|
|
cc_library(
|
|
name = "generate_config_header",
|
|
hdrs = ["include/pico/config_autogen.h"],
|
|
includes = ["include"],
|
|
visibility = ["//:__subpackages__"],
|
|
deps = [
|
|
"//bazel/config:PICO_CONFIG_EXTRA_HEADER",
|
|
"//bazel/config:PICO_CONFIG_PLATFORM_HEADER",
|
|
],
|
|
)
|
|
|
|
genrule(
|
|
name = "empty_extra_headers_file",
|
|
outs = ["generated_extra_include/pico_config_extra_headers.h"],
|
|
cmd = "echo > $@",
|
|
cmd_bat = "copy NUL $@",
|
|
visibility = ["//visibility:private"],
|
|
)
|
|
|
|
cc_library(
|
|
name = "no_extra_headers",
|
|
hdrs = ["generated_extra_include/pico_config_extra_headers.h"],
|
|
includes = ["generated_extra_include"],
|
|
visibility = ["//visibility:private"],
|
|
)
|
|
|
|
# An empty stub, useful for label_flag flags that need to point to a library,
|
|
# but for some purposes the library needs to be a no-op.
|
|
cc_library(
|
|
name = "empty_cc_lib",
|
|
)
|