summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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: Fix missing CXXFLAGS propagation for proto libsOliver Reiche
2023-04-18rules: Update dependency on protobuf and grpc targetsOliver Reiche
2023-04-18rules: Support reading flags from files for existing rulesOliver Reiche
Backport of commit 4a8579a2a4ef252644df0c29893e70ad8438ae82 from the rules-cc repository.
2023-04-18rules: Support creating compile/link flags from pkg-configOliver Reiche
2023-04-18rules: Drop CC/IDE headers ruleOliver Reiche
2023-04-11["shell/test", "script"]: make TEST_RUN_NUMBER availableKlaus Aehlig
If RUNS_PER_TEST is given, inform each individual test action about the run number it is executing. This can be used, e.g., to set random seeds appropriately.
2023-03-15Merge commit '2e53ff4d37dbda318f9c33e631bbd9a1d27c9b8e' into HEADAlberto Sartori
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-28Support non-file targets for prebuilt libsOliver Reiche
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-31Support "CC/foreign/make" data and libraryOliver Reiche
2023-01-31cmake: Support setting number of build jobsOliver Reiche
2023-01-31cmake: Support pre_cmds and post_cmdsOliver Reiche
2023-01-31cmake: Remove ineffective CMAKE_AR from configure argumentsOliver Reiche
2023-01-31Fix result of ["CC/foreign/cmake", "data"]Oliver Reiche
2023-01-26Support creating libraries from CMake projectOliver Reiche
2023-01-20Support generating flag-files for prebuilt librariesOliver Reiche
2023-01-20Support flag-files for existing rules and expressionsOliver Reiche
2023-01-20Expression "contains" supports prefix and returnOliver Reiche
2023-01-20Add expression for reading artifacts from provider "package"Oliver Reiche
2023-01-20Refactor flag substitution for "pkg-config"Oliver Reiche
2023-01-20Initial support for prebuilt librariesOliver Reiche
2023-01-20Fix shared lib pkg-versionOliver Reiche
... which should be only set if SOVERSION is set.
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-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