summaryrefslogtreecommitdiff
path: root/rules
AgeCommit message (Collapse)Author
2023-04-18rules: Support creating compile/link flags from pkg-configOliver Reiche
2023-04-18rules: Drop CC/IDE headers ruleOliver 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.
2023-04-18rules: Fix missing CXXFLAGS propagation for proto libsOliver Reiche
2023-03-15grpc: bugfix: add missing dependency to grpc service libraryAlberto Sartori
2023-03-15rules: CC/auto: add "config_file" rule to generate a c/c++ header...Alberto Sartori
...starting from a template (aka configuration file), and using the variables defined via a ["CC/auto", "config"] target. For example, to use a CMake configuration file, the targets could be defined as follows ... , "foo-header-blueprint": { "type": ["@", "rules", "CC/auto", "config_file"] , "input": ["config.hpp.in"] , "output": ["config.hpp"] , "stage": ["foo"] , "magic_string": ["cmakedefine"] , "@only": ["true"] } , "foo-header": { "type": "configure" , "target": "foo-header-blueprint" , "config": { "type": "let*" , "bindings": [ [ "defines" , [ ["var", "\"string value\""] , ["FOO_MAJOR_VERSION", "3"] , ["use_this_feature", true] ] ] ] , "body": {"type": "env", "vars": ["defines"]} } } ... The file config.hpp.in may look as follows #ifndef config_cmake #define config_cmake #cmakedefine var #cmakedefine use_this_feature #cmakedefine01 use_this_feature #cmakedefine unused #define FOO_VERSION @FOO_MAJOR_VERSION@ #define DONT_TOUCH_THIS ${FOO_MAJOR_VERSION} #endif and the generated configuration file foo/config.hpp is #ifndef config_cmake #define config_cmake #define var "string value" #define use_this_feature #define use_this_feature 1 /* #undef unused */ #define FOO_VERSION 3 #define DONT_TOUCH_THIS ${FOO_MAJOR_VERSION} #endif
2023-02-28Various typo fixesPaul Cristian Sarbu
Co-authored-by: Sascha Roloff <sascha.roloff@huawei.com>
2022-12-16rules: Parallelize ["CC/auto", "config"] check actionsOliver Reiche
2022-12-16rules: Use common expressions for ["CC/auto", "config"]Oliver Reiche
2022-12-14rules: Collect artifacts from "srcs" targets for ["data", "staged"]Oliver Reiche
2022-12-14rules: Collect artifacts from "data" targets for test binariesOliver Reiche
2022-12-14rules: Report fieldname of overlapping artifacts/runfilesOliver Reiche
2022-12-14rules: Add type size check to ["CC/auto", "config"]Oliver Reiche
2022-12-12rules: Fix missing arch vars for shell testsOliver Reiche
2022-12-09rules: cflags have precedence over definesOliver Reiche
2022-12-09rules: ldflags have precedence over transitive link argsOliver Reiche
2022-12-09rules: Create library in stage directoryOliver Reiche
2022-12-09rules: Add cross-compile support for testsOliver Reiche
2022-12-09rules: Add argument support for test binariesOliver 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-12-09rules: Fix missing cflags for linking test binaryOliver Reiche
... which is required for cross-compilation, e.g., clang's `-target` option.
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-02proto: honor configured archiverAlberto Sartori
2022-11-02rules: don't always use the default archiverAlberto Sartori
2022-10-31CC/test test_runner.sh: correctly report the reusltKlaus Aehlig
The test runner is supposed to report the reult in a file called 'result' in the top-level action directory. However, before starting the actual test, it changes the working directory to the subdir 'work' where the input of the test action is located. Therefore, when reporting the result, the correct file name is '../result'. Fix this.
2022-10-27rules: Honor ENV for finding catChristian Lütke Stetzkamp
2022-10-27rules: Honor ENV for patch separationChristian Lütke Stetzkamp
2022-10-26rules: Honor ENV variable for protobuf compilationOliver Reiche
2022-10-12Add copyright and license notice to all source and header filesKlaus Aehlig
Signed-off-by: Goetz Brasche <goetz.brasche@huawei.com>
2022-10-10rules: New rule for config header generationOliver Reiche
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-23Add a rule to overlay artifact mapsKlaus Aehlig
... in a latest-wins fashion. The intended use case is overlaying globs with individual patched files.
2022-08-16rules/CC: fix duplicated staging for libraryAlberto Sartori
2022-08-04rules: Extend patch rule to split parts from patchOliver Reiche
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-06-23Upd rules doc on writable directories available to test runnersPaul Cristian Sarbu
2022-06-07rules: Support TEST_ENV for shell/test scriptOliver Reiche
2022-06-02Add rule defaultsOliver Reiche