summaryrefslogtreecommitdiff
path: root/CC/RULES
AgeCommit message (Collapse)Author
2023-02-28Merge commit '3b08fc29eff1fa61c3fd317ca5321d47cddd9c69' into HEADKlaus Aehlig
2023-02-28Various typo fixesPaul Cristian Sarbu
Co-authored-by: Sascha Roloff <sascha.roloff@huawei.com>
2023-01-20Support flag-files for existing rules and expressionsOliver Reiche
2023-01-10rules: Add support for pkg-configOliver Reiche
2023-01-10rules: Add rule "install-with-deps"Oliver Reiche
2022-12-16rules: Implement private-proto for librariesOliver Reiche
2022-12-16rules: Implement ldflags for (shared) librariesOliver Reiche
2022-12-16rules: Add support for shared librariesOliver Reiche
2022-12-16rules: Add support for "LDFLAGS" and "ADD_LDFLAGS"Oliver Reiche
2022-12-09rules: cflags have precedence over definesOliver 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-12-09rules: Drop the ["CC", "header directory"]Oliver Reiche
... in favor of the "tree" built-in rule.
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-10-10rules: Use new 'env' expressionOliver Reiche
2022-10-10rules: Remove CC/configure ruleOliver 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-07-25Rules: Enforce non-empty library and binary namesOliver Reiche
2022-04-29rules: Perform disjoint map union in field_* expressionsOliver Reiche
... and replace all instances where the field_*_list variant of those expressions is used solely for the purpose of performing the disjoint union manually.
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-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.
2022-04-26Improve documenatation of our internal rulesKlaus Aehlig
In particular, document the result for the most important rules.
2022-04-22rules: move compiler/flags computation into expressionsKlaus Aehlig
On the one hand, this keeps the rules files more readable. On the other hand, we can even deduplicate code, as those expressions are used twice.
2022-04-22rule ["CC", "header directory"]: drop ill-advised "public stage"Klaus Aehlig
The idea, as documented, of a header directory is to have a directory, closed as a tree, owned by the respective library and internally handled in an efficient way (as a single tree). If we open up that directory, we just have staged data, and therefore should treat it as such.
2022-03-31rules ["CC", "libray"]: fix doc stringsKlaus Aehlig
... to have consistent punctuation. Also make clear, that the configuration does not have to specify "CC", etc, as usually they are taken from the default target.
2022-03-18Add documentation for the "proto" fields in the CC rulesKlaus Aehlig
2022-03-16Format: Apply compact JSON formattingOliver Reiche
2022-03-03CC rules: Add support for local cflagsOliver Reiche
2022-02-22Initial self-hosting commitKlaus Aehlig
This is the initial version of our tool that is able to build itself. In can be bootstrapped by ./bin/bootstrap.py Co-authored-by: Oliver Reiche <oliver.reiche@huawei.com> Co-authored-by: Victor Moreno <victor.moreno1@huawei.com>