Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2021-09-20 | Add netapi32.lib to the list of Windows system libraries | Boris Kolpackov | 1 | -0/+1 | |
2021-09-20 | Assign pre-defined semantics to config.<project>.develop variables | Boris Kolpackov | 6 | -45/+123 | |
This variable allows a project to distinguish between development and consumption builds. While normally there is no distinction between these two modes, sometimes a project may need to provide additional functionality during development. For example, a source code generator which uses its own generated code in its implementation may need to provide a bootstrap step from the pre-generated code. Normally, such a step is only needed during development. See "Project Configuration" in the manual for details. | |||||
2021-09-17 | Add fallback update-for-uninstall rule to global scope | Boris Kolpackov | 1 | -3/+6 | |
2021-09-16 | Fix diagnostics corner case in perform_clean_extra() | Boris Kolpackov | 1 | -5/+5 | |
2021-09-16 | Fix over-tight assumption in standard operation match() | Boris Kolpackov | 1 | -0/+1 | |
2021-09-15 | Do variable lookup in ad hoc target groups | Boris Kolpackov | 4 | -22/+52 | |
2021-09-14 | Add support for passing multiple names to $name.*() functions | Boris Kolpackov | 1 | -3/+49 | |
2021-09-14 | Fix few issues with new config.install.scope | Boris Kolpackov | 1 | -32/+31 | |
2021-09-14 | Impose 12K line count limit for regex matches in Testscript | Boris Kolpackov | 1 | -1/+15 | |
2021-09-14 | Consistently install prerequisites from any scope by default | Boris Kolpackov | 9 | -60/+131 | |
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-09-13 | Impose 16KB line length limit for regex matches in Testscript | Boris Kolpackov | 1 | -1/+14 | |
2021-09-09 | Handle Emscripten -pthread mode | Boris Kolpackov | 1 | -0/+15 | |
2021-09-08 | Adjust to renaming of butl::fdbuf to fdstreambuf | Boris Kolpackov | 2 | -4/+4 | |
2021-09-02 | Don't consider aliasing in variable override lookup | Boris Kolpackov | 3 | -6/+13 | |
2021-09-02 | Add diag_frame around export stub loading | Boris Kolpackov | 1 | -2/+11 | |
This gives the location of the importer in case the export stub issues any diagnostics. | |||||
2021-08-25 | Keep mtime check always enabled on Windows | Boris Kolpackov | 2 | -3/+5 | |
Windows is known not to guarantee monotonically increasing mtimes. | |||||
2021-08-23 | Clear data in target::data() modifiers | Boris Kolpackov | 1 | -2/+4 | |
Currently we may end up resetting the data during the rule ambiguity detection. | |||||
2021-08-18 | Fix bug in external module skipping logic | Boris Kolpackov | 1 | -7/+5 | |
2021-08-13 | Fix amalgamation discovery logic some more | Boris Kolpackov | 1 | -1/+5 | |
2021-08-13 | Cache git status results in version module | Boris Kolpackov | 4 | -53/+64 | |
2021-08-12 | Add ${c,cxx}.deduplicate_export_libs() function | Boris Kolpackov | 4 | -0/+154 | |
This function deduplicates interface library dependencies by removing libraries that are also interface dependencies of the specified libraries. This can result in significantly better build performance for heavily interface-interdependent library families (for example, like Boost). Typical usage: import intf_libs = ... import intf_libs += ... ... import intf_libs += ... intf_libs = $cxx.deduplicate_export_libs($intf_libs) | |||||
2021-08-12 | Avoid duplication in Libs/Libs.private in generated .pc files | Boris Kolpackov | 3 | -23/+69 | |
2021-08-11 | Optimize process_libraries() some more | Boris Kolpackov | 5 | -23/+59 | |
2021-08-10 | Complete process_libraries() duplicate suppression work | Boris Kolpackov | 5 | -69/+114 | |
2021-08-09 | Use parse_variable_name() in parse_import(), parse_config() | Boris Kolpackov | 2 | -15/+22 | |
2021-08-09 | Make variable assignment mandatory in import directive | Boris Kolpackov | 1 | -125/+52 | |
In return we get the ability to specify value attributes. | |||||
2021-08-09 | Merge library hashing and collection into single traversal pass | Boris Kolpackov | 4 | -230/+106 | |
It turns out this is a lot faster on deeply-dependent libraries like Boost while not having any noticeable differences for "sane" projects. | |||||
2021-08-09 | Print pkgconfig_save() command at verbosity 1 since can take long | Boris Kolpackov | 1 | -1/+6 | |
2021-08-05 | Implement traversal pruning in process_libraries() | Boris Kolpackov | 8 | -421/+503 | |
2021-08-05 | Add resolved library cache, use in cc::process_libraries() | Boris Kolpackov | 2 | -9/+74 | |
2021-08-05 | Avoid normalizing likely already normalized directories in search_existing() | Boris Kolpackov | 1 | -1/+8 | |
2021-08-04 | Take into account file-base'ness in ad hoc buildscript recipes | Boris Kolpackov | 10 | -19/+76 | |
2021-08-03 | Fix incorrect assumption in amalgamation discovery logic | Boris Kolpackov | 1 | -8/+10 | |
2021-08-03 | Regenerate options parsing files | Boris Kolpackov | 3 | -14/+90 | |
2021-08-02 | Print list of bootstrapped modules in info meta-operation | Boris Kolpackov | 1 | -1/+10 | |
2021-07-30 | Fix issue in amalgamation discovery | Boris Kolpackov | 1 | -41/+53 | |
2021-07-23 | Remove duplicate friend declaration to make GCC 4.9 happy | Boris Kolpackov | 1 | -2/+0 | |
2021-07-23 | Reserve variable names/components that start with underscore to build2 core | Boris Kolpackov | 3 | -15/+44 | |
2021-07-22 | Adjust Emscripten Clang version to account for unreleased snapshots | Boris Kolpackov | 1 | -1/+17 | |
2021-07-22 | Add note on new /std:c11 and /std:c17 MSVC options | Boris Kolpackov | 1 | -0/+5 | |
2021-07-22 | Update C++ standard mapping for latest versions of compilers | Boris Kolpackov | 1 | -17/+31 | |
2021-07-20 | Map Apple Clang version 12.0.5 to vanilla Clang 10.0.0 | Boris Kolpackov | 1 | -16/+19 | |
2021-07-06 | Clear errno before calling strto*() functions | Boris Kolpackov | 1 | -0/+1 | |
2021-07-01 | Suppress duplicate libraries in pkg-config files | Boris Kolpackov | 3 | -46/+89 | |
2021-07-01 | Handle GCC versions in 9.2-win32 form (GitHub issue #156) | Boris Kolpackov | 1 | -25/+19 | |
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 | 4 | -155/+288 | |
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 | 13 | -19/+926 | |
2021-06-09 | Fix cxx pattern rule test | Boris Kolpackov | 2 | -1/+6 | |
2021-06-08 | Redo low verbosity diagnostic deduction to use scope instead of target | Boris Kolpackov | 9 | -51/+38 | |