summaryrefslogtreecommitdiff
path: root/CC/EXPRESSIONS
AgeCommit message (Collapse)Author
2025-03-20rules CC lint information: Fix missing inherited variablesPaul Cristian Sarbu
...and unset TOOLCHAIN and TOOLCHAIN_DIR.
2024-11-06Use "cwd" property of actionsKlaus Aehlig
... instead of composing a shell command doing a cd first.
2024-10-25lint information: also provide the direct-deps artifacts separatelyKlaus Aehlig
2024-09-12Rules CC: Deduplicate args returned by expressions collecting args from ↵Sascha Roloff
dependencies
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-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-07Add field to ["CC", "defaults"] to specify arguments for arKlaus Aehlig
... instead of hard-coding ["cqs"].
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-06-19rules-cc: Binaries should keep the compile dependency headers for debuggingPaul Cristian Sarbu
2024-06-03debug rule: Fix staging of headersPaul Cristian Sarbu
For libraries the headers of private dependencies were wrongly skipped from staging. For binaries, no headers were passed at all in the provides map. To fix these issues, an additional field is added in the provides map to ensure we collect, and then properly stage, all needed headers for both libraries and binaries.
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-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-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-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-09-26pkg-config files: properly terminate last lineKlaus Aehlig
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: Expression to get base providers as listOliver Reiche
2023-08-16rules: Remove pointless defaultsOliver Reiche
2023-05-30rules: Support for external toolchainsOliver Reiche
2023-05-30rules: Use field_map_provider for default-ENVOliver Reiche
2023-04-18rules: Support protoc/grpc_cpp_plugin from defaultsOliver 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.
2023-04-18rules: Support reading flags from files for existing rulesOliver Reiche
Backport of commit 4a8579a2a4ef252644df0c29893e70ad8438ae82 from the rules-cc repository.
2022-12-09rules: ldflags have precedence over transitive link argsOliver Reiche
2022-12-09rules: Create library in stage directoryOliver Reiche
2022-12-09rules: Refactoring and minor improvementsOliver Reiche
Compared to the previous commit, the action graphs for just and its unit tests are unchanged. - Git hash of action graph for ["",""]: c6e75f17abd7ffaab6ff9bb725ad67ec0bf6c973 - Git hash of action graph for ["test/buildtool","TESTS"]: 8063dfb3dd7daa9ae01d95c177e14946f785c57e Refactor: - "local cflags" to "private-cflags" - "local defines" to "private-defines" - "link externals" to "private-ldflags" - "deps" to "private-deps" for (test) binaries - "proto" to "private-proto" for binaries Improvements: - consistent variable declaration order: OS, ARCH, HOST_ARCH, TARGET_ARCH, CC, CXX, CFLAGS, CXXFLAGS, ADD_CFLAGS, ADD_CXXFLAGS, AR, ENV, PATH - use fields close to their definition (in RULES) - use common expression for binaries and test binaries - split expression "flags" and "compiler" ... to separate ones for CC and CXX. - rename "transition" to "deps-transition" ... to avoid conflicts with other transitions. - support "defaults-transition" for CC expressions Implement: - "cflags" for libraries - "private-cflags" for (test) binaries - "private-defines" for test binaries - "private-ldflags" for test binaries - (public) "defines" for libraries
2022-11-21support the concept of private depsKlaus Aehlig
i.e., libraries that are used only in the implementation without use in the public header files. In this way, the set of headers exposed to dependencies can be reduced leading potentially to better incrementality.
2022-11-21rules/CC/EXPRESSIONS: drop unused local defineKlaus Aehlig
2022-11-02rules: don't always use the default archiverAlberto Sartori
2022-10-10rules: Use new 'env' expressionOliver Reiche
2022-10-10rules: Remove CC/configure ruleOliver Reiche
2022-09-14rules: Fix ar binary not taken from defaultsOliver Reiche
2022-09-13Rules: Implement setting ADD_{C,CXX}FLAGS via variablesOliver Reiche
2022-09-13Rules: Implement hierarchical defaultsOliver Reiche
2022-09-13Rules: Extend configure rule by 'compiler_family'Oliver Reiche
2022-08-16rules/CC: fix duplicated staging for libraryAlberto Sartori
2022-07-25CC rules: keep dependencies last in linkingKlaus Aehlig
... as the external link dependency is still associated with this library. In this way, importing preinstalled libraries can happen in a sound way, even though the actual library is just an external link dependency; still dependencies among external libraries are honored.
2022-07-25Rules: Enforce non-empty library and binary namesOliver Reiche
2022-06-30Rules: Split library result and library artifact expressionOliver Reiche
2022-05-04rules/CC: for compiler invocation, pass on ENVKlaus Aehlig
... as some compiler need access to the environemnt in order to find their utility programs (like cc1).
2022-04-28rules: Consistently use new provider expressionsOliver Reiche
2022-04-28rules: Add "link-args-deps" expressionOliver Reiche
... for collecting link-args from dependencies. By consistently using this expression, we fix an issue with C++ binary and test, which both did not collect the linker arguments from their proto-deps.
2022-04-28rules: Honor transition variable in *-deps expressionsOliver Reiche
2022-04-26rules: Add field_artifacts_list and field_runfiles_listOliver Reiche
... which are more efficient if the caller wants to perform the union manually (because disjointness should be enforced or additional maps should be added to the union, etc.). As a positive side effect, code reuse is slightly increased by consistently calling these newly introduced expressions for obtaining the artifacts/runfiles from all targets of a target field.
2022-04-26rules: More flexible compile-deps and link-depsOliver Reiche
... which can now be parameterized which target_fields to query the dependencies from.