aboutsummaryrefslogtreecommitdiff
path: root/build2/bin/target.cxx
AgeCommit message (Collapse)AuthorFilesLines
2019-08-23Get rid of var_extension char arrayBoris Kolpackov1-30/+30
2019-08-22Run phaseBoris Kolpackov1-7/+7
2019-08-22Targets, scopes, varsBoris Kolpackov1-16/+20
2019-07-05Remove dead code (libu{})Boris Kolpackov1-15/+0
2019-07-04Remove libu{} target groupBoris Kolpackov1-26/+6
The semantics provided by libu{} is rarely required and as result was not yet documented. However, if you are using it, the new way to achieve the same result is to use both libue{} and libul{} explicitly, for example: exe{foo}: libue{foo} lib{foo}: libul{foo} {libue libul}{foo}: cxx{*}
2019-07-01Split build system into library and driverBoris Kolpackov1-1/+1
2019-04-30Initial take on header unit and include translation supportBoris Kolpackov1-2/+67
2019-01-16Update copyright yearKaren Arutyunov1-1/+1
2018-08-27Fix diagnostics bugBoris Kolpackov1-2/+1
2018-08-25Implement missing pieces in utility libraries supportBoris Kolpackov1-26/+82
In particular, we can now build static libraries out of utility libraries.
2018-07-16Implement in moduleBoris Kolpackov1-2/+2
Given test.in containing something along these lines: foo = $foo$ Now we can do: using in file{test}: in{test.in} file{test}: foo = FOO The alternative variable substitution symbol can be specified with the in.symbol variable and lax (instead of the default strict) mode with in.substitution. For example: file{test}: in.symbol = '@' file{test}: in.substitution = lax
2018-06-12Add built-in support for Windows module definition files (.def)Boris Kolpackov1-0/+17
2018-05-19Update copyright yearKaren Arutyunov1-1/+1
2018-02-14Don't ignore objX{} and bmiX{} prerequisites in cc::link_ruleBoris Kolpackov1-6/+32
2018-02-03Get rid of action rule override semanticsBoris Kolpackov1-2/+2
Instead we now have two more or less separate match states for outer and inner parts of an action.
2017-12-07Distinguish between "fixed" and "default" target extensionsBoris Kolpackov1-47/+53
This fixes wrong merging of, say, file{README} and file{README.MySQL} (in libmysqlclient).
2017-08-04Add extracted from pkg-config prerequisite libraries as prerequisitesBoris Kolpackov1-1/+1
2017-07-27Initial infrastructure for utility librariesBoris Kolpackov1-3/+75
2017-05-31C++ modules work: add target typesBoris Kolpackov1-49/+86
2017-05-01Add hxx extension for headersKaren Arutyunov1-1/+1
2017-04-27Pass target to prerequisite searchBoris Kolpackov1-8/+8
2017-03-10Implement support for wildcard patternsBoris Kolpackov1-0/+8
2017-03-02Implement parallel matchBoris Kolpackov1-94/+64
2017-02-14Modify library mate-information protocol not to use lib{} groupBoris Kolpackov1-9/+0
2017-02-13Pass const target& to recipesBoris Kolpackov1-10/+10
2017-02-13Store extension in target map key rather than in targetBoris Kolpackov1-21/+21
This is in preparation for locking its modification/access.
2017-01-19Get rid of extension_poolBoris Kolpackov1-14/+14
2017-01-05Update copyright yearBoris Kolpackov1-1/+1
2016-12-16Move exe{} to build2 core, add fallback extensions (existing files)Boris Kolpackov1-22/+0
2016-11-26Add support for VC15Karen Arutyunov1-1/+1
2016-11-04Implement auxiliary data storage pad in targetBoris Kolpackov1-0/+2
2016-07-19Add import library target libi{}, make libs{} the DLLBoris Kolpackov1-0/+13
In the end, having libs{} be the DLL with import library being its member is more natural than making libs{} the import library and having dll{} as its member.
2016-07-17Redesign obj to exe/lib mappingBoris Kolpackov1-36/+69
Specifically: * objso{} and libso{} target types have been renamed to objs{} and libs{} * obje{} has been added (so now we have obje{}, obja{}, and objs{}) * obje{} is now used for building exe{} * object file extensions have been changed to use "hierarchical extensions" that reflect the extension of the corresponding exe/lib target (instead of the -so suffix we used), specifically: obje{}: foo.o, (UNIX), foo.exe.o (MinGW), foo.exe.obj (Windows) obja{}: foo.a.o (UNIX, MinGW), foo.lib.obj (Windows) objs{}: foo.so.o (UNIX), foo.dylib.o (Darwin), foo.dll.o (MinGW), foo.dll.obj (Windows)
2016-07-01Port to MSVCKaren Arutyunov1-1/+1
2016-04-21Move target state reset back to recipe()Boris Kolpackov1-2/+0
Doing it in target::reset() (which is called by match()) didn't play well with delegated recipes.
2016-04-21Implement short-circuiting to group stateBoris Kolpackov1-0/+2
This is necessary to get rid of bogus restarts in inject_prerequisites() where it think a group member was updated since its state changed from unknown to (group's) changed.
2016-04-19Redesign src/out scopingBoris Kolpackov1-20/+44
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-01-27Rework default extension derivation, againBoris Kolpackov1-8/+7
2016-01-24Differentiate extension printing according to stream verbosityBoris Kolpackov1-0/+7
2016-01-23Clean up default target extension derivation logicBoris Kolpackov1-3/+15
2016-01-09Update copyright yearBoris Kolpackov1-1/+1
2016-01-05Rename build directory/namespace to build2Boris Kolpackov1-0/+190