Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2022-04-14 | Add header cache to cc::compile_rule::enter_header() | Boris Kolpackov | 1 | -1/+1 | |
2022-04-06 | Add support for rule hints | Boris Kolpackov | 2 | -6/+5 | |
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-03-28 | Add ability to customize pkg-config header and library search paths | Boris Kolpackov | 1 | -0/+6 | |
Specifically, {cc,c,cxx}.pkgconfig.{include,lib} variables specify header (-I) and library (-L) search paths to use in the generated .pc files instead of the default install.{include,lib}. Relative paths are resolved as install paths. | |||||
2021-10-14 | Map latest to -std=c++2b from Clang 13, /std:c++20 from MSVC 16.11 | Boris Kolpackov | 1 | -17/+16 | |
2021-10-04 | Document internal scope functionality | Boris Kolpackov | 1 | -1/+1 | |
2021-10-04 | Optimize internal scope implementation | Boris Kolpackov | 1 | -2/+2 | |
2021-10-04 | Add support for treating specific libraries as always internal | Boris Kolpackov | 1 | -1/+37 | |
2021-10-01 | Add notion of internal scope, translate external -I to -isystem or equivalent | Boris Kolpackov | 1 | -0/+72 | |
2021-07-22 | Update C++ standard mapping for latest versions of compilers | Boris Kolpackov | 1 | -17/+31 | |
2021-05-13 | Rename sys_inc_dirs to sys_hdr_dirs for consistency | Boris Kolpackov | 1 | -4/+4 | |
2021-05-04 | Replace int_ with intf_ and imp_ with impl_ in names | Boris Kolpackov | 2 | -6/+6 | |
2021-04-20 | Track changes to environment in cc rules | Boris Kolpackov | 1 | -0/+1 | |
2021-04-15 | Disable modules support in VC 16.8 and later due to options change | Boris Kolpackov | 1 | -2/+5 | |
See GitHub issue #134 for background. | |||||
2021-02-15 | Cosmetic change | Boris Kolpackov | 1 | -1/+1 | |
2021-02-09 | Allow overriding cxx.features.modules with config.cxx.features.modules | Boris Kolpackov | 1 | -11/+60 | |
2021-01-30 | Rework include translation support | Boris Kolpackov | 1 | -8/+36 | |
See the config.cxx.translate_include variable documentation in cxx/init.cxx for details. | |||||
2021-01-19 | Adjust C++20 modules enablement for GCC | Boris Kolpackov | 1 | -14/+5 | |
2021-01-14 | Pass /Zc:__cplusplus by default starting from VC 15.7 (GitHub issue #107) | Boris Kolpackov | 1 | -0/+11 | |
This can be overridden by passing a variant of this option as part of the compiler mode options. | |||||
2020-12-11 | Add support for module interface-only libraries | Boris Kolpackov | 1 | -0/+2 | |
Also suppress generation of the object file in cases where we don't need it. | |||||
2020-11-30 | Start adapting module mapper to latest GCC protocol | Boris Kolpackov | 1 | -4/+9 | |
2020-07-16 | Save original compiler path/mode in {c,cxx}.config.path/mode | Boris Kolpackov | 1 | -0/+2 | |
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-13 | Fold translated *.std options into compiler mode options | Boris Kolpackov | 1 | -16/+17 | |
This way they are accessible in ad hoc recipes. | |||||
2020-07-01 | Add *.export.imp_libs to get rid of dual *.export.libs semantics | Boris Kolpackov | 1 | -0/+2 | |
2020-06-22 | Disable Clang C++20 modules support unless explicitly forced | Boris Kolpackov | 1 | -5/+11 | |
2020-06-22 | Add version mapping for Apple Clang 11.0.3 | Boris Kolpackov | 1 | -3/+0 | |
2020-06-12 | Make order of imports stable in saved host build configuration | Boris Kolpackov | 1 | -0/+2 | |
2020-06-02 | Add process_path_ex with program stable name and checksum | Boris Kolpackov | 1 | -4/+4 | |
2020-04-27 | Rework tool importation along with cli module | Boris Kolpackov | 1 | -3/+3 | |
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-03-31 | Switch to project variable visibility by default | Boris Kolpackov | 1 | -22/+19 | |
2020-02-24 | Work around bug in Clang 10 targeting MSVC in c++2a (LLVM bug #44956) | Boris Kolpackov | 1 | -5/+24 | |
2020-02-21 | Define __cpp_modules=201810 (merged modules) for MSVC 16.4 | Boris Kolpackov | 1 | -8/+11 | |
2020-02-07 | Drop copyright notice from source code | Karen Arutyunov | 6 | -6/+0 | |
2020-02-03 | Add header/library search paths from compiler mode to sys_*_dirs | Boris Kolpackov | 1 | -3/+6 | |
2020-01-29 | Rename module_base to module, redo module boot/init argument passing | Boris Kolpackov | 1 | -22/+14 | |
2020-01-28 | Use scope::var_pool() | Boris Kolpackov | 1 | -72/+71 | |
2020-01-27 | Improve module loading API | Boris Kolpackov | 1 | -8/+6 | |
2019-11-16 | Revert temporary use of c++17 mode in GCC modules support | Boris Kolpackov | 1 | -4/+0 | |
2019-11-05 | Add support for supplying MSVC IFCPATH equivalent | Boris Kolpackov | 1 | -0/+1 | |
2019-11-05 | Recognize latest C (2x) and C++ (2b) standards | Boris Kolpackov | 1 | -8/+9 | |
2019-10-21 | Add more information on C and C++ compiler mode options to manual | Boris Kolpackov | 1 | -0/+2 | |
2019-10-18 | Add ability to specify "compiler mode" options as part of config.{c,cxx} | Boris Kolpackov | 1 | -1/+3 | |
Such options are (normally) not overridden by buildfiles and are passed last (after cc.coptions and {c,cxx}.coptions) in the resulting command lines. They are also cross-hinted between config.c and config.cxx. For example: $ b config.cxx="g++ -m64" | |||||
2019-10-11 | Switch clang-apple to primary/variant version setup | Boris Kolpackov | 1 | -30/+0 | |
2019-10-11 | Add support for clang-cl | Boris Kolpackov | 1 | -5/+11 | |
The compiler type is `msvc`, variant `clang`. | |||||
2019-10-07 | Pass MSVC system library search paths to linker if LIB envvar is unset | Boris Kolpackov | 1 | -5/+5 | |
2019-10-01 | Remap `cxx.std=latest` to `c++17` instead of `c++latest` for MSVC 16 | Boris Kolpackov | 1 | -24/+56 | |
See for details: https://github.com/build2/build2/issues/34 | |||||
2019-09-18 | Rename importable_headers variable to translatable_headers | Boris Kolpackov | 1 | -7/+7 | |
This name aligns better with the post-Cologne importable/translatable semantics. | |||||
2019-09-18 | Temporarily force c++17 if using GCC modules branch | Boris Kolpackov | 1 | -1/+5 | |
The use of 2a-isms in the standard library are breaking things on a regular basic. | |||||
2019-08-28 | Make lib{build2} "implied interface dependency" of modules | Boris Kolpackov | 1 | -5/+3 | |
This makes our compilation and linking command lines a little bit saner. | |||||
2019-08-28 | Reduce repetition in buildfiles | Boris Kolpackov | 1 | -6/+1 | |
2019-08-28 | Move cxx build system module to separate library | Karen Arutyunov | 6 | -0/+971 | |