aboutsummaryrefslogtreecommitdiff
path: root/build/cxx
AgeCommit message (Collapse)AuthorFilesLines
2015-12-16Rely on as few C++14 features as possibleBoris Kolpackov1-3/+2
2015-12-16Don't fail if we closed our end of pipe earlyBoris Kolpackov1-1/+11
2015-12-15Fix bug in cxx install logicBoris Kolpackov1-1/+2
2015-12-12Implement installation of prerequisite shared librariesBoris Kolpackov4-52/+86
2015-12-12Add bin.libprefix to override default library prefixBoris Kolpackov1-3/+16
2015-12-12Implement soname/rpath dance for shared librariesBoris Kolpackov1-36/+42
2015-12-09Add support for specifying additional rpath'sBoris Kolpackov1-0/+13
For example: b config.bin.rpath=/usr/local/lib
2015-12-03Fix reverse lookup of extension to target type in C++ dep extractionBoris Kolpackov2-41/+25
2015-12-03Use 'extension' variable for cxx target types, .*xx extensions by defaultBoris Kolpackov1-12/+14
One can also do: define cpp: cxx cpp{*}: extension = cpp cpp{foo}: # foo.cpp
2015-12-03Clean up rule namesBoris Kolpackov1-63/+68
2015-12-02Redo extension derivation for file{}, doc{}, and cli{}Boris Kolpackov1-6/+6
We now first check the 'extension' variable, then use the default.
2015-12-02Implement optional module loadingBoris Kolpackov2-32/+42
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-01Reimplement define as dynamic derivation rather than aliasBoris Kolpackov1-18/+6
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 Kolpackov2-12/+18
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-11-30Don't try to install targets from other projectsBoris Kolpackov1-2/+3
2015-09-11Use install::alisa_rule to ignore non-installable prerequisitesBoris Kolpackov2-2/+2
2015-09-08Rework diagnostics verbosity, add quiet mode/optionBoris Kolpackov3-20/+20
2015-09-02Override duplicate generated C++ dependency prefixBoris Kolpackov1-3/+12
2015-08-31Rework scoping logicBoris Kolpackov3-5/+5
Now the src directory is entered into the scope map and points to the same scope as out. This means that targets that are in src, not out (e.g., source files) will "see" rules, variables, etc. This becomes important when we try, for example, to install a source file (say, a header) from src: we need the rule as well as the install.* variables.
2015-08-29New configure meta-operation implementationBoris Kolpackov3-6/+16
Now we search and match (but do not execute) a rule for every operation supported by the project.
2015-08-27Dist module/meta-operation initial implementationBoris Kolpackov3-20/+15
2015-08-24Ignore unknown prerequisite types in C++ link ruleBoris Kolpackov2-13/+0
2015-08-24New variable architectureBoris Kolpackov4-64/+89
2015-08-14Rework meta/operation registrationBoris Kolpackov1-0/+2
We now have global tables for meta/operation. Plus each can then be enabled on the per-project basis.
2015-08-03match_only rework, part 2Boris Kolpackov2-51/+56
2015-08-03match_only and dependents count rework, part 1Boris Kolpackov1-5/+20
2015-07-31Essential install module functionalityBoris Kolpackov7-40/+141
2015-07-24Fix bugs in dependency extraction codeBoris Kolpackov1-3/+15
2015-07-24Add support for generated test input/outputBoris Kolpackov1-4/+1
2015-07-23Basic test supportBoris Kolpackov3-3/+3
2015-07-20Remove tracesBoris Kolpackov1-4/+0
2015-07-20Implement support for importing installed librariesBoris Kolpackov9-613/+1056
2015-07-14Add notion of strong/weak amalgamation, make strong new clean boundaryBoris Kolpackov1-7/+28
2015-07-07Rework module architectureBoris Kolpackov2-21/+74
Now the target type and rule maps are in scopes (builtins -- in global scope). We also now have the map of loaded modules in the root scope of each project.
2015-07-02Common types cleanup (strings, cstrings)Boris Kolpackov1-7/+7
2015-07-01Clean up group state, mtime designBoris Kolpackov1-2/+2
2015-07-01Group state supportBoris Kolpackov1-3/+3
2015-07-01Cleanup group "see through" designBoris Kolpackov2-61/+17
2015-06-30Group "see through" iteration, take 1Boris Kolpackov2-92/+157
2015-06-26Part two of dependency injection with auto-generation supportBoris Kolpackov2-172/+257
2015-06-25Part one of dependency injection with auto-generation supportBoris Kolpackov2-41/+229
2015-06-24Implement proper target type detection in dependency injectionBoris Kolpackov1-7/+60
2015-06-24First take on the cli module plus necessary infrastructureBoris Kolpackov3-34/+39
2015-06-22Remove prerequisite rewriting from c/c++ dependency injection codeBoris Kolpackov1-14/+4
2015-06-22Remove prerequisite rewriting from inject_parent_fsdir()Boris Kolpackov1-4/+1
2015-06-22Remove prerequisite rewriting for c/cxx chainingBoris Kolpackov1-77/+40
2015-06-18Move path and filesystem from build2 to libbutlBoris Kolpackov4-2/+2
2015-06-18Move some utilities from build2 to libbutlBoris Kolpackov1-1/+1
2015-06-18Use optional from libbutlBoris Kolpackov1-0/+1
2015-06-18Move process from build2 to libbutlBoris Kolpackov2-2/+2