summaryrefslogtreecommitdiff
path: root/CC
AgeCommit message (Collapse)Author
2025-03-21Merge commit '2430b90cb882f474fc35ab65a1cf61a319fe5364' into HEADPaul Cristian Sarbu
2025-03-20rules CC lint information: Fix missing inherited variablesPaul Cristian Sarbu
...and unset TOOLCHAIN and TOOLCHAIN_DIR.
2025-02-19Fix include scanner implementationsOliver Reiche
... which should abort if the preprocessor failed.
2025-02-13foreign rules: support extra remote-execution propertiesKlaus Aehlig
Those rules call a foreign build system in a single action. Obviously, those actions are quite different compared to normal build actions; at the very least, they require more time and resources and generally also spawn more than a single process. We already support scaling up the action time out. Now support also adding additional execution properties, so that they can be schedulded to dedicated workers or endpoints.
2025-02-13cmake-build: actually honor TIMEOUT_SCALEKlaus Aehlig
2024-12-19rules-cc: Add support for include scanningOliver Reiche
... which is configured using a new defaults field "include_scanner", a tool (script/binary) that generates a new include tree without unused headers. Example implementations are provided.
2024-12-16"CC/foreign/shell" rules: fix documentationKlaus Aehlig
... to match what the rule actually does.
2024-12-11Merge branch 'just-rules' into rulesAlberto Sartori
2024-12-11["CC","auto"]: amend runnerAlberto Sartori
The parsing logic was buggy: - quotation was not properly taken into account - multiple keys provided as "@KEY1@${KEY2}@KEY3@" were not correctly parsed - #cmakedefine KEY1 "@KEY2@" was not correctly parsed: in this case, only @KEY2@ must be expanded, provided variable KEY1 is defined - only lines containing the magic string were processed
2024-12-04Merge branch 'just-rules' into rulesOliver Reiche
* rules/oss: config_file: Support PATH from defaults
2024-12-04config_file: Support PATH from defaultsOliver Reiche
2024-12-02expand_exec: Fix quoting for older dash shellsOliver Reiche
... versions prior to 0.5.11.
2024-11-06Merge branch 'just-rules' into rulesKlaus Aehlig
2024-11-06Use "cwd" property of actionsKlaus Aehlig
... instead of composing a shell command doing a cd first.
2024-11-06Prefer built-in "nub_left"Klaus Aehlig
Now that justbuild 1.4 is available, the workaround of defining "nub_left" in terms of "reverse" and "nub_right" is no longer necessary.
2024-11-06Use quote and quasi-quote to simplify some expressionsKlaus Aehlig
2024-11-06Prefer built-in "nub_left"Klaus Aehlig
Now that justbuild 1.4 is available, the workaround of defining "nub_left" in terms of "reverse" and "nub_right" is no longer necessary.
2024-10-25lint information for direct dependencies: honor componentsKlaus Aehlig
... by honoring "modified-transitions" when determining the headers of the direct dependencies.
2024-10-25Merge branch 'just-rules' into rulesKlaus Aehlig
2024-10-25lint information: also provide the direct-deps artifacts separatelyKlaus Aehlig
2024-10-23Merge branch 'just-rules' into rulesKlaus Aehlig
2024-10-23pkgconfig rules: fix usage of "join_cmd"Klaus Aehlig
2024-09-27Do not expand variables in PATHKlaus Aehlig
... as otherwise we will use the same string in two ways: literal and as a value to the expanded, making proper quoting impossible. Moreover, it is not necessary to expand TOOLCHAIN: pointers into the toolchain can be passed through the "bin dirs" part of the toolchain.
2024-09-13Rules CC: Deduplicate args returned by expressions collecting args from ↵Sascha Roloff
dependencies
2024-09-13Merge branch 'just-rules' into rulesSascha Roloff
2024-09-12Rules CC: Deduplicate args returned by expressions collecting args from ↵Sascha Roloff
dependencies
2024-09-10Fix CC rules to not add run-libs-args from deps when building a shared librarySascha Roloff
When a shared library is built that depends on other shared libraries, it instructs its consumers via the "run-link-args" to link only against this library and not also against its dependencies.
2024-09-10Fix CC rules to consume static libraries when building a shared librarySascha Roloff
When a shared library has static-library dependencies, it is linked against these static libraries including all their link arguments. Thus, the "link-deps" as well as the "link-args" provider of the shared library should be empty.
2024-08-30Merge branch 'just-rules' into rulesKlaus Aehlig
2024-08-30Drop expressions for first/last element of a list entirelyKlaus Aehlig
... as using the built-in "[]" directly is cleaner and equally readable.
2024-08-29["CC", "library"]: document additional providersKlaus Aehlig
2024-08-23rules: add and forward lint information in all casesKlaus Aehlig
... provided the configuration variable "LINT" is set.
2024-08-20Merge branch 'just-rules' into rulesKlaus Aehlig
2024-08-20["CC", "test"]: support providing lint informationKlaus Aehlig
While there, also properly transition "srcs" and "private-hdrs" to the host version.
2024-08-14Merge branch 'just-rules' into rulesKlaus Aehlig
2024-08-14Make CC binary and library support providing information for lintingKlaus Aehlig
If the configuration variable "LINT" is set, also provide information on compile actions and header files (with preprocessing as described command, in particular also providing the correct flags) in correct dependency context. In this way, lint rules can request the needed information for performing their checks.
2024-08-09object artifacts: honor modified transitionKlaus Aehlig
... for certain fields, in particular, the "components".
2024-08-09compile-deps: include provided deps of componentsKlaus Aehlig
... however not their runfiles, as those become the runfiles of the resulting library.
2024-08-07Merge branch 'just-rules' into rulesKlaus Aehlig
2024-08-07Add field to ["CC", "defaults"] to specify arguments for arKlaus Aehlig
... instead of hard-coding ["cqs"].
2024-07-29Merge branch 'just-rules' into rulesKlaus Aehlig
2024-07-29["CC", "binary"] stage link actionKlaus Aehlig
... to avoid staging conflicts with the toolchain
2024-07-29["CC", "libary"] properly stage ar actionKlaus Aehlig
In this action we support a user provided toolchain, hence all the components of the library need to go into a subdirectory to avoid staiging conflicts.
2024-07-25["CC", "library"] Add concept of componentsKlaus Aehlig
... i.e., dependencies that are to be included into the library itself. In this way, a large library (convenient for a user to have single library to care about) can be defined as a collection of smaller libraries. Technically, components are like public dependencies on libraries transitioned to object libraries with the following differences - the header files (i.e., runfiles) of the components become header files of the resulting libary, and - the objects (i.e., artifacts) of the components become objects of the library rather than link dependencies. To achive the transfer of the object to the requesting library, an object library can be instructed to drop the objects from the link arguments; in order to continue to support tranditional object libraries in the style of, e.g., cmake, this is done by a different configuration variable that is transitioned as well. In particular, the object-library test case (using a configure target) can be left unchanged.
2024-07-25["CC", "library"]: Make object-only a configuration propertyKlaus Aehlig
... instead of a property of the library itself. An object library is not a meaningful concept in itself; it only exists, because a consumer wants to link the library in its entirety. But consumer-specified properties should be propagated through configuration transitions and the definition of the library should not care about how it is consumed; this is also the approach we follow with respect to building a library position independent. As oposed to position-independent building, however, the property of being included unconditionally is not propagated transitively.
2024-07-12Merge branch 'just-rules' into rulesKlaus Aehlig
2024-07-12Test rules: only provide to the summary action what is neededKlaus Aehlig
... and add a rule allowing the summarizer to specify what it needs.
2024-07-12Tests: also record `pwd`Klaus Aehlig
... as test meta data. Tests are executed in an unspecified directory, assuming pass or fail is independent of the location where the test is run. While this generally is true, test logs often contain the working directory. So, in order to more easily compare different execution orders of a potential race condition, it can be desirable to compare logs "up to the execution directory". This, however, requires that this directory is recored in the first place. Do so. For consistency of the output format, also have a (fixed) artifact pwd in the summary report.
2024-07-08["CC/test", "test"]: Honor shell-toolchain PATH for summary actionKlaus Aehlig
2024-07-05Merge branch 'just-rules' into rulesKlaus Aehlig