aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/cc/install-rule.cxx
AgeCommit message (Collapse)AuthorFilesLines
2023-11-22Fix cc::link_rule and cc::install_rule to recognize S{} even in C++Boris Kolpackov1-10/+14
Failed that, a C++ link rule cannot match a dependency with S{} prerequisites.
2023-11-01Handle match options for post hoc libs{} prerequisites in cc::install_ruleBoris Kolpackov1-0/+72
2023-11-01Use match options for runtime/buildtime distinction when installing librariesBoris Kolpackov1-56/+362
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-11-01Undo "Don't install static library prerequisites of executable"Boris Kolpackov1-24/+0
This turned out not to be always correct since a static library can have prerequisites that it requires at runtime (see the libca-certificates-curl for an example). The new plan is to split static/shared library installation into run-time and build-time parts using the new match options mechanism.
2023-09-21Fix bug in previous commitBoris Kolpackov1-1/+1
2023-09-21Don't install static library prerequisites of executableBoris Kolpackov1-0/+30
2023-04-18Add support for Assembler with C Preprocessor (.S) compilationBoris Kolpackov1-0/+2
Specifically, the c module now provides the c.as-cpp submodules which can be loaded in order to register the S{} target type and enable Assembler with C Preprocessor compilation in the c compile rule. For details, refer to "Assembler with C Preprocessor Compilation" in the manual.
2023-03-01Add support for installation manifestBoris Kolpackov1-3/+3
2022-11-22Add support for Objective-C/C++ compilation in cc moduleBoris Kolpackov1-2/+4
2022-11-16Initial low verbosity diagnostics reworkBoris Kolpackov1-6/+8
2022-04-19Use target recipe for auxiliary data storage during match-applyBoris Kolpackov1-5/+21
In particular, we now have separate auxiliary data storage for inner and outer operations.
2022-04-19Switch to using std::function for target::data_padBoris Kolpackov1-3/+0
2022-04-06Add support for rule hintsBoris Kolpackov1-9/+8
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.
2021-10-07Verify libraries and targets they are linked to a for-install-compatibleBoris Kolpackov1-1/+4
2021-10-07Minor install-related cleanupsBoris Kolpackov1-1/+4
2021-09-14Consistently install prerequisites from any scope by defaultBoris Kolpackov1-10/+14
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)
2020-07-07Skip sources of executables in cc::install_ruleBoris Kolpackov1-4/+23
Failed that, they may pull headers via an ad hoc group.
2020-02-07Drop copyright notice from source codeKaren Arutyunov1-1/+0
2019-08-28Move cc build system module to separate libraryKaren Arutyunov1-0/+355