aboutsummaryrefslogtreecommitdiff
path: root/build2/prerequisite
AgeCommit message (Collapse)AuthorFilesLines
2016-08-24Handle *.export.libs, distinguish interface and implementation dependenciesBoris Kolpackov1-0/+4
A library dependency on another libraries is either "interface" or "implementation". If it is interface, then everyone who links to this library should also link to the interface dependency, explicitly. A good example of an interface dependency is a library API that is called in inline functions. Interface dependencies of a library should be explicitly listed in the *.export.libs (where we can also list target names). So the typical usage will be along these lines: import int_libs = libfoo%lib{foo} import int_libs += ... import imp_libs = libbar%lib{bar} import imp_libs += ... lib{baz}: ... $int_libs $imp_libs lib{baz}: cxx.export.libs = $int_libs
2016-08-12Implement support for C compilationBoris Kolpackov1-0/+3
We now have two new modules: cc (c-common) and c.
2016-04-21Use hash map/set for targets/prerequisites to resolve key change issueBoris Kolpackov1-6/+69
2016-04-19Redesign src/out scopingBoris Kolpackov1-15/+22
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-02-12<types>/<utility> scheme cleanupBoris Kolpackov1-25/+21
2016-01-23Change target_key::ext from pointer to pointer to reference to pointerBoris Kolpackov1-2/+2
Probably can also do for the rest of the target_key members.
2016-01-21Tighten/clarify interfaceBoris Kolpackov1-1/+5
2016-01-09Update copyright yearBoris Kolpackov1-1/+1
2016-01-05Rename build directory/namespace to build2Boris Kolpackov1-0/+129