aboutsummaryrefslogtreecommitdiff
path: root/build2/cc/module.cxx
AgeCommit message (Collapse)AuthorFilesLines
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.
2017-02-13Add model mutex, make var_pool const by defaultBoris Kolpackov1-3/+5
2017-01-23Make rules const throughoutBoris Kolpackov1-3/+3
2017-01-12Implement support for narrowing down tests (config.test)Boris Kolpackov1-8/+6
2017-01-09Make use of operator<<(ostream, exception)Karen Arutyunov1-1/+1
2017-01-06Store platform targets as typed target_tripletBoris Kolpackov1-48/+56
2017-01-05Update copyright yearBoris Kolpackov1-1/+1
2016-12-05Eliminate the use of '/...' paths on WindowsKaren Arutyunov1-0/+2
2016-09-05Handle /usr/local brain-deathBoris Kolpackov1-9/+31
2016-09-04Add /usr/local/lib to library search paths on FreeBSDBoris Kolpackov1-37/+50
2016-08-30Fix typoBoris Kolpackov1-1/+1
2016-08-27Clean up library export, make c and cxx modules project root onlyBoris Kolpackov1-158/+173
So now c and cxx modules can only be loaded in project root scope (normally root.build). Also, the c.std and cxx.std must now be set *before* loading the module to take effect. This means we won't be able to handle old buildfiles anymore but old versions of build2 should be able to handle new *.std placement.
2016-08-23Rename cc.{vars,config} modules to cc.core.{vars,config}Boris Kolpackov1-8/+9
We are going to use cc.config for something else.
2016-08-22Cache process_path, use fallback search directory for binutilsBoris Kolpackov1-1/+2
2016-08-19Implement uninstall operationBoris Kolpackov1-15/+18
2016-08-17Add support for config.bin.{lib,exe}.{prefix,suffix}Boris Kolpackov1-1/+1
This replaces the bin.libprefix functionality.
2016-08-12Add support for ordering modules in config.buildBoris Kolpackov1-1/+18
2016-08-12Implement c/cxx toolchain cross-hintingBoris Kolpackov1-28/+68
2016-08-12Implement support for C compilationBoris Kolpackov1-0/+291
We now have two new modules: cc (c-common) and c.