aboutsummaryrefslogtreecommitdiff
path: root/build2/cxx
AgeCommit message (Collapse)AuthorFilesLines
2018-05-19Update copyright yearKaren Arutyunov4-4/+4
2018-02-14Enable modules support only for VC 15u5 and up, drop hacks for earlierBoris Kolpackov1-3/+3
2018-01-08Implement compiler_info cachingBoris Kolpackov1-4/+4
2018-01-05Initial support for c/cxx runtime/stdlib detectionBoris Kolpackov1-0/+6
2018-01-05Add cxx.module_name alias for cc.module_nameBoris Kolpackov1-0/+4
2017-12-15Update Apple Clang to vanilla Clang version remapping (up to Xcode 9.2)Boris Kolpackov1-2/+14
2017-12-12Add support for VC 15u5 (compiler version 19.12)Boris Kolpackov1-8/+17
2017-12-07Distinguish between "fixed" and "default" target extensionsBoris Kolpackov1-12/+17
This fixes wrong merging of, say, file{README} and file{README.MySQL} (in libmysqlclient).
2017-12-04Improve diagnostics when c-family modules using different toolchainsBoris Kolpackov1-0/+2
We now also warn on toolchain pattern mismatch.
2017-12-04Implement better cross-hinting between c-family modulesBoris Kolpackov1-0/+4
2017-11-29Reimplement module sidebuilding using an ad hoc subprojectBoris Kolpackov1-0/+3
2017-11-27Add {c,cxx}.class variablesBoris Kolpackov1-9/+13
Compiler class describes a set of compilers that follow more or less the same command line interface. Compilers that don't belong to any of the existing classes are in classes of their own (say, Sun CC would be on its own if we were to support it). Currently defined compiler classes: gcc gcc, clang, clang-apple, icc (on non-Windows) msvc msvc, clang-cl, icc (Windows)
2017-11-06Translate 'latest' to C++2a for GCC 8Boris Kolpackov1-2/+2
2017-10-03Extract system header search paths from GCC or compatibleBoris Kolpackov1-0/+3
2017-09-25Get rid of pkgconfig moduleKaren Arutyunov1-1/+0
2017-09-07Implement {c,cxx}.guess modulesBoris Kolpackov2-16/+54
These can be loaded before {c,cxx} to guess the compiler. Based on this information we can then choose the standard, experimental features, etc. For example: using cxx.guess if ($cxx.id == 'clang') cxx.features.modules = false cxx.std = experimental using cxx
2017-08-30Switch to -fmodule-file=<name>=<file>, requires Clang 6.0/trunkBoris Kolpackov1-2/+2
2017-08-04Implement sidebuilding of installed modulesBoris Kolpackov1-7/+12
2017-08-02Change cc.preprocessed to {c,cxx}.preprocessedBoris Kolpackov1-1/+11
2017-08-02Add support for C++20/c++2a modesBoris Kolpackov1-3/+6
Note: not yet enabled for GCC 8 since the patch is not yet merged.
2017-06-28Update to reflect new GCC signature for C++ modules branchBoris Kolpackov1-1/+1
2017-06-23Don't treat mxx{} as cc-sourceBoris Kolpackov2-4/+4
If we do it, then the link rule will refuse to match when modules are disabled (in which case mxx{} should be treated as a header).
2017-06-22Add extra support for symbol exporting in modularized projectsBoris Kolpackov1-1/+10
Since modules don't see each other's macros, we can use a single, keyword- like macro for dll-exporting that is managed by the build system (so no need for an "export" header). For example: cxx.features.symexport = true export __symexport void f ();
2017-06-12Only enable modules if practically usable unless forcedBoris Kolpackov1-4/+10
2017-06-12Add workaround for Clang module import during preprocessingBoris Kolpackov1-2/+4
2017-06-09Only enable modules for GCC from the cxx-modules branchBoris Kolpackov1-3/+4
2017-06-09Only enable modules support starting from VC15u3 (19.11)Boris Kolpackov1-2/+5
2017-06-08Implement rule chaining for modulesBoris Kolpackov1-0/+1
2017-05-31C++ modules work: add target typesBoris Kolpackov3-3/+36
2017-05-30Diagnose lack of module support in extract_modules()Boris Kolpackov1-0/+2
2017-05-30Add 'experimental' value for cxx.std, enable modules supportBoris Kolpackov1-72/+148
Also add cxx.features.modules boolean variable that can be used to control/query C++ modules enablement.
2017-05-30Rework C/C++ standard translation in preparation for experimental/modulesBoris Kolpackov1-89/+128
Also fix bug in clang-apple versioning.
2017-05-29Add ability to limit amount of preprocessing done on sourceBoris Kolpackov1-0/+1
The cc.preprocessed variable can be 'none' (not preprocessed), 'includes' (no depends on preprocessor, e.g., #ifdef, etc), and 'all' (the source is fully preprocessed). Note that for 'all' the source can still contain comments and line continuations.
2017-05-25Extract C++ modules informationBoris Kolpackov1-0/+1
For now we do it for every translation unit in order to test our C++ lexer and parser.
2017-05-25Add compiler_id enumBoris Kolpackov1-1/+2
2017-05-18Add compiler version checks for separate preprocess and compile setupBoris Kolpackov1-0/+2
2017-05-17Add ability to disable use of preprocessed output in compilationBoris Kolpackov1-0/+1
This can be done from a buildfile for a scope (including project root scope) and per target via cc.reprocess: cc.reprocess = true obj{hello}: cc.reprocess = false As as well externally via config.cc.reprocess: b config.cc.reprocess=true [configure]
2017-05-16Implement separate preprocess and compiler for GCC and ClangBoris Kolpackov1-0/+1
2017-05-01Add hxx extension for headersKaren Arutyunov4-23/+23
2017-04-27Pass target to prerequisite searchBoris Kolpackov1-4/+4
2017-03-10Implement support for wildcard patternsBoris Kolpackov1-0/+4
2017-02-13Add model mutex, make var_pool const by defaultBoris Kolpackov1-3/+3
2017-01-23Add bunch of missing const'sBoris Kolpackov1-2/+2
2017-01-06Store platform targets as typed target_tripletBoris Kolpackov1-5/+4
2017-01-05Update copyright yearBoris Kolpackov4-4/+4
2016-12-14Add support for cxx.std=latest, use when building build2Boris Kolpackov1-5/+43
2016-11-27Handle C++ standard selection in VC14u3, VC15Boris Kolpackov1-12/+37
They now provide the /std: option which defaults to c++14.
2016-11-26Add support for VC15Karen Arutyunov1-1/+1
2016-11-18Make names and vector<name> different types, add typed value constructorBoris Kolpackov1-4/+4
2016-09-05Handle /usr/local brain-deathBoris Kolpackov1-0/+2