summaryrefslogtreecommitdiffstats
path: root/build2/cxx
Commit message (Collapse)AuthorAgeFilesLines
* Move bunch of root scope-only data members to root_extraBoris Kolpackov2019-03-071-2/+2
|
* Loosen GCC modules enablement requirementsBoris Kolpackov2019-01-241-2/+1
|
* Update copyright yearKaren Arutyunov2019-01-164-4/+4
|
* Tighten cc rules matchingBoris Kolpackov2019-01-092-13/+13
| | | | | Specifically, make sure the rule does not match if there is a c-common prerequisites that it doesn't recognize.
* Add config.{c,cxx}.{id,version,target} configuration variablesBoris Kolpackov2018-10-261-0/+3
| | | | | | | These variables allow overriding guessed compiler id/version/target, for example, in case of mis-guesses or when working with compilers that don't report their base (e.g., GCC, Clang) with -v/--version (common in the embedded space).
* Redesign cc::compiler_id to make variant customizableBoris Kolpackov2018-10-251-15/+15
|
* Use (native) C and C++ compilers we were built with as defaultsBoris Kolpackov2018-09-031-1/+9
|
* Switch to new GCC module interface (-fmodule-mapper)Boris Kolpackov2018-07-241-11/+14
|
* Implement in moduleBoris Kolpackov2018-07-161-2/+2
| | | | | | | | | | | | | | | | | | | | Given test.in containing something along these lines: foo = $foo$ Now we can do: using in file{test}: in{test.in} file{test}: foo = FOO The alternative variable substitution symbol can be specified with the in.symbol variable and lax (instead of the default strict) mode with in.substitution. For example: file{test}: in.symbol = '@' file{test}: in.substitution = lax
* Minor note on Apple Clang to vanilla Clang version mappingBoris Kolpackov2018-06-251-6/+8
|
* Update copyright yearKaren Arutyunov2018-05-194-4/+4
|
* Enable modules support only for VC 15u5 and up, drop hacks for earlierBoris Kolpackov2018-02-141-3/+3
|
* Implement compiler_info cachingBoris Kolpackov2018-01-081-4/+4
|
* Initial support for c/cxx runtime/stdlib detectionBoris Kolpackov2018-01-051-0/+6
|
* Add cxx.module_name alias for cc.module_nameBoris Kolpackov2018-01-051-0/+4
|
* Update Apple Clang to vanilla Clang version remapping (up to Xcode 9.2)Boris Kolpackov2017-12-151-2/+14
|
* Add support for VC 15u5 (compiler version 19.12)Boris Kolpackov2017-12-121-8/+17
|
* Distinguish between "fixed" and "default" target extensionsBoris Kolpackov2017-12-071-12/+17
| | | | | This fixes wrong merging of, say, file{README} and file{README.MySQL} (in libmysqlclient).
* Improve diagnostics when c-family modules using different toolchainsBoris Kolpackov2017-12-041-0/+2
| | | | We now also warn on toolchain pattern mismatch.
* Implement better cross-hinting between c-family modulesBoris Kolpackov2017-12-041-0/+4
|
* Reimplement module sidebuilding using an ad hoc subprojectBoris Kolpackov2017-11-291-0/+3
|
* Add {c,cxx}.class variablesBoris Kolpackov2017-11-271-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)
* Translate 'latest' to C++2a for GCC 8Boris Kolpackov2017-11-061-2/+2
|
* Extract system header search paths from GCC or compatibleBoris Kolpackov2017-10-031-0/+3
|
* Get rid of pkgconfig moduleKaren Arutyunov2017-09-251-1/+0
|
* Implement {c,cxx}.guess modulesBoris Kolpackov2017-09-072-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
* Switch to -fmodule-file=<name>=<file>, requires Clang 6.0/trunkBoris Kolpackov2017-08-301-2/+2
|
* Implement sidebuilding of installed modulesBoris Kolpackov2017-08-041-7/+12
|
* Change cc.preprocessed to {c,cxx}.preprocessedBoris Kolpackov2017-08-021-1/+11
|
* Add support for C++20/c++2a modesBoris Kolpackov2017-08-021-3/+6
| | | | Note: not yet enabled for GCC 8 since the patch is not yet merged.
* Update to reflect new GCC signature for C++ modules branchBoris Kolpackov2017-06-281-1/+1
|
* Don't treat mxx{} as cc-sourceBoris Kolpackov2017-06-232-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).
* Add extra support for symbol exporting in modularized projectsBoris Kolpackov2017-06-221-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 ();
* Only enable modules if practically usable unless forcedBoris Kolpackov2017-06-121-4/+10
|
* Add workaround for Clang module import during preprocessingBoris Kolpackov2017-06-121-2/+4
|
* Only enable modules for GCC from the cxx-modules branchBoris Kolpackov2017-06-091-3/+4
|
* Only enable modules support starting from VC15u3 (19.11)Boris Kolpackov2017-06-091-2/+5
|
* Implement rule chaining for modulesBoris Kolpackov2017-06-081-0/+1
|
* C++ modules work: add target typesBoris Kolpackov2017-05-313-3/+36
|
* Diagnose lack of module support in extract_modules()Boris Kolpackov2017-05-301-0/+2
|
* Add 'experimental' value for cxx.std, enable modules supportBoris Kolpackov2017-05-301-72/+148
| | | | | Also add cxx.features.modules boolean variable that can be used to control/query C++ modules enablement.
* Rework C/C++ standard translation in preparation for experimental/modulesBoris Kolpackov2017-05-301-89/+128
| | | | Also fix bug in clang-apple versioning.
* Add ability to limit amount of preprocessing done on sourceBoris Kolpackov2017-05-291-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.
* Extract C++ modules informationBoris Kolpackov2017-05-251-0/+1
| | | | | For now we do it for every translation unit in order to test our C++ lexer and parser.
* Add compiler_id enumBoris Kolpackov2017-05-251-1/+2
|
* Add compiler version checks for separate preprocess and compile setupBoris Kolpackov2017-05-181-0/+2
|
* Add ability to disable use of preprocessed output in compilationBoris Kolpackov2017-05-171-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]
* Implement separate preprocess and compiler for GCC and ClangBoris Kolpackov2017-05-161-0/+1
|
* Add hxx extension for headersKaren Arutyunov2017-05-014-23/+23
|
* Pass target to prerequisite searchBoris Kolpackov2017-04-271-4/+4
|