summaryrefslogtreecommitdiff
path: root/rules
AgeCommit message (Collapse)Author
2024-04-29["CC", "defaults"] rule: Add "ADD_COMPILE_FLAGS"Klaus Aehlig
The C++ programming language is tightly related to the C programming language. Consequently, the command line interface for C and C++ are also related and share quite a number of compile flags. Honor this tight connection by have in our defaults a field allowing to extend both compile flags, those for C as well as those for C++. In this way, build defaults can be described in a more readable way.
2024-04-29["CC/test", "test"]: support TIMEOUT_SCALEKlaus Aehlig
... to allow test actions to have a larger time out, while not changing anything in the build actions (and hence being able to use cache hits from normal build of the library being tested).
2024-04-17["CC/test", "test"] runner: set TMPDIRKlaus Aehlig
... to the same value as TEST_TMPDIR. While TEST_TMPDIR is the conventional name that tests should use for their temporary file, setting TMPDIR as well has the advantage that more library functions can be used to create temporary files and directories, as quite a few of them inspect the variable TMPDIR. While there, also fix some typos in the documentation strings.
2024-04-17["CC/test", "test"] use stage expressionKlaus Aehlig
... instead of inlining the code. In this way, we also have all the checks that the test runner consists of precisely one artifact.
2024-03-05test summarizer: in case of FLAKY tests, also report failure rateKlaus Aehlig
2024-02-15Remove unnecessarily quadratic expressionsKlaus Aehlig
... not that everyone has updated to 1.2 or later we can use the built-in expressions "reverse" and "set".
2023-11-20rules: Fix flag inheritanceOliver Reiche
... which should accumulate values from all base targets unless the flag type (CFLAGS, CXXFLAGS, or LDFLAGS) is explicity overwritten by the inheritor.
2023-11-09["CC/auto", "config_file"] runner: let /usr/bin/env find python3Klaus T. Aehlig
... instead of assuming it to be installed under /usr/bin as we also do in other places. In this way, we do not make any additional assumptions on top of the already existing one on the path of env.
2023-09-29rule ["patch", "defaults"]: remove unused config variable "TARGET_ARCH"Klaus Aehlig
2023-09-28["CC/pkgconfig", "system_library"] Add -rpathKlaus Aehlig
When a shared library is picked up from the host system via pkg-config that is located at a non-standard location, binaries linked against this library by a standard linker either need LD_LIBRARY_PATH set appropriately, or -rpath set at link time. However, not all custom installations set -rpath in the link flags in their pkg-config file. Therefore, in order to get working binaries (and not have to set custom paths in tests), add a -rpath for every -L option found in the ldflags provided by pkg-config.
2023-09-26pkg-config files: properly terminate last lineKlaus Aehlig
2023-09-25Fix pkg-config name for libprotobufOliver Reiche
2023-09-25Use pkgconfig for default proto libsOliver Reiche
2023-08-29python: Add type hints and fix style in rules scriptsPaul Cristian Sarbu
2023-08-28Fix rule doc string of patch defaultsOliver Reiche
2023-08-21rules: Add documentation for the implict dependenciesKlaus Aehlig
2023-08-17["CC/test", "test"] rename implict dependencyKlaus Aehlig
... and document at the appropriate place
2023-08-17["CC/auto", "config_file"] rename implicit targetKlaus Aehlig
... and mention it at the appropriate part of the documentation. While there, also provide a default TARGETS file.
2023-08-17["shell/test", "script"] Rename implicit dependenciesKlaus Aehlig
... and document at the appropriate places what can be overwritten by setting those targets.
2023-08-16rules: Support BUILD_ARCH for CC defaultsOliver Reiche
2023-08-16patch: Support defaults for patch rulesOliver Reiche
... and extend compatibility by not relying on arguments that are only supported by GNU patch implementations.
2023-08-16patch: Drop patch-partOliver Reiche
... because it was using tool that are not part of coreutils. Using patch parts can still be done via patching patches.
2023-08-16rules: Propagate PATH list from defaultsOliver Reiche
... instead of creating an ENV from it and propagating this. The idea is to keep PATH entries separate and only join them with ":" when we need it. In this way, we can accumulate PATHs from multiple defaults later, and perform a deduplication ("nub_left") to shorten the final string length.
2023-08-16rules: Implement nub_left for PATHOliver Reiche
2023-08-16rules: Extend toolchains via defaults from baseOliver Reiche
2023-08-16rules: Expression to get base providers as listOliver Reiche
2023-08-16rules: Remove pointless defaultsOliver Reiche
2023-07-14["shell/test", "script"]: support target architectureKlaus Aehlig
... provided it is specified on how to obtain a remote-execution endpoint for the given architecture; in this case, the test (script and) dependencies will be cross compiled for and run on that architecture. The actual building (as well as summarizing multiple test runs) happens on the default execution end point.
2023-07-12["CC/test", "test]: support target architectureKlaus Aehlig
... provided it is specified on how to obtain a remote-execution endpoint for the given architecture; in this case, the test binary will be cross compiled for and run on that architecture. The actual building (as well as summarizing multiple test runs) happens on the default execution end point.
2023-07-12Add new transtion "maybe for host"Klaus Aehlig
... that transitions to host, unless the ARCH_DISPATCH map indicates that there is an execution-property transition allowing to run actions on the TARGET_ARCH. Also make the "target properties" available as expression as they will be needed when executing the action on the foreign architecture.
2023-06-16rules: Install pkgconfig files to $PREFIX/lib/pkgconfigOliver Reiche
2023-05-31["test/shell", "script"] Support long-running testsKlaus Aehlig
2023-05-30rules: Support for external toolchainsOliver Reiche
2023-05-30rules: Move binary test_run to expressionOliver Reiche
2023-05-30rules: Use field_map_provider for default-ENVOliver Reiche
2023-05-30rules: Drop needless conditionalOliver Reiche
2023-05-05rules: Test symbol and macro separately for auto configOliver Reiche
2023-04-26rules: Support mixing system/toolchain for protoc/grpcOliver Reiche
2023-04-26rules: Fix propagation of PATH for protocOliver Reiche
2023-04-24["CC/test", "test"]: Support RUNS_PER_TESTKlaus Aehlig
2023-04-24["CC/test", "test"]: factor out test-inputKlaus Aehlig
In this way, the test action gets canonical, so adding RUNS_PER_TEST support to this rule should be easily mergable into downstream rules.
2023-04-20["CC/proto", "library"] proto deps are publicKlaus Aehlig
... also for non-service libraries; the generated .ph.h files may well refer, e.g., the well-known protos.
2023-04-19CC/proto toolchain staging: add missing elseKlaus Aehlig
If we have a provided toolchain, we stage it to the corresponding subdirectory. Otherwise, we still have to provide a value of the correct type (a map) rather than the default else (which is the empty list).
2023-04-18rules: Support protoc/grpc_cpp_plugin from defaultsOliver Reiche
2023-04-18rules: Update dependency on protobuf and grpc targetsOliver Reiche
2023-04-18rules: Support creating compile/link flags from pkg-configOliver Reiche
2023-04-18rules: Drop CC/IDE headers ruleOliver Reiche
2023-04-18rules: Support hdrs-only for install-with-deps ruleOliver Reiche
2023-04-18rules: Move install-with-deps to EXPRESSIONSOliver Reiche
2023-04-18rules: Support install-with-deps ruleOliver Reiche
Backport of commits a382b308b9011606e7d07376808812d51631d558 and 5ae5134804b6edaaffec593868f133dd840ef7df from the rules-cc repository.