summaryrefslogtreecommitdiff
path: root/CC
AgeCommit message (Collapse)Author
2024-06-03debug rule: Add flag field to skip installing extra debug artifactsPaul Cristian Sarbu
This is useful when we want to install targets built in debug mode, but do not want to stage all the additional source and header files if no debugging is being performed, e.g., in tests.
2024-05-31["CC", "pkg-config"]: support defaultsKlaus Aehlig
2024-05-27Merge branch 'just-rules' into rulesKlaus Aehlig
2024-05-27CC: if no CC/CXX/AR is provided via the toolchain, default to cc/c++/arKlaus Aehlig
... instead of defaulting to "". In this way, an empty default target can be used as toolchain defaults for systems with default names.
2024-05-24Merge branch 'just-rules' into rulesKlaus Aehlig
2024-05-24Prefer built-in array access over implementing "first" and "last" using foldlKlaus Aehlig
2024-05-23Merge branch 'just-rules' into rulesKlaus Aehlig
2024-05-23["CC/pkgconfig", "system_library"]: honor shell toolchainKlaus Aehlig
... instead of hard-coding /bin/sh.
2024-05-22CC/foreign: support shell toolchainKlaus Aehlig
2024-05-21Support creating shared lib from object libOliver Reiche
2024-05-21Merge branch 'just-rules' into rulesKlaus Aehlig
2024-05-21["CC/auto", "config"] also honor shell-toolchain-provided PATHKlaus Aehlig
2024-05-15Merge branch 'just-rules' into rulesKlaus Aehlig
2024-05-15Add shell defaultsKlaus Aehlig
So far, our rules, where depending on the shell, implicitly use "normal" defaults, hard-coded in the rules. Support configuring those in a default target, in the same way we do so for other tools, like the C compiler. In this, it is also possible to bring your own shell, built as a (compiled) target.
2024-05-13Merge commit '07924d28e81fe36ddb8e020552a7392fcf1227a0' into HEADPaul Cristian Sarbu
2024-05-13rules: Support staging debug artifacts in install-with-deps rulePaul Cristian Sarbu
The existing rule is extended to also stage source files if in debug mode, in order for a debugger to be able to find all needed symbols. Conflicting paths are allowed; in case of conflicts, the file from the closest target in the dependency chain wins.
2024-05-13install-with-deps result: Remove unneeded importsPaul Cristian Sarbu
2024-05-06Merge commit '3b1d1e390b0de137a32bc5c4a8865e5417b3673b' into HEADKlaus Aehlig
2024-05-04["CC/pkgconfig", "system_library"]: honor ENV also for aux actionKlaus T. Aehlig
Our pkg config rule postprocesses the output of pkgconfig to add options -rpath where appropriate. This postprocessing, however, relies on (standard) tools from the environment, in particular cat(1). Therefore, the environment (in particular PATH) needs to be set properly for this auxilliary action.
2024-05-03Implement object_only libraryOliver Reiche
2024-04-29Merge branch 'just-rules' into rulesKlaus Aehlig
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-29Merge branch 'just-rules' into rulesKlaus Aehlig
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-17Merge branch 'just-rules' into rulesKlaus Aehlig
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-02-15Merge branch 'just-rules' into rulesKlaus 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-30CC/foreign/shell rules: avoid empty path segmentKlaus Aehlig
... and hence accidentally picking up executables from the current working directory.
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-20foreign: Implement shell libraryOliver Reiche
2023-11-20foreign: Only resolve symlinks on user requestOliver Reiche
2023-11-20foreign: Do not follow symlinks of tool pathsOliver Reiche
2023-11-20prebuilt: Consider "deps" for flag reader inputsOliver Reiche
... so that if e.g., libfoo depends on libbar via "deps", the flag "-lbar" should be filtered out from the flag file generated via pkg-config from file foo.pc. Omitting these flags is always correct, due to those libraries being part of the explicit link dependencies already.
2023-11-20defaults: 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-09Merge branch 'just-rules' into rulesKlaus Aehlig
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-28Merge branch 'just-rules' into rulesKlaus 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-27foreign: Fix missing path unionOliver Reiche
2023-09-26Merge branch 'just-rules' into rulesKlaus Aehlig
2023-09-26pkg-config files: properly terminate last lineKlaus Aehlig
2023-09-26Merge branch 'just-rules' into rulesOliver Reiche
2023-09-25Fix pkg-config name for libprotobufOliver Reiche
2023-09-25Merge branch 'just-rules' into rulesOliver Reiche
2023-09-25Use pkgconfig for default proto libsOliver Reiche
2023-08-30foreign: Implement 'expand_exec' via POSIX shellOliver Reiche
... and coreutils by default. This has the advantage that no C compiler and no specific toolchain definition is required to build rule-internal tools. 'expand_exec' is provided via an implicit target with proper config transition for host, so it could be overwritten by the rule user. The C code of the previous implementation is still kept as an example.
2023-08-29python: Add type hints and fix style in rules scriptsPaul Cristian Sarbu
For maximum compatibility, we use the uppercase types from the typing package instead of the built-in types, therefore compliant with PEP 484 and PEP 526.
2023-08-29Merge branch 'just-rules' into rulesPaul Cristian Sarbu