Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2016-07-28 | Fix dump not to type target type/pattern-specific prepend/append | Boris Kolpackov | 2 | -14/+30 | |
2016-07-28 | Adjust to new path implementation, use to support reversibility | Boris Kolpackov | 21 | -159/+167 | |
2016-07-25 | Only do "effective escaping" (['"\$(]) on the command line | Boris Kolpackov | 6 | -24/+57 | |
This will make things more convenient on Windows provided we use "sane" paths (no spaces, no (), etc). | |||||
2016-07-25 | Fix surprising config override behavior now that they are amalgamation-wide | Boris Kolpackov | 1 | -2/+24 | |
2016-07-25 | Fix module separating blank line logic | Boris Kolpackov | 1 | -4/+10 | |
2016-07-23 | Adapt to fdstream extension | Karen Arutyunov | 13 | -299/+311 | |
2016-07-22 | Incorporate target to link rule's depdb | Boris Kolpackov | 3 | -2/+16 | |
Since there is no guarantee that the target is part of the linker's checksum. | |||||
2016-07-22 | Factor target CPU to VC /MACHINE option translation | Boris Kolpackov | 2 | -19/+30 | |
2016-07-22 | Link shell32.lib and user32.lib to default for VC builds | Boris Kolpackov | 1 | -0/+19 | |
2016-07-22 | Change default var override from 'projects and subprojects' to amalgamation | Boris Kolpackov | 4 | -3/+47 | |
The 'projects and subprojects' semantics resulted in some counter-intuitive behavior. For example, in a project with tests/ as a subproject if one builds one of the tests directly with a non-global override (say C++ compiler), then the main project would be built without the overrides. I this light, overriding in the whole amalgamation seems like the right thing to do. The old behavior can still be obtained with scope qualification, for example: b ./:foo=bar | |||||
2016-07-21 | Save config vars in order specified rather than alphabetically | Boris Kolpackov | 5 | -173/+205 | |
This way we can group them semantically which results in easier to understand config.build output. | |||||
2016-07-21 | Fix bug in save_commented logic | Boris Kolpackov | 1 | -2/+2 | |
2016-07-21 | Add support for single line if-blocks | Boris Kolpackov | 4 | -27/+86 | |
So now we can do: if true print true else print false Instead having to do: if true { print true } else { print false } | |||||
2016-07-21 | Add backwards-compatibility hack for ranlib | Boris Kolpackov | 1 | -0/+3 | |
2016-07-21 | Save default/hinted ar/ld/rc values as commented out | Boris Kolpackov | 7 | -34/+75 | |
This way, when we, for example, change the C++ compiler (which hinted these values), they will be automatically adjusted as well. | |||||
2016-07-20 | Switch to dynamic empty() implementation in variable value | Boris Kolpackov | 8 | -425/+358 | |
The current model fell apart when we modified values directly. | |||||
2016-07-20 | Implement support for <, >, <=, >= in eval context | Boris Kolpackov | 11 | -27/+199 | |
Now can write: if ($build.version > 30000) | |||||
2016-07-20 | Fix cli test verbosity | Boris Kolpackov | 1 | -3/+1 | |
2016-07-20 | Sanitize library name-derived macro for illegal characters ('-', etc) | Boris Kolpackov | 1 | -6/+11 | |
2016-07-20 | Print project name and out_root in config reports | Boris Kolpackov | 4 | -67/+91 | |
2016-07-20 | Move ar/ranlib to bin.ar sub-module, load in cxx unless shared-only build | Boris Kolpackov | 4 | -90/+154 | |
This way we don't load/configure what we don't need. | |||||
2016-07-19 | Add import library target libi{}, make libs{} the DLL | Boris Kolpackov | 11 | -173/+291 | |
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-19 | Add support for building DLLs with VC | Boris Kolpackov | 6 | -142/+421 | |
2016-07-18 | Add standard static/shared macros for imported installed libraries | Boris Kolpackov | 2 | -3/+50 | |
2016-07-18 | Pick liba{}/libs{} before looking up cxx.export.* | Boris Kolpackov | 4 | -39/+73 | |
This way we can specify static library-specific defines which are necessary to handle DLL export. | |||||
2016-07-17 | Redesign obj to exe/lib mapping | Boris Kolpackov | 15 | -284/+463 | |
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-16 | Add support for prepend/append in target type/pattern-specific vars | Boris Kolpackov | 13 | -89/+371 | |
Semantically, these are similar to variable overrides and are essentially treated as "templates" that are applied on lookup to the "stem" value that is specific to the target type/name. For example: x = [string] a file{f*}: x =+ b sub/: { file{*}: x += c print $(file{foo}:x) # abc print $(file{bar}:x) # ac } | |||||
2016-07-15 | Always generate separate object files for liba{} and libso{} | Boris Kolpackov | 1 | -9/+5 | |
While on some platforms they sometimes can be the same, they could also be built differently (e.g., based on command line macros, etc). I guess we could compare the set of options and if they are identical, then use the same file. But that will complicate things quite a bit, so maybe in version 2. | |||||
2016-07-15 | Make .pdb ad hoc group member, install | Boris Kolpackov | 4 | -37/+88 | |
2016-07-15 | Name and cleanup extra VC files (.pdb, .ilk, .idb) | Boris Kolpackov | 6 | -52/+162 | |
2016-07-13 | Use link.exe instead of cl.exe to link executables | Boris Kolpackov | 2 | -69/+109 | |
2016-07-12 | Get src_root value if we have already bootstrapped this project | Boris Kolpackov | 1 | -0/+2 | |
This fixes a core dump in out-of-source 'clean update' run. | |||||
2016-07-12 | Use ./ instead of just . to denote current directory in buildfiles | Boris Kolpackov | 9 | -10/+10 | |
2016-07-11 | Escape Windows path backslashes in synthesized .rc file | Boris Kolpackov | 1 | -2/+18 | |
2016-07-11 | Reimplement Windows rpath emulation using embedded manifests | Boris Kolpackov | 5 | -391/+584 | |
As a bonus, everyone now gets a sane default manifest. | |||||
2016-07-11 | Add bin.rc module (resource compiler) | Boris Kolpackov | 5 | -24/+179 | |
2016-07-11 | Add bin.ld sub-module | Boris Kolpackov | 5 | -20/+236 | |
2016-07-09 | Add config.bin.pattern, pass it as hint from cxx module | Boris Kolpackov | 2 | -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-08 | Add dependency on fsdir{} in alias rules | Boris Kolpackov | 6 | -27/+37 | |
This makes sure that a directory with only dir{} target gets cleaned up. | |||||
2016-07-08 | Move filesystem-related functions from context to new filesystem files | Boris Kolpackov | 20 | -275/+315 | |
2016-07-08 | Implement limited rpath emulation for Windows | Boris Kolpackov | 9 | -145/+589 | |
2016-07-01 | Fix cli test to read cli output till the end | Karen Arutyunov | 1 | -0/+6 | |
2016-07-01 | Port to MSVC | Karen Arutyunov | 11 | -48/+44 | |
2016-06-28 | Work around static initialization order issue | Boris Kolpackov | 3 | -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-27 | Add config.bin.target var/hint, use to decide libso{} install mode | Boris Kolpackov | 14 | -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-27 | Get rid of extern "C" in module boot()/init() | Boris Kolpackov | 16 | -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-26 | Add support for passing configuration hints via module init() | Boris Kolpackov | 17 | -28/+97 | |
2016-06-26 | Minor module interface cleanups | Boris Kolpackov | 8 | -27/+33 | |
2016-06-26 | Add notion of ad hoc group, use to handle DLL/import library | Boris Kolpackov | 17 | -302/+611 | |
2016-06-20 | Fix some more MinGW .dll.a search | Boris Kolpackov | 1 | -15/+43 | |