aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/bin/def-rule.cxx
AgeCommit message (Collapse)AuthorFilesLines
2022-11-08Make process exit diagnostics consistentBoris Kolpackov1-1/+1
In particular, we now always print error message on non-0 exit except in cases where such exit is ignored.
2022-11-08Tighten args const-ness in the run*() function familyBoris Kolpackov1-3/+0
2022-11-08Rework header dependency extraction with diagnostics bufferingBoris Kolpackov1-4/+4
2022-11-08More work on child process diagnostics bufferingBoris Kolpackov1-37/+121
2022-10-27Initial work on child process diagnostics bufferingBoris Kolpackov1-0/+3
Currently this is implemented for C/C++ compile and link rules.
2022-04-06Add support for rule hintsBoris Kolpackov1-1/+1
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-02-11Remove unnecessary header inclusionsBoris Kolpackov1-0/+1
2021-10-27Handle "common symbols" in symbol exporting .def generation ruleBoris Kolpackov1-15/+53
2021-10-14Use tidier pc and def names instead of generic gen for .pc and .def generationBoris Kolpackov1-1/+1
2021-06-30Move symbol exporting .def file rule to bin.def module, add support for MinGWBoris Kolpackov1-137/+244
The bin.def module is automatically loaded by the c and cxx modules for the *-win32-msvc target architecture. This allows automatically exporting all symbols for all Windows targets using the following setup (showing for cxx in this example): lib{foo}: libul{foo}: {hxx cxx}{**} ... lib{foo}: def{foo}: include = ($cxx.target.system == 'win32-msvc') def{foo}: libul{foo} if ($cxx.target.system == 'mingw32') cxx.loptions += -Wl,--export-all-symbols That is, we use the .def file generation for MSVC and the built-in support (--export-all-symbols) for MinGW. But it is also possible to use the .def file generation for MinGW. In this case we need to explicitly load the bin.def module (which should be done after loading c or cxx) and using the following setup: using bin.def # In root.build. lib{foo}: libul{foo}: {hxx cxx}{**} ... lib{foo}: def{foo}: include = ($cxx.target.class == 'windows') def{foo}: libul{foo}
2021-06-21Add support for automatic generation of symbol exporting .def fileBoris Kolpackov1-0/+610