summaryrefslogtreecommitdiffstats
path: root/build
Commit message (Collapse)AuthorAgeFilesLines
...
* Implement soname/rpath dance for shared librariesBoris Kolpackov2015-12-121-36/+42
|
* Implement two-phase initialization of modules loaded from bootstrap.buildBoris Kolpackov2015-12-1016-78/+237
|
* Add support for specifying additional rpath'sBoris Kolpackov2015-12-092-17/+40
| | | | | | For example: b config.bin.rpath=/usr/local/lib
* Add missing hxx{version}Boris Kolpackov2015-12-081-0/+1
|
* Change version back to 0.1.0Boris Kolpackov2015-12-082-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.
* Move from 0.1.0.a1 to 0.1.0-a1 versioning schemeBoris Kolpackov2015-12-072-4/+4
|
* Add support for specifying minimum required build2 versionBoris Kolpackov2015-12-077-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.
* Add version fileBoris Kolpackov2015-12-072-2/+42
|
* Fix reverse lookup of extension to target type in C++ dep extractionBoris Kolpackov2015-12-033-41/+39
|
* Use 'extension' variable for cxx target types, .*xx extensions by defaultBoris Kolpackov2015-12-032-16/+18
| | | | | | | | One can also do: define cpp: cxx cpp{*}: extension = cpp cpp{foo}: # foo.cpp
* Strip leading '.' from extension variable valuesBoris Kolpackov2015-12-031-1/+7
|
* Implement new potential directive keyword testBoris Kolpackov2015-12-032-4/+36
| | | | | | | | Now we can use directive names as variables and targets type, for example: print = foo # variable print{foo}: # target
* Clean up rule namesBoris Kolpackov2015-12-0310-201/+235
|
* Print libbutl versionBoris Kolpackov2015-12-031-0/+2
|
* Bump version to 0.1.0.a1Boris Kolpackov2015-12-032-2/+2
|
* Add ability for module to remember that it is unconfiguredBoris Kolpackov2015-12-035-24/+65
| | | | | A module can set and then check the config.*.configured special variable to false.
* Implement if-else conditionsBoris Kolpackov2015-12-032-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.
* Redo extension derivation for file{}, doc{}, and cli{}Boris Kolpackov2015-12-026-22/+39
| | | | We now first check the 'extension' variable, then use the default.
* Add support for optional configuration for cli moduleBoris Kolpackov2015-12-022-47/+101
|
* Don't write config.{loaded,configured} special variables to config.buildBoris Kolpackov2015-12-021-0/+6
|
* Implement optional module loadingBoris Kolpackov2015-12-0230-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).
* Use 'extension' variable to resolve extension for file{}Boris Kolpackov2015-12-017-78/+127
| | | | | | | We now also check target type/pattern-specific variables. So the new usage is: cli{*}: extension = cli
* Reimplement define as dynamic derivation rather than aliasBoris Kolpackov2015-12-0112-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.
* Implement support for definition target type aliasesBoris Kolpackov2015-12-0115-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.
* Override outer configuration install paths that contain package nameBoris Kolpackov2015-12-013-32/+55
|
* Don't try to install targets from other projectsBoris Kolpackov2015-11-303-2/+28
|
* Add install supportBoris Kolpackov2015-11-302-5/+5
|
* Tighten unresolved group logicBoris Kolpackov2015-11-304-17/+39
| | | | | Now a wildcard/fallback rule should explicitly detect and handle unresolved situation.
* Implement dist support for including/excluding targetsBoris Kolpackov2015-11-303-5/+19
| | | | | | For example: cxx{*-options}: dist = true
* Implement target type/pattern-specific variablesBoris Kolpackov2015-11-303-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.
* Add cli{} prerequisite if cli.cxx{} group doesn't have anyBoris Kolpackov2015-11-301-4/+7
| | | | | This happens when we use the group only for setting cli.options. Not very clean.
* Cosmetic changeBoris Kolpackov2015-11-301-52/+52
|
* Allow for target group members to remain unresolvedBoris Kolpackov2015-11-295-17/+27
| | | | | This, for example, can happen when we have a fallback rule for dist(update) or configure(update).
* Add support for distBoris Kolpackov2015-11-282-12/+58
|
* Add support for name crosses, for example {hxx ixx cxx}{foo bar}Boris Kolpackov2015-11-282-31/+123
| | | | See tests/names for more examples.
* Include export.build from loaded, src-amalgamated subprojectsBoris Kolpackov2015-11-281-3/+25
|
* Bump version to 0.1.0Boris Kolpackov2015-11-281-1/+1
|
* Fix separated { handling in names parserBoris Kolpackov2015-11-281-2/+2
| | | | 'foo/ {a b}' should be equivalent to 'foo/ a b', not 'foo/a foo/b'.
* Add missing #includeBoris Kolpackov2015-11-241-0/+1
|
* Account for dangling/inaccessible linksBoris Kolpackov2015-11-241-1/+12
|
* Quote arguments with spaces in print_process()Boris Kolpackov2015-09-251-4/+17
|
* Use install::alisa_rule to ignore non-installable prerequisitesBoris Kolpackov2015-09-115-9/+66
|
* Check amalgamation itself when searching for imported projectBoris Kolpackov2015-09-111-1/+10
|
* Handle file io failures in parserBoris Kolpackov2015-09-114-84/+99
|
* Add support for unnamed projectsBoris Kolpackov2015-09-112-5/+19
| | | | | | | | | | | | Sometimes (e.g., in bpkg configuration) we don't have a project name. In fact, it is not really a project; it can never be referenced in an import directive. So we now have a notion of an unnamed project. Such a project should still have the 'project' variable set first thing in bootstrap.build but its value should be empty. Note that we can still amalgamate such projects just liked named ones.
* Preserve pairs in expansionBoris Kolpackov2015-09-111-0/+6
|
* Reimplement buildspec parsing to deal with eval contextBoris Kolpackov2015-09-101-71/+108
| | | | | | | | | In short, in buildspec, parens are treated as operation application rather than eval context unless double-quoted. So in 'clean(foo)' we have the clean operation on target foo while in '"clean(foo)"' we have target cleanfoo. Also, as a bonus, we can now do {clean update}(/long/target/name/).
* Fix bug in names() chunking modeBoris Kolpackov2015-09-101-4/+4
|
* Add support for token pre-processing in lexerBoris Kolpackov2015-09-102-2/+21
|
* Add support for chunking name parsingBoris Kolpackov2015-09-102-11/+30
|