aboutsummaryrefslogtreecommitdiff
path: root/build2/cc/common.hxx
AgeCommit message (Collapse)AuthorFilesLines
2019-08-22Targets, scopes, varsBoris Kolpackov1-1/+3
2019-07-01Split build system into library and driverBoris Kolpackov1-3/+3
2019-06-21Add support for [config.]{cc,c,cxx}.aoptions (archive options)Boris Kolpackov1-0/+3
In particular, this can be used to suppress lib.exe warnings, for example: cc.aoptions += /IGNORE:4221
2019-06-06Fix cc link rule matching ambiguity wrt to C/C++ sourcesBoris Kolpackov1-6/+7
Considering a C header as C++ source was definitely a bad idea.
2019-05-03Add config.{c,cxx}.stdBoris Kolpackov1-2/+2
These values override {c,cxx}.std specified at the project level. In particular, this allows us to force a specific standard for all the projects in a build configuration, for example: b create: conf/,cc config.cxx=g++ config.cxx.std=experimental
2019-05-03Rename [config.]cxx.header_units to importable_headersBoris Kolpackov1-4/+4
2019-04-30Initial take on header unit and include translation supportBoris Kolpackov1-0/+5
2019-01-16Update copyright yearKaren Arutyunov1-1/+1
2019-01-09Tighten cc rules matchingBoris Kolpackov1-1/+1
Specifically, make sure the rule does not match if there is a c-common prerequisites that it doesn't recognize.
2018-10-26Add config.{c,cxx}.{id,version,target} configuration variablesBoris Kolpackov1-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).
2018-10-25Redesign cc::compiler_id to make variant customizableBoris Kolpackov1-13/+18
2018-09-05Only consider common .pc file for binless variant if there is no binfullBoris Kolpackov1-1/+2
2018-09-05Adjust pkg-config logic to cover binless librariesBoris Kolpackov1-9/+28
2018-09-04Initial work on binless (binary-less aka header-only) library supportBoris Kolpackov1-1/+2
2018-08-25Implement missing pieces in utility libraries supportBoris Kolpackov1-2/+3
In particular, we can now build static libraries out of utility libraries.
2018-07-30Make project variable to be of project_name typeKaren Arutyunov1-1/+1
2018-05-19Update copyright yearKaren Arutyunov1-1/+1
2018-02-03Get rid of action rule override semanticsBoris Kolpackov1-4/+4
Instead we now have two more or less separate match states for outer and inner parts of an action.
2018-01-05Initial support for c/cxx runtime/stdlib detectionBoris Kolpackov1-0/+5
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/+5
2017-11-27Add {c,cxx}.class variablesBoris Kolpackov1-7/+9
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-10-03Extract system header search paths from GCC or compatibleBoris Kolpackov1-1/+7
2017-09-25Get rid of pkgconfig moduleKaren Arutyunov1-3/+1
2017-09-25Make use of libpkgconf libraryKaren Arutyunov1-0/+1
2017-08-04Implement sidebuilding of installed modulesBoris Kolpackov1-1/+2
2017-08-02Change cc.preprocessed to {c,cxx}.preprocessedBoris Kolpackov1-1/+2
2017-07-31Experimental (and probably broken) pkg-config generation supportBoris Kolpackov1-9/+6
2017-07-28Implement support for linking whole archiveBoris Kolpackov1-1/+2
2017-07-27Initial infrastructure for utility librariesBoris Kolpackov1-2/+2
2017-06-22Add extra support for symbol exporting in modularized projectsBoris Kolpackov1-1/+4
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-08Implement rule chaining for modulesBoris Kolpackov1-0/+1
2017-05-31C++ modules work: add target typesBoris Kolpackov1-4/+6
2017-05-30Diagnose lack of module support in extract_modules()Boris Kolpackov1-0/+4
2017-05-30Rework C/C++ standard translation in preparation for experimental/modulesBoris Kolpackov1-18/+2
Also fix bug in clang-apple versioning.
2017-05-29Add ability to limit amount of preprocessing done on sourceBoris Kolpackov1-4/+5
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-1/+3
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-9/+12
2017-05-18Add compiler version checks for separate preprocess and compile setupBoris Kolpackov1-2/+7
2017-05-17Add ability to disable use of preprocessed output in compilationBoris Kolpackov1-2/+3
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-1/+2
2017-05-01Add hxx extension for headersKaren Arutyunov1-0/+289