aboutsummaryrefslogtreecommitdiff
path: root/build2/cc/module.cxx
AgeCommit message (Collapse)AuthorFilesLines
2019-08-28Move cc build system module to separate libraryKaren Arutyunov1-781/+0
2019-08-28Move bin build system module to separate libraryKaren Arutyunov1-1/+1
2019-08-26Make target types project-wideBoris Kolpackov1-7/+5
2019-08-23Introduce notion of build contextBoris Kolpackov1-7/+9
All non-const global state is now in class context and we can now have multiple independent builds going on at the same time.
2019-08-21Cleanup context.hxx and its usageBoris Kolpackov1-1/+0
2019-07-05Move config, dist, test, and install modules into libraryKaren Arutyunov1-2/+2
2019-07-01Split build system into library and driverBoris Kolpackov1-3/+3
2019-06-24Constrain access to options to build system driver main() onlyBoris Kolpackov1-2/+2
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-19Improve diagnosticsBoris Kolpackov1-1/+1
2019-06-07Fix /usr/local/{include,lib} logic for Mac OS 10.14Boris Kolpackov1-0/+45
Turns out there /usr/include is no more.
2019-06-07Complete and normalize paths in cxx.importable_headersBoris Kolpackov1-22/+37
Also add more header unit include/import tests.
2019-06-06Fix cc link rule matching ambiguity wrt to C/C++ sourcesBoris Kolpackov1-10/+18
Considering a C header as C++ source was definitely a bad idea.
2019-05-03Add config.{c,cxx}.stdBoris Kolpackov1-2/+17
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-03Support <>-style header specification in importable_headersBoris Kolpackov1-7/+43
2019-05-03Rename [config.]cxx.header_units to importable_headersBoris Kolpackov1-8/+8
2019-04-30Initial take on header unit and include translation supportBoris Kolpackov1-0/+45
2019-03-14Add support for multiple variable overridesBoris Kolpackov1-2/+2
Now we can do: $ b config.cxx.coptions=-O3 config.cxx.coptions=-O0 Or even: $ b config.cxx.coptions=-O3 config.cxx.coptions+=-g
2019-02-15Check for /usr/local/include in addition to /usr/includeBoris Kolpackov1-6/+9
Specifically, Apple Clang does not have /usr/include (it has its equivalent in /Applications/.../XcodeDefault.xctoolchain/usr/include/) but does have /usr/local/include.
2019-01-16Update copyright yearKaren Arutyunov1-1/+1
2018-11-06Ignore non-existent /usr/local/{include/,lib/}Boris Kolpackov1-17/+28
This should fix some bizarre yo-yo'ing cases where uninstall removes the directories which in turn triggers a rebuild on the next invocation.
2018-10-26Add config.{c,cxx}.{id,version,target} configuration variablesBoris Kolpackov1-11/+15
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-1/+1
2018-10-19Suggest override variable (config.x) when tool is not foundBoris Kolpackov1-0/+1
2018-09-03Use (native) C and C++ compilers we were built with as defaultsBoris Kolpackov1-5/+14
2018-05-19Update copyright yearKaren Arutyunov1-1/+1
2018-02-03Get rid of action rule override semanticsBoris Kolpackov1-16/+17
Instead we now have two more or less separate match states for outer and inner parts of an action.
2018-01-08Implement compiler_info cachingBoris Kolpackov1-12/+14
2018-01-08Complete runtime/stdlib detectionBoris Kolpackov1-5/+11
2018-01-05Initial support for c/cxx runtime/stdlib detectionBoris Kolpackov1-51/+49
2017-12-16Improve process execution diagnostics by reusing run_*() APIBoris Kolpackov1-1/+2
2017-12-06More work on Clang on Windows/MSVC supportBoris Kolpackov1-1/+2
2017-12-04Remap Clang on Windows target triplet to that of MSVCBoris Kolpackov1-0/+17
2017-12-04Recognize empty cc.patternBoris Kolpackov1-1/+1
2017-12-04Improve diagnostics when c-family modules using different toolchainsBoris Kolpackov1-14/+35
We now also warn on toolchain pattern mismatch.
2017-12-04Implement better cross-hinting between c-family modulesBoris Kolpackov1-46/+81
2017-11-27Add {c,cxx}.class variablesBoris Kolpackov1-8/+15
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-24Add extra library search paths as -L optionsBoris Kolpackov1-15/+17
2017-11-20Only add /usr/local/{include,lib} if compiler added /usr/includeBoris Kolpackov1-14/+25
This makes sure we don't mess up cross-compilations or even native compilations with a custom sysroot.
2017-10-03Extract system header search paths from GCC or compatibleBoris Kolpackov1-13/+25
2017-09-25Get rid of pkgconfig moduleKaren Arutyunov1-4/+12
2017-09-07Implement {c,cxx}.guess modulesBoris Kolpackov1-34/+41
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-07-29Implement "see through" installation semantics for utility librariesBoris Kolpackov1-8/+20
2017-07-27Initial infrastructure for utility librariesBoris Kolpackov1-0/+14
2017-05-31C++ modules work: add target typesBoris Kolpackov1-8/+25
2017-05-30Rework C/C++ standard translation in preparation for experimental/modulesBoris Kolpackov1-5/+6
Also fix bug in clang-apple versioning.
2017-05-25Add compiler_id enumBoris Kolpackov1-0/+1
2017-05-01Add hxx extension for headersKaren Arutyunov1-8/+8
2017-03-04Only set install variables if install module has been loadedBoris Kolpackov1-14/+20
While generally a good idea, failing to do this trips up our load generation protection.
2017-03-02Unconditionally load bin.ar module in c and cxx modulesBoris Kolpackov1-14/+8
With our utility library/until test approach this will probably be more common than not.