Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2020-11-19 | Handle C++20 module partitions in scanner | Boris Kolpackov | 7 | -63/+176 | |
2020-11-17 | Resolve warning | Boris Kolpackov | 1 | -0/+1 | |
2020-11-17 | Omit default extensions for target types that now have fixed extensions | Boris Kolpackov | 1 | -2/+2 | |
2020-11-17 | Implement modules pseudo-directive parsing (p1703, p1857) | Boris Kolpackov | 7 | -54/+148 | |
2020-11-13 | Minor tracing fix and addition | Boris Kolpackov | 1 | -0/+3 | |
2020-11-11 | Add ${c,cxx}.lib_{poptions,libs,rpaths}() functions | Boris Kolpackov | 9 | -104/+388 | |
These functions can be used to query library metadata for options and libraries that should be used when compiling/linking dependent targets, similar to how cc::{compile,link}_rule do it. With this support it should be possible to more or less re-create their semantics in ad hoc recipes. | |||||
2020-11-05 | Initial Emscripten support | Boris Kolpackov | 5 | -397/+650 | |
- Target: wasm32-emscripten (wasm32-unknown-emscripten). - Compiler id: clang-emscripten (type clang, variant emscripten, class gcc). - Ability to build executables (.js plus .wasm) and static libraries (.a). Set executable bit on the .js file (so it can be executed with a suitable binfmt interpreter). - Default config.bin.lib for wasm32-emscripten is static instead of both. - Full C++ exception support is enable unless disabled explicitly by the user with -s DISABLE_EXCEPTION_CATCHING=1|2. - The bin module registers the wasm{} target type for wasm32-emscripten. | |||||
2020-11-04 | Minor terminology tweak | Boris Kolpackov | 1 | -1/+1 | |
2020-09-24 | Give hints for common causes of "no rule to update ..." error | Boris Kolpackov | 3 | -4/+4 | |
2020-08-24 | Use representation when passing target_triplet as hint | Boris Kolpackov | 2 | -2/+2 | |
2020-08-12 | Adjust linker arguments for LTO parallelization | Matthew Krupcale | 1 | -0/+54 | |
GCC 10+ and Clang 4+ support controlling the number of LTO threads/jobs used during linking. Use the build2 scheduler to allocate up to the number of hardware threads to the GCC or Clang linker processes when -flto=auto or -flto=thin is specified, respectively. Otherwise, GCC or Clang will attempt to spawn the number of hardware threads detected for each linker process, which could result in up to n^2 linker threads on a CPU with n hardware threads. | |||||
2020-07-23 | Escape quotes in .pc file values besides spaces and backslashes | Karen Arutyunov | 1 | -1/+1 | |
2020-07-17 | Fix race in path/mtime assignment and file_rule::match() | Boris Kolpackov | 2 | -23/+9 | |
2020-07-17 | Use -fexternc-nounwind by default for Clang targeting MSVC | Boris Kolpackov | 1 | -5/+27 | |
This option implements the 'c' part in /EHsc and is not a mere optimization; see Clang bug #45021 for details. | |||||
2020-07-16 | Save original compiler path/mode in {c,cxx}.config.path/mode | Boris Kolpackov | 3 | -9/+17 | |
It turns out that when propagating {c,cxx}.config in tests we don't want to propagate any options (such as *.std) that have been folded into our project's mode. | |||||
2020-07-14 | Fix Clang warning | Boris Kolpackov | 1 | -0/+2 | |
2020-07-13 | Add ability to extend rule interface in source-compatible manner | Boris Kolpackov | 2 | -2/+2 | |
2020-07-13 | Fold translated *.std options into compiler mode options | Boris Kolpackov | 6 | -30/+13 | |
This way they are accessible in ad hoc recipes. | |||||
2020-07-07 | Make sure paths used to insert target are canonicalized | Boris Kolpackov | 1 | -3/+9 | |
2020-07-07 | Skip sources of executables in cc::install_rule | Boris Kolpackov | 1 | -4/+23 | |
Failed that, they may pull headers via an ad hoc group. | |||||
2020-07-01 | Fix bug in *.export.imp_libs logic | Boris Kolpackov | 2 | -3/+3 | |
2020-07-01 | Add additional diagnostics for unassigned path (GitHub issue #89) | Boris Kolpackov | 1 | -6/+10 | |
2020-07-01 | Add additional diagnostics for disappearing header (GitHub issue #80) | Boris Kolpackov | 1 | -0/+16 | |
2020-07-01 | Add *.export.imp_libs to get rid of dual *.export.libs semantics | Boris Kolpackov | 3 | -36/+38 | |
2020-06-26 | Handle #import in MSVC /showIncludes output | Boris Kolpackov | 2 | -13/+44 | |
2020-06-26 | Minor terminology fix in comments | Boris Kolpackov | 1 | -3/+2 | |
2020-06-26 | Fix race in library metadata protocol | Boris Kolpackov | 2 | -4/+5 | |
Specifically, we need to check whether the prerequisite_member is ad hoc before checking whether it is NULL because ad hoc ones are blanked out (set to NULL) during execute. | |||||
2020-06-25 | Fix warning | Boris Kolpackov | 1 | -1/+1 | |
2020-06-25 | Add more instrumentation for unassigned path race | Boris Kolpackov | 1 | -14/+41 | |
2020-06-24 | Fix trace and clarify comments | Boris Kolpackov | 1 | -9/+12 | |
2020-06-22 | Try to detect and warn about the ccache compiler wrapper | Boris Kolpackov | 1 | -4/+24 | |
2020-06-22 | Add version mapping for Apple Clang 11.0.3 | Boris Kolpackov | 1 | -14/+22 | |
2020-06-18 | Complete NetBSD compatibility | Boris Kolpackov | 3 | -2/+7 | |
2020-06-16 | Move common functionality from cc to bin | Boris Kolpackov | 5 | -177/+18 | |
2020-06-12 | Make order of imports stable in saved host build configuration | Boris Kolpackov | 1 | -0/+2 | |
2020-06-09 | Move C++ modules sidebuild to build/cc/build/modules/ subdirectory | Boris Kolpackov | 4 | -13/+26 | |
2020-06-08 | Hash ad hoc prerequsites for ad hoc recipe change detection | Boris Kolpackov | 1 | -1/+1 | |
2020-06-02 | Add process_path_ex with program stable name and checksum | Boris Kolpackov | 1 | -1/+1 | |
2020-05-27 | Initial support for ad hoc recipes (still work in progress) | Boris Kolpackov | 4 | -37/+20 | |
2020-05-22 | Fix bug in previous commit | Boris Kolpackov | 1 | -1/+1 | |
2020-05-22 | Make template definition available in all translation units where used | Boris Kolpackov | 3 | -28/+38 | |
We were trying to be clever but GCC 10's IPA-SRA optimization didn't like it. | |||||
2020-04-30 | Rename target::member to target::adhoc_member | Boris Kolpackov | 2 | -2/+2 | |
2020-04-27 | Rework tool importation along with cli module | Boris Kolpackov | 4 | -22/+10 | |
Specifically, now config.<tool> (like config.cli) is handled by the import machinery (it is like a shorter alias for config.import.<tool>.<tool>.exe that we already had). And the cli module now uses that instead of custom logic. This also adds support for uniform tool metadata extraction that is handled by the import machinery. As a result, a tool that follows the "build2 way" can be imported with metadata by the buildfile and/or corresponding module without any tool-specific code or brittleness associated with parsing --version or similar outputs. See the cli tool/module for details. Finally, two new flavors of the import directive are now supported: import! triggers immediate importation skipping any rule-specific logic while import? is optional import (analogous to using?). Note that optional import is always immediate. There is also the import-specific metadata attribute which can be specified for these two import flavors in order to trigger metadata importation. For example: import? [metadata] cli = cli%exe{cli} if ($cli != [null]) info "cli version $($cli:cli.version)" | |||||
2020-04-13 | Add ../share/pkgconfig/ search directory by default on Linux | Boris Kolpackov | 2 | -10/+20 | |
2020-04-11 | Pass LC_ALL=C when extracting locale-dependent information in bin module on ↵ | Karen Arutyunov | 1 | -1/+0 | |
POSIX | |||||
2020-04-07 | Pass LC_ALL=C when extracting locale-dependent information on POSIX | Boris Kolpackov | 2 | -19/+68 | |
2020-04-02 | Fix ~host config to only contain cc and bin modules configuration | Boris Kolpackov | 1 | -1/+1 | |
Also add ~build2 that contains everything (except config.dist.*) to be used for build system modules. | |||||
2020-03-31 | Switch to project variable visibility by default | Boris Kolpackov | 2 | -15/+18 | |
2020-03-20 | Generate common .pc file in addition to static/staged when installing lib{} | Boris Kolpackov | 6 | -26/+88 | |
The common .pc file is produced by ignoring any static/shared-specific poptions and splitting loptions/libs into Libs/Libs.private. It is "best effort", in a sense that it's not guaranteed to be sufficient in all cases, but it will probably cover the majority of cases, even on Windows, thanks to automatic dllimport'ing of functions. | |||||
2020-03-17 | Rename all find*(variable) to lookup*(variable) | Boris Kolpackov | 1 | -6/+6 | |
Now we consistently use term "lookup" for variable value lookup. At some point we should also rename type lookup to binding and get rid of all the lookup_type aliases. |