aboutsummaryrefslogtreecommitdiff
path: root/build2
AgeCommit message (Collapse)AuthorFilesLines
2016-07-15Name and cleanup extra VC files (.pdb, .ilk, .idb)Boris Kolpackov6-52/+162
2016-07-13Use link.exe instead of cl.exe to link executablesBoris Kolpackov2-69/+109
2016-07-12Get src_root value if we have already bootstrapped this projectBoris Kolpackov1-0/+2
This fixes a core dump in out-of-source 'clean update' run.
2016-07-11Escape Windows path backslashes in synthesized .rc fileBoris Kolpackov1-2/+18
2016-07-11Reimplement Windows rpath emulation using embedded manifestsBoris Kolpackov5-391/+584
As a bonus, everyone now gets a sane default manifest.
2016-07-11Add bin.rc module (resource compiler)Boris Kolpackov5-24/+179
2016-07-11Add bin.ld sub-moduleBoris Kolpackov5-20/+236
2016-07-09Add config.bin.pattern, pass it as hint from cxx moduleBoris Kolpackov2-29/+169
With this change we normally no longer need to specify config.bin.ar explicitly when cross-compiling or set it to lib.exe for VC.
2016-07-08Add dependency on fsdir{} in alias rulesBoris Kolpackov6-27/+37
This makes sure that a directory with only dir{} target gets cleaned up.
2016-07-08Move filesystem-related functions from context to new filesystem filesBoris Kolpackov20-275/+315
2016-07-08Implement limited rpath emulation for WindowsBoris Kolpackov9-145/+589
2016-07-01Fix cli test to read cli output till the endKaren Arutyunov1-0/+6
2016-07-01Port to MSVCKaren Arutyunov11-48/+44
2016-06-28Work around static initialization order issueBoris Kolpackov3-10/+39
value_traits<T>::value_type initialization is not constexpr in VC because of pointers to function template instantiations (which apparently are not constexpr).
2016-06-27Add config.bin.target var/hint, use to decide libso{} install modeBoris Kolpackov14-175/+352
Normally the user doesn't need to specify config.bin.target explicitly since the cxx module will hint it. We now also have the whole set of target's components: bin.target.{cpu,vendor,system,version,class}
2016-06-27Get rid of extern "C" in module boot()/init()Boris Kolpackov16-149/+153
We will have a separate (extern "C") register() function that will return the pointers to these two. This way we can still throw exceptions from boot() and init().
2016-06-26Add support for passing configuration hints via module init()Boris Kolpackov17-28/+97
2016-06-26Minor module interface cleanupsBoris Kolpackov8-27/+33
2016-06-26Add notion of ad hoc group, use to handle DLL/import libraryBoris Kolpackov17-302/+611
2016-06-20Fix some more MinGW .dll.a searchBoris Kolpackov1-15/+43
2016-06-18Port to MinGWKaren Arutyunov11-51/+174
2016-06-18Fix MinGW .dll.a searchBoris Kolpackov1-8/+15
2016-06-18Cosmetic changesBoris Kolpackov2-6/+5
2016-06-17Initial take on DLL support for MinGW toolchainBoris Kolpackov6-65/+157
2016-06-11Temporarily add --strip-trailing-cr to diff options in test moduleBoris Kolpackov2-0/+3
2016-06-11Initial VC++ support (static libraries only)Boris Kolpackov12-335/+840
2016-06-03Treat trailing backslash as directory indicatorBoris Kolpackov1-13/+36
Note that with this change we broke reversibility for such names, i.e., 'foo\' name will be reversed to 'foo/'.
2016-05-21Recursively link prerequisite libraries of static librariesBoris Kolpackov1-4/+52
2016-04-26Bump version to 0.4.0-a1, master is open for businessBoris Kolpackov1-3/+3
2016-04-26Add imported library rpaths before user-supplied0.3.0Boris Kolpackov1-9/+13
This way we don't accidentally prefer old (installed) versions.
2016-04-25Suppress Clang warningBoris Kolpackov1-1/+1
2016-04-25Fix bug in C++ compiler guessing logicBoris Kolpackov1-1/+1
2016-04-25Add missing variable assignmentsBoris Kolpackov1-4/+4
2016-04-25Add workaround for GCC 4.8 bug in default initialization of union memberBoris Kolpackov1-3/+9
It appears to silently ignore this C++11 feature and leave the data uninitialized.
2016-04-23Add missing file to buildfileBoris Kolpackov1-1/+1
2016-04-23Revert back to using root scope in src_out()/out_src()Boris Kolpackov6-20/+22
Relaxing it to base was not wise since we can have "sideways" prerequisites (those from parallel directories such as brep's ../web/*).
2016-04-22Bump version to 0.3.0Boris Kolpackov1-3/+3
2016-04-22Clarify few @@ notesBoris Kolpackov2-2/+2
2016-04-21Move target state reset back to recipe()Boris Kolpackov4-10/+8
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 Kolpackov6-62/+87
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-21Delete target_key assignment operators since we need tracking referencesBoris Kolpackov1-3/+14
2016-04-21Use hash map/set for targets/prerequisites to resolve key change issueBoris Kolpackov7-38/+127
2016-04-20Print variable/value attributes in dump()Boris Kolpackov1-16/+45
2016-04-20Add missing cast() specializationBoris Kolpackov1-0/+9
2016-04-20Type install.mode variableBoris Kolpackov1-1/+2
2016-04-19Redesign src/out scopingBoris Kolpackov29-478/+544
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-04-18Add support for using value attributes in eval contextBoris Kolpackov8-272/+498
For example: if ($x == [null]) Or: if ([uint64] 01 == [uint64] 1)
2016-04-12Change BACK to BC (backwards-compatibility) markerBoris Kolpackov1-1/+1
2016-04-12Add support for scope-qualification of overrides, scope visibilityBoris Kolpackov1-17/+51
2016-04-12Mark non-BC changes for futureBoris Kolpackov2-6/+4