aboutsummaryrefslogtreecommitdiff
path: root/build2/b.cxx
AgeCommit message (Collapse)AuthorFilesLines
2016-12-09Initial parallel scheduler implementation, use to run testscripsBoris Kolpackov1-7/+52
2016-11-22Add missing non-existent src_base diagnosticsBoris Kolpackov1-0/+13
2016-11-18Implement noop meta-operationBoris Kolpackov1-8/+9
The effect is loading all the buildfiles but not searching/matching/executing any targets/operations. Useful for testing.
2016-11-04Add build.driver variable with build system driver path (argv[0])Boris Kolpackov1-1/+2
2016-11-04Factor global initialization into init() analogous to reset()Boris Kolpackov1-14/+4
2016-09-15Add io_error alias for std::ios_base::failureKaren Arutyunov1-4/+4
2016-09-13Fix crashing on unhandled system_error thrown by file_exists()Karen Arutyunov1-2/+2
2016-08-30Add support for config.build file versioningBoris Kolpackov1-10/+6
2016-08-26Add pkg-config support for import installedBoris Kolpackov1-0/+4
Redesign library importing/exporting while at it.
2016-08-23Split cli module into cli.config and cliBoris Kolpackov1-0/+1
2016-08-23Add cc.config in addition to ccBoris Kolpackov1-0/+1
2016-08-23Rename cc.{vars,config} modules to cc.core.{vars,config}Boris Kolpackov1-2/+2
We are going to use cc.config for something else.
2016-08-22Add workaround for Windows baseutils /bin search issueBoris Kolpackov1-1/+25
2016-08-22Add few extra tracing statementsBoris Kolpackov1-4/+7
2016-08-15Include host machine in --version outputBoris Kolpackov1-0/+1
2016-08-12Rename module to initBoris Kolpackov1-7/+7
2016-08-12Implement support for C compilationBoris Kolpackov1-13/+33
We now have two new modules: cc (c-common) and c.
2016-08-03Add -V option as equivalent to --verbose 3Boris Kolpackov1-1/+1
2016-08-02Trace PATH environment variableBoris Kolpackov1-2/+6
2016-07-30Actualize project root directoriesBoris Kolpackov1-4/+8
This solves the problem of changing path spelling on platforms with case- insensitive filesystems. For example, you may build a project in the current working directory without specifying any paths. This means the current working directory will be used as the project's root. On Windows this could be C:\x. Now you are building another project that imports the above project and you specify config.import.x variable pointing to the above build. But you are lazy to type capital C so you spell it as config.import.x=c:\x. What happens now is the value from config.import.x is used as the project root. And now it is a different spelling compared to your original build. This is not a problem when the build system itself is concerned -- it is smart enough to use case-insensitive comparison. However, we often use roots to derive other things, say, -I options that we pass to compilers. And these options are normally no longer treated as (case-insensitive) paths. If they are hashed and the result stored in depdb, then we end up with rebuilds that are triggered by changes from C:\ to c:\.
2016-07-25Only do "effective escaping" (['"\$(]) on the command lineBoris Kolpackov1-2/+0
This will make things more convenient on Windows provided we use "sane" paths (no spaces, no (), etc).
2016-07-23Adapt to fdstream extensionKaren Arutyunov1-0/+3
2016-07-22Change default var override from 'projects and subprojects' to amalgamationBoris Kolpackov1-3/+33
The 'projects and subprojects' semantics resulted in some counter-intuitive behavior. For example, in a project with tests/ as a subproject if one builds one of the tests directly with a non-global override (say C++ compiler), then the main project would be built without the overrides. I this light, overriding in the whole amalgamation seems like the right thing to do. The old behavior can still be obtained with scope qualification, for example: b ./:foo=bar
2016-07-20Move ar/ranlib to bin.ar sub-module, load in cxx unless shared-only buildBoris Kolpackov1-0/+1
This way we don't load/configure what we don't need.
2016-07-12Get src_root value if we have already bootstrapped this projectBoris Kolpackov1-0/+2
This fixes a core dump in out-of-source 'clean update' run.
2016-07-11Add bin.rc module (resource compiler)Boris Kolpackov1-0/+1
2016-07-11Add bin.ld sub-moduleBoris Kolpackov1-0/+1
2016-07-08Move filesystem-related functions from context to new filesystem filesBoris Kolpackov1-1/+1
2016-07-01Port to MSVCKaren Arutyunov1-4/+0
2016-06-27Add config.bin.target var/hint, use to decide libso{} install modeBoris Kolpackov1-1/+1
Normally the user doesn't need to specify config.bin.target explicitly since the cxx module will hint it. We now also have the whole set of target's components: bin.target.{cpu,vendor,system,version,class}
2016-06-27Get rid of extern "C" in module boot()/init()Boris Kolpackov1-12/+10
We will have a separate (extern "C") register() function that will return the pointers to these two. This way we can still throw exceptions from boot() and init().
2016-06-18Port to MinGWKaren Arutyunov1-16/+1
2016-04-23Revert back to using root scope in src_out()/out_src()Boris Kolpackov1-1/+1
Relaxing it to base was not wise since we can have "sideways" prerequisites (those from parallel directories such as brep's ../web/*).
2016-04-19Redesign src/out scopingBoris Kolpackov1-1/+7
We no longer enter paths from the src tree into scope map. Instead, targets from the src tree now include their out tree directory (in essence their "configuration"). This is then used to find a target's scope. See the comment in class target for details. The result of this change is that we can now again build multiple configurations (out trees) for same project at once.
2016-04-11Simplify unconfigured module interfaceBoris Kolpackov1-1/+1
2016-04-05Implement --buildfile option, overrides default buildfile, supports '-'Boris Kolpackov1-2/+3
2016-04-04Implement value typing, null support via value attributesBoris Kolpackov1-1/+1
For example: v = [null] v = [string] abc v += ABC # abcABC
2016-04-01Get part of variable override implementationBoris Kolpackov1-7/+0
2016-03-31Set part of variable override implementationBoris Kolpackov1-63/+117
2016-03-29Reset build state for each meta-operationBoris Kolpackov1-138/+144
2016-03-28Add variable cast from lookupBoris Kolpackov1-1/+1
2016-03-28New variable architectureBoris Kolpackov1-43/+48
2016-03-28Enable @-delimited pairs mode everywhereBoris Kolpackov1-1/+1
2016-03-11Implement --config-{guess,sub} optionsBoris Kolpackov1-1/+0
2016-02-29Rename level[1-6]() to l[1-6]()Boris Kolpackov1-25/+23
2016-02-12<types>/<utility> scheme cleanupBoris Kolpackov1-4/+2
2016-02-12Support specifying options/variables/buildspec in any orderBoris Kolpackov1-49/+102
2016-01-30Use pager to show usageBoris Kolpackov1-11/+24
2016-01-30Add option documentation, reorganize thingsBoris Kolpackov1-1/+1
2016-01-23Cleanup absolute/relative path diagnostics by introducing stream verbosityBoris Kolpackov1-3/+4