Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2023-11-03 | Work around lack of definition for static constexpr | Boris Kolpackov | 1 | -2/+2 | |
During bootstrap we compile in C++14 where it is not implicitly inline. | |||||
2023-11-01 | Use match options for runtime/buildtime distinction when installing libraries | Boris Kolpackov | 2 | -131/+426 | |
Specifically, now, if a library is installed solely as a prerequisite of an executable (potentially recursively), then only its runtime files are installed omitting everything buildtime-related (static/import libraries, non-versioned symlinks for shared libraries, pkg-config files, headers, etc). If you are familiar with the runtime and -dev/-devel package splits for libraries in Debian/Fedora, this is an analogous semantics. | |||||
2023-09-20 | Fix issue with fallback rule priority in dist module | Boris Kolpackov | 1 | -1/+4 | |
While at it, also remove workarounds for the same issue in the config and test modules. | |||||
2023-07-20 | Change inner rule/prerequisites match order in install::file_rule | Boris Kolpackov | 1 | -1/+32 | |
The old order messed up the for-install signaling logic. See the long comment in install::file_rule::apply_impl() for background and details. | |||||
2023-06-15 | Remove stray whitespace from "uninstall" command name | Boris Kolpackov | 1 | -3/+3 | |
2023-06-08 | Add support for buildfile importation | Boris Kolpackov | 1 | -1/+3 | |
2023-06-01 | Add inner_recipe for expressiveness | Boris Kolpackov | 1 | -1/+1 | |
2023-04-10 | Add support for negation in config.install.filter | Boris Kolpackov | 2 | -5/+19 | |
2023-04-04 | Remove global override restriction from config.install.filter | Boris Kolpackov | 7 | -403/+355 | |
2023-04-04 | Add support for installation filtering (GH issue #147) | Boris Kolpackov | 6 | -64/+519 | |
2023-03-29 | Specify potential future extensions to install manifest format | Boris Kolpackov | 1 | -0/+3 | |
2023-03-24 | Document relocatable installation support | Boris Kolpackov | 1 | -5/+5 | |
2023-03-23 | Add support for relocatable installation in $install.resolve() | Boris Kolpackov | 3 | -13/+102 | |
2023-03-23 | Add support for relocatable installation manifest | Boris Kolpackov | 6 | -42/+116 | |
2023-03-22 | Initial work on relocatable install: config.install.relocatable and rpath | Boris Kolpackov | 1 | -2/+23 | |
2023-03-07 | Add new include_arch/config.install.include_arch installation location | Boris Kolpackov | 1 | -35/+37 | |
It is mean for target architecture-specific headers. | |||||
2023-03-01 | Add support for installation manifest | Boris Kolpackov | 5 | -19/+485 | |
2023-02-22 | Set explicit 755 install mode for exe{} targets | Boris Kolpackov | 1 | -0/+5 | |
This helps cases where an executable gets installed somewhere else where the default is not 755 (for example to libexec/, which on Debian has the 644 mode). | |||||
2022-12-08 | Normalize extracted header/library search directories (GH issue #235) | Boris Kolpackov | 3 | -8/+12 | |
2022-11-23 | Rework diag_buffer interface to facilitate correct destruction order | Boris Kolpackov | 1 | -4/+4 | |
2022-11-16 | Initial low verbosity diagnostics rework | Boris Kolpackov | 2 | -38/+117 | |
2022-11-08 | Make process exit diagnostics consistent | Boris Kolpackov | 1 | -8/+22 | |
In particular, we now always print error message on non-0 exit except in cases where such exit is ignored. | |||||
2022-11-08 | More work on child process diagnostics buffering | Boris Kolpackov | 1 | -6/+11 | |
2022-10-13 | Improve diagnostics | Boris Kolpackov | 1 | -0/+12 | |
2022-10-13 | Optimize by going straight to public variable pool where applicable | Boris Kolpackov | 2 | -13/+16 | |
2022-10-13 | Switch to public/private variables model | Boris Kolpackov | 3 | -35/+41 | |
Now unqualified variables are project-private and can be typified. | |||||
2022-10-10 | Preparatory work for public/private variable distinction | Boris Kolpackov | 1 | -0/+2 | |
We still always use the public var_pool from context but where required, all access now goes through scope::var_pool(). | |||||
2022-05-23 | Cache build.host value in context | Boris Kolpackov | 1 | -2/+2 | |
2022-04-19 | Switch recipe from std::function to butl::move_only_function_ex | Boris Kolpackov | 1 | -1/+1 | |
2022-04-07 | Rename {match,execute}() to *_sync(), add *_complete() | Boris Kolpackov | 1 | -5/+5 | |
In particular, the match() rename makes sure it doesn't clash with rule::match() which, after removal of the hint argument in simple_rule, has exactly the same signature, thus making it error-prone to calling recursively. | |||||
2022-04-06 | Add support for rule hints | Boris Kolpackov | 3 | -19/+18 | |
A rule hint is a target attribute, for example: [rule_hint=cxx] exe{hello}: c{hello} Rule hints can be used to resolve ambiguity when multiple rules match the same target as well as to override an unambiguous match. | |||||
2022-03-21 | Filter out exe{} prerequisites in install group rule similar to file rule | Boris Kolpackov | 2 | -0/+29 | |
2022-03-21 | Make sure install group rule take precedence over fallback file rule | Boris Kolpackov | 1 | -2/+8 | |
2022-03-07 | Fix operation-specific variables logic for inner/outer operations | Boris Kolpackov | 2 | -9/+18 | |
2022-03-02 | Add update operation-specific variable with unmatch|match additional values | Boris Kolpackov | 2 | -10/+29 | |
Note that the unmatch (match but do not update) and match (update during match) values are only supported by certain rules (and potentially only for certain prerequisite types). Additionally: - All operation-specific variables are now checked for false as an override for the prerequisite-specific include value. In particular, this can now be used to disable a prerequisite for update, for example: ./: exe{test}: update = false - The cc::link_rule now supports the update=match value for headers and ad hoc prerequisites. In particular, this can be used to make sure all the library headers are updated before matching any of its (or dependent's) object files. | |||||
2022-01-26 | Make bash module install into bin/<project>.bash/ to avoid clashes | Boris Kolpackov | 1 | -1/+0 | |
Also, expect the first component in the import path to be full project name even in case it has the .bash extension. | |||||
2021-12-16 | Pass context to (meta-)operation hooks | Boris Kolpackov | 1 | -3/+6 | |
2021-11-04 | Do not apply install scope to update-for-install pre-operation | Boris Kolpackov | 2 | -2/+6 | |
2021-10-07 | Allow forcing installation of exe{} prerequisites of file targets | Boris Kolpackov | 2 | -2/+12 | |
This can be achieved with prerequisite-specific install=true, for example: exe{foo}: exe{bar}: install = true # foo runs bar | |||||
2021-10-07 | Minor install-related cleanups | Boris Kolpackov | 2 | -2/+15 | |
2021-10-06 | Do not install exe{} prerequisites of file targets | Boris Kolpackov | 2 | -7/+18 | |
2021-09-29 | Add notion of bundle amalgamation scope | Boris Kolpackov | 2 | -0/+3 | |
2021-09-28 | Adapt to libbutl headers extension change from .mxx to .hxx | Karen Arutyunov | 2 | -2/+2 | |
2021-09-17 | Add fallback update-for-uninstall rule to global scope | Boris Kolpackov | 1 | -3/+6 | |
2021-09-14 | Fix few issues with new config.install.scope | Boris Kolpackov | 1 | -32/+31 | |
2021-09-14 | Consistently install prerequisites from any scope by default | Boris Kolpackov | 5 | -24/+111 | |
It is also now possible to adjust this behavior with global config.install.scope override. Valid values for this variable are: project -- only from project strong -- from strong amalgamation weak -- from weak amalgamation global -- from all projects (default) | |||||
2021-05-04 | Add config.install.root with data_root/etc/ default | Boris Kolpackov | 1 | -0/+2 | |
2021-04-22 | Add <version> install directory substitution in addition to <project> | Boris Kolpackov | 1 | -5/+20 | |
2021-04-07 | Register environment variables for hermetic build configurations | Boris Kolpackov | 1 | -0/+34 | |
2021-02-09 | Minor simplification | Boris Kolpackov | 1 | -2/+2 | |