summaryrefslogtreecommitdiff
path: root/CC
AgeCommit message (Collapse)Author
2025-05-28rules documentation: Fix typosPaul Cristian Sarbu
2025-05-08Merge branch 'just-rules' into rulesKlaus Aehlig
2025-05-08rules: Allow all false values to disable DEBUGKlaus Aehlig
While activating DEBUG requires setting it to a non-empty map, providing information on whether and how debugg fission should be used, we should still allow any logically false value (rather than just null) to disable a debug build in order to make it easier for the user to explicitly disable debugging. Also adopt and fix the documentation strings.
2025-05-07Do not assume out_dirs existOliver Reiche
2025-04-23Merge commit '20b7c7fa1b10a90e0e3aad46579ebe450d6720b9' into HEADPaul Cristian Sarbu
2025-04-23rules CC: Extend install-wih-deps to stage DWARF package filesPaul Cristian Sarbu
2025-04-23rules CC: Libraries and binaries provide DWARF package filesPaul Cristian Sarbu
The "library" and "binary" rules are modified to generate, if needed, the appropriate DWARF package from the DWARF objects of their compilation units and the DWARF package files of their link dependencies, if any. The resulting artifact is made available to consumers in the provides map.
2025-04-23expressions CC: Add expression generating DWARF packagesPaul Cristian Sarbu
2025-04-23expressions CC: Small refactoringPaul Cristian Sarbu
Allow the expressions running the actions producing the library and binary artifacts to pass along more information to consumers if needed by extending their return values to maps. Ensure the changes do not affect other consumers of the current expressions, such as the test rules, which do not expect extra information besides the single action artifact.
2025-04-23rules CC: Add DWP configuration variablePaul Cristian Sarbu
...defining the DWARF format packaging tool to use once debug fission is supported.
2025-04-23rules CC: Support debug fission in lintingPaul Cristian Sarbu
As the command passed to the linter can produce additional outputs if debug fission is enabled, pass those artifact paths in a new variable "extra outs", which the ["lint", "targets"] rule can then make it available in the meta.json file expected by the linter.
2025-04-23rules CC: Support debug fission in objectsPaul Cristian Sarbu
For this purpose, the DEBUG configuration variable is updated to expect a map with at least the USE_DEBUG_FISSION flag field. If set, compilation of source files is expected to produce besides the regular object file also a DWARF file.
2025-04-23rules CC proto: Update docstring for DEBUG variablePaul Cristian Sarbu
...to reflect the value change from boolean to map. Behavior of the proto rules remains the same, as only the truth value of the variable is currently being taken into account.
2025-04-23rules CC: Make DEBUG variable a mapPaul Cristian Sarbu
It expects now the key 'USE_DEBUG_FISSION', which enables debug fission, but does not add any flags on its own. For this, the 'FISSION_CONFIG' key is expected with certain entries that provide the compile and/or link flags that configure debug fission. The flags are added only where needed, i.e., before running or storing the respective compile or link actions.
2025-04-23rules CC: Use the -g flag as fallback in debug mode...Paul Cristian Sarbu
...if no flags are otherwise configured (by toolchain or rule-specific configuration variables).
2025-04-23rules CC defaults: Add DEBUGFLAGS and ADD_DEBUGFLAGS config varsPaul Cristian Sarbu
If in debug mode - DEBUGFLAGS replaces any resulting CFLAGS and CXXFLAGS, and - ADD_DEBUGFLAGS is appended to the resulting debug compile flags.
2025-04-23expressions CC: Remove unused importPaul Cristian Sarbu
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