path: root/build
AgeCommit message (Collapse)AuthorFilesLines
2016-01-31Bump version to 0.2.0 finalBoris Kolpackov1-2/+2
2016-01-09Update copyright yearBoris Kolpackov2-2/+2
2016-01-05Rename build directory/namespace to build2Boris Kolpackov112-22307/+0
2016-01-04First step in migrating 'build' to 'build2'Boris Kolpackov1-8/+10
2015-12-16Revert back to using C++14 auto return typeBoris Kolpackov1-5/+4
Explicit specification is just too ugly. But can always go back if needed.
2015-12-16Rely on as few C++14 features as possibleBoris Kolpackov4-42/+28
2015-12-16Don't fail if we closed our end of pipe earlyBoris Kolpackov1-1/+11
2015-12-16Tweak install ruleBoris Kolpackov1-7/+14
One day we are going to get it right...
2015-12-16Implement support for multiple scope/targets in variable assignmentBoris Kolpackov5-95/+207
Can now even do this: foo/ file{*-bar} file{baz}: x = y
2015-12-15Fix bug in cxx install logicBoris Kolpackov2-2/+3
2015-12-14Make sure we don't link up to lib{} targets that are derived from liba/so{}Boris Kolpackov2-5/+13
2015-12-14Add note on redirecting STDERR in cli testBoris Kolpackov1-0/+4
2015-12-14Fix bugs in keyword recognition logicBoris Kolpackov2-7/+6
2015-12-14Search out_root before src_root for headersBoris Kolpackov1-1/+1
2015-12-14Add support for variable prepend operator: =+Boris Kolpackov9-30/+108
2015-12-14Fix uninitialized variable bugBoris Kolpackov1-1/+1
2015-12-12Implement sudo support in install moduleBoris Kolpackov2-19/+33
2015-12-12Implement installation of prerequisite shared librariesBoris Kolpackov15-91/+142
2015-12-12Add bin.libprefix to override default library prefixBoris Kolpackov2-3/+19
2015-12-12Implement soname/rpath dance for shared librariesBoris Kolpackov1-36/+42
2015-12-10Implement two-phase initialization of modules loaded from bootstrap.buildBoris Kolpackov16-78/+237
2015-12-09Add support for specifying additional rpath'sBoris Kolpackov2-17/+40
For example: b config.bin.rpath=/usr/local/lib
2015-12-08Add missing hxx{version}Boris Kolpackov1-0/+1
2015-12-08Change version back to 0.1.0Boris Kolpackov2-7/+9
The new plan is to use 0.1.0, 0.2.0 rather than 0.1.0-a1, 0.1.0-a2 for early development. Easier on the eye and we have 99 versions instead of 49.
2015-12-07Move from 0.1.0.a1 to 0.1.0-a1 versioning schemeBoris Kolpackov2-4/+4
2015-12-07Add support for specifying minimum required build2 versionBoris Kolpackov7-14/+169
The syntax is: using build@0.1.0-a1 The idea is that we will later also use it for modules and 'build' is a special, the "build system itself" module. Also fix a problem with peeking and lexer mode switching.
2015-12-07Add version fileBoris Kolpackov2-2/+42
2015-12-03Fix reverse lookup of extension to target type in C++ dep extractionBoris Kolpackov3-41/+39
2015-12-03Use 'extension' variable for cxx target types, .*xx extensions by defaultBoris Kolpackov2-16/+18
One can also do: define cpp: cxx cpp{*}: extension = cpp cpp{foo}: # foo.cpp
2015-12-03Strip leading '.' from extension variable valuesBoris Kolpackov1-1/+7
2015-12-03Implement new potential directive keyword testBoris Kolpackov2-4/+36
Now we can use directive names as variables and targets type, for example: print = foo # variable print{foo}: # target
2015-12-03Clean up rule namesBoris Kolpackov10-201/+235
2015-12-03Print libbutl versionBoris Kolpackov1-0/+2
2015-12-03Bump version to 0.1.0.a1Boris Kolpackov2-2/+2
2015-12-03Add ability for module to remember that it is unconfiguredBoris Kolpackov5-24/+65
A module can set and then check the config.*.configured special variable to false.
2015-12-03Implement if-else conditionsBoris Kolpackov2-20/+185
if if! elif elif! else The expression should evaluate to true of false. The if! and elif! versions are provided as shortcuts to writing if (!...). See tests/if-else for examples.
2015-12-02Redo extension derivation for file{}, doc{}, and cli{}Boris Kolpackov6-22/+39
We now first check the 'extension' variable, then use the default.
2015-12-02Add support for optional configuration for cli moduleBoris Kolpackov2-47/+101
2015-12-02Don't write config.{loaded,configured} special variables to config.buildBoris Kolpackov1-0/+6
2015-12-02Implement optional module loadingBoris Kolpackov30-193/+327
The syntax is: using? cli Now each module use results in two bool variables: <module>.loaded and <module>.configured. Also implement variable visibility (the above two variables are limited to project).
2015-12-01Use 'extension' variable to resolve extension for file{}Boris Kolpackov7-78/+127
We now also check target type/pattern-specific variables. So the new usage is: cli{*}: extension = cli
2015-12-01Reimplement define as dynamic derivation rather than aliasBoris Kolpackov12-149/+83
New syntax: define cli: file The rationale is we need to be able to assign the file extension (using type/pattern-specific variables). And if it is an alias, we will assign it to the original target type. Note that we could still support aliases if we need to. Will need to bring back the id member in target_type that would normally point to itself but for an alias would point to the origin.
2015-12-01Implement support for definition target type aliasesBoris Kolpackov15-86/+246
For example: define cli=file Currently, the semantics is that of a real alias with only name differences that are used for display. See tests/define/buildfile for more use cases.
2015-12-01Override outer configuration install paths that contain package nameBoris Kolpackov3-32/+55
2015-11-30Don't try to install targets from other projectsBoris Kolpackov3-2/+28
2015-11-30Add install supportBoris Kolpackov2-5/+5
2015-11-30Tighten unresolved group logicBoris Kolpackov4-17/+39
Now a wildcard/fallback rule should explicitly detect and handle unresolved situation.
2015-11-30Implement dist support for including/excluding targetsBoris Kolpackov3-5/+19
For example: cxx{*-options}: dist = true
2015-11-30Implement target type/pattern-specific variablesBoris Kolpackov3-28/+115
For example: cxx{*-options}: dist = true 1. Only single '*' wildcard is supported, matches 0 or more characters. 2. If target type is not specified, it defaults to any target. 3. Appending (+=) is not allowed. 4. The value is expanded immediately in the context of the scope. 5. The more specific pattern (i.e., with the shortest "stem") is preferred. If the stem has the same length, then the last defined (but not redefined) pattern is used. This will probably have to change to become an error. See tests/variable/type-pattern for more examples.
2015-11-30Add cli{} prerequisite if cli.cxx{} group doesn't have anyBoris Kolpackov1-4/+7
This happens when we use the group only for setting cli.options. Not very clean.