aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/cxx
AgeCommit message (Collapse)AuthorFilesLines
2021-10-04Optimize internal scope implementationBoris Kolpackov1-2/+2
2021-10-04Add support for treating specific libraries as always internalBoris Kolpackov1-1/+37
2021-10-01Add notion of internal scope, translate external -I to -isystem or equivalentBoris Kolpackov1-0/+72
2021-07-22Update C++ standard mapping for latest versions of compilersBoris Kolpackov1-17/+31
2021-05-13Rename sys_inc_dirs to sys_hdr_dirs for consistencyBoris Kolpackov1-4/+4
2021-05-04Replace int_ with intf_ and imp_ with impl_ in namesBoris Kolpackov2-6/+6
2021-04-20Track changes to environment in cc rulesBoris Kolpackov1-0/+1
2021-04-15Disable modules support in VC 16.8 and later due to options changeBoris Kolpackov1-2/+5
See GitHub issue #134 for background.
2021-02-15Cosmetic changeBoris Kolpackov1-1/+1
2021-02-09Allow overriding cxx.features.modules with config.cxx.features.modulesBoris Kolpackov1-11/+60
2021-01-30Rework include translation supportBoris Kolpackov1-8/+36
See the config.cxx.translate_include variable documentation in cxx/init.cxx for details.
2021-01-19Adjust C++20 modules enablement for GCCBoris Kolpackov1-14/+5
2021-01-14Pass /Zc:__cplusplus by default starting from VC 15.7 (GitHub issue #107)Boris Kolpackov1-0/+11
This can be overridden by passing a variant of this option as part of the compiler mode options.
2020-12-11Add support for module interface-only librariesBoris Kolpackov1-0/+2
Also suppress generation of the object file in cases where we don't need it.
2020-11-30Start adapting module mapper to latest GCC protocolBoris Kolpackov1-4/+9
2020-07-16Save original compiler path/mode in {c,cxx}.config.path/modeBoris Kolpackov1-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-13Fold translated *.std options into compiler mode optionsBoris Kolpackov1-16/+17
This way they are accessible in ad hoc recipes.
2020-07-01Add *.export.imp_libs to get rid of dual *.export.libs semanticsBoris Kolpackov1-0/+2
2020-06-22Disable Clang C++20 modules support unless explicitly forcedBoris Kolpackov1-5/+11
2020-06-22Add version mapping for Apple Clang 11.0.3Boris Kolpackov1-3/+0
2020-06-12Make order of imports stable in saved host build configurationBoris Kolpackov1-0/+2
2020-06-02Add process_path_ex with program stable name and checksumBoris Kolpackov1-4/+4
2020-04-27Rework tool importation along with cli moduleBoris Kolpackov1-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-31Switch to project variable visibility by defaultBoris Kolpackov1-22/+19
2020-02-24Work around bug in Clang 10 targeting MSVC in c++2a (LLVM bug #44956)Boris Kolpackov1-5/+24
2020-02-21Define __cpp_modules=201810 (merged modules) for MSVC 16.4Boris Kolpackov1-8/+11
2020-02-07Drop copyright notice from source codeKaren Arutyunov6-6/+0
2020-02-03Add header/library search paths from compiler mode to sys_*_dirsBoris Kolpackov1-3/+6
2020-01-29Rename module_base to module, redo module boot/init argument passingBoris Kolpackov1-22/+14
2020-01-28Use scope::var_pool()Boris Kolpackov1-72/+71
2020-01-27Improve module loading APIBoris Kolpackov1-8/+6
2019-11-16Revert temporary use of c++17 mode in GCC modules supportBoris Kolpackov1-4/+0
2019-11-05Add support for supplying MSVC IFCPATH equivalentBoris Kolpackov1-0/+1
2019-11-05Recognize latest C (2x) and C++ (2b) standardsBoris Kolpackov1-8/+9
2019-10-21Add more information on C and C++ compiler mode options to manualBoris Kolpackov1-0/+2
2019-10-18Add ability to specify "compiler mode" options as part of config.{c,cxx}Boris Kolpackov1-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-11Switch clang-apple to primary/variant version setupBoris Kolpackov1-30/+0
2019-10-11Add support for clang-clBoris Kolpackov1-5/+11
The compiler type is `msvc`, variant `clang`.
2019-10-07Pass MSVC system library search paths to linker if LIB envvar is unsetBoris Kolpackov1-5/+5
2019-10-01Remap `cxx.std=latest` to `c++17` instead of `c++latest` for MSVC 16Boris Kolpackov1-24/+56
See for details: https://github.com/build2/build2/issues/34
2019-09-18Rename importable_headers variable to translatable_headersBoris Kolpackov1-7/+7
This name aligns better with the post-Cologne importable/translatable semantics.
2019-09-18Temporarily force c++17 if using GCC modules branchBoris Kolpackov1-1/+5
The use of 2a-isms in the standard library are breaking things on a regular basic.
2019-08-28Make lib{build2} "implied interface dependency" of modulesBoris Kolpackov1-5/+3
This makes our compilation and linking command lines a little bit saner.
2019-08-28Reduce repetition in buildfilesBoris Kolpackov1-6/+1
2019-08-28Move cxx build system module to separate libraryKaren Arutyunov6-0/+971