Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2024-11-18 | Only install runtime part of static library prerequisites of share libraries ↵ | Boris Kolpackov | 3 | -5/+37 | |
(GH issue #448) | |||||
2024-02-22 | Diagnose instead of asserting lib{} group with no members | Boris Kolpackov | 1 | -1/+3 | |
Fixes GH issue #361. | |||||
2024-01-08 | Add {bin,c,cxx}.types submodules that only register target types | Boris Kolpackov | 2 | -44/+82 | |
2023-12-03 | Reimplement search_existing() functions via target_type::search | Boris Kolpackov | 2 | -5/+5 | |
This allows us to automatically get the target type-specific behavior with regards to the out_only semantics (added in the previous commit) instead of passing it explicitly from each call site. | |||||
2023-11-01 | Use match options for runtime/buildtime distinction when installing libraries | Boris Kolpackov | 1 | -0/+15 | |
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-28 | Don't mark rdata symbols DATA in MSVC .def file (GH issue #315) | Boris Kolpackov | 1 | -1/+9 | |
2023-08-03 | Document target types in manual (GH issue #309) | Boris Kolpackov | 1 | -0/+3 | |
2023-04-21 | Make sure main module_functions entry is after submodules | Boris Kolpackov | 1 | -1/+1 | |
2023-03-22 | Initial work on relocatable install: config.install.relocatable and rpath | Boris Kolpackov | 1 | -0/+3 | |
2022-12-06 | Handle bin.whole when specified for interface dependencies | Boris Kolpackov | 1 | -6/+6 | |
2022-12-01 | Fix corner case in distributing via obj{}, libul{} groups | Boris Kolpackov | 4 | -3/+102 | |
2022-11-23 | Rework diag_buffer interface to facilitate correct destruction order | Boris Kolpackov | 1 | -16/+14 | |
2022-11-16 | Initial low verbosity diagnostics rework | Boris Kolpackov | 1 | -1/+5 | |
2022-11-08 | Make process exit diagnostics consistent | Boris Kolpackov | 1 | -1/+1 | |
In particular, we now always print error message on non-0 exit except in cases where such exit is ignored. | |||||
2022-11-08 | Tighten args const-ness in the run*() function family | Boris Kolpackov | 1 | -3/+0 | |
2022-11-08 | Rework header dependency extraction with diagnostics buffering | Boris Kolpackov | 1 | -4/+4 | |
2022-11-08 | More work on child process diagnostics buffering | Boris Kolpackov | 4 | -65/+157 | |
2022-10-27 | Initial work on child process diagnostics buffering | Boris Kolpackov | 1 | -0/+3 | |
Currently this is implemented for C/C++ compile and link rules. | |||||
2022-10-25 | Adapt to butl::semantic_version API change | Karen Arutyunov | 1 | -2/+5 | |
2022-10-13 | Optimize by going straight to public variable pool where applicable | Boris Kolpackov | 1 | -6/+21 | |
2022-10-10 | Preparatory work for public/private variable distinction | Boris Kolpackov | 1 | -0/+4 | |
We still always use the public var_pool from context but where required, all access now goes through scope::var_pool(). | |||||
2022-07-21 | Make LLVM tools (ar, lld, etc) detection more robust | Boris Kolpackov | 1 | -6/+18 | |
2022-06-24 | Make libul{} rule match without hint | Boris Kolpackov | 3 | -31/+11 | |
In the end, the extra jumping through the hoops doesn't justify the extra safety we gain. The only plausible accidental mistake is making libul{} a dependency of ./ but then we don't prevent the same for libue{}, which also doesn't make much sense. Though, the consequences of doing this for libul{} could be more severe, like messed up for-install'ness. Oh, well, I guess people will just have to pay attention (this could be a good check for the linter we've been thinking about). | |||||
2022-06-24 | Match rule to libul{} with explicit bin.metadata hint | Boris Kolpackov | 5 | -11/+110 | |
This rule picks, matches, and unmatches (if possible) a member for the purpose of making its metadata (for example, library's poptions, if it's one of the cc libraries) available. | |||||
2022-04-15 | Get rid of target::dynamic_type() virtual function | Boris Kolpackov | 2 | -53/+131 | |
Instead of overriding this function, derived targets must now set the dynamic_type variable to their static_type in their constructor body. | |||||
2022-04-06 | Get rid of stray trailing commas | Boris Kolpackov | 1 | -6/+6 | |
2022-04-06 | Add support for rule hints | Boris Kolpackov | 6 | -38/+39 | |
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-11 | Remove unnecessary header inclusions | Boris Kolpackov | 1 | -0/+1 | |
2021-10-27 | Handle "common symbols" in symbol exporting .def generation rule | Boris Kolpackov | 1 | -15/+53 | |
2021-10-14 | Use tidier pc and def names instead of generic gen for .pc and .def generation | Boris Kolpackov | 1 | -1/+1 | |
2021-10-11 | Update bin.lib.version documentation | Boris Kolpackov | 1 | -3/+0 | |
2021-06-30 | Complete nm detection | Boris Kolpackov | 2 | -7/+22 | |
2021-06-30 | Move symbol exporting .def file rule to bin.def module, add support for MinGW | Boris Kolpackov | 3 | -153/+284 | |
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-21 | Add support for automatic generation of symbol exporting .def file | Boris Kolpackov | 6 | -3/+910 | |
2021-05-04 | Replace int_ with intf_ and imp_ with impl_ in names | Boris Kolpackov | 1 | -2/+2 | |
2021-04-22 | Incorporate project environment checksum into cc::compiler_info cache key | Boris Kolpackov | 2 | -0/+21 | |
2021-04-20 | Detect environment changes in ad hoc recipes | Boris Kolpackov | 1 | -8/+20 | |
2021-04-20 | Disable bunch of bogus GCC warnings | Boris Kolpackov | 1 | -3/+0 | |
2021-04-07 | Register environment variables for hermetic build configurations | Boris Kolpackov | 3 | -4/+69 | |
2021-01-30 | Add std::{map, multimap} to types.hxx | Boris Kolpackov | 1 | -2/+0 | |
Seeing that std::map is becoming a common Buildfile variable type. | |||||
2021-01-22 | Redo bin.lib.version not to require empty key | Boris Kolpackov | 1 | -2/+5 | |
2021-01-11 | Fix libul{} rule diagnostics | Boris Kolpackov | 3 | -16/+44 | |
2020-12-15 | Cache more results of executing programs (compilers, etc) | Boris Kolpackov | 3 | -55/+111 | |
2020-12-11 | Add support for module interface-only libraries | Boris Kolpackov | 3 | -12/+27 | |
Also suppress generation of the object file in cases where we don't need it. | |||||
2020-12-04 | Fix bug in installed libraries matching logic | Boris Kolpackov | 2 | -3/+7 | |
2020-12-04 | Mark Buildfile functions as pure or impure | Boris Kolpackov | 1 | -1/+3 | |
2020-12-03 | Fix modules support for installed libraries | Boris Kolpackov | 2 | -7/+3 | |
2020-11-12 | Assign fixed extensions to wasm{} and pdb{} target types | Boris Kolpackov | 1 | -2/+28 | |
2020-11-06 | Resolve warning | Boris Kolpackov | 1 | -1/+1 | |
2020-11-06 | Keep executable bit on .wasm files when installing | Boris Kolpackov | 1 | -2/+4 | |