Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2016-08-13 | Use extension derivation function rather than extension variable directly | Boris Kolpackov | 2 | -6/+11 | |
2016-08-12 | Rename module to init | Boris Kolpackov | 17 | -65/+86 | |
2016-08-12 | Add support for ordering modules in config.build | Boris Kolpackov | 13 | -19/+97 | |
2016-08-12 | Implement c/cxx toolchain cross-hinting | Boris Kolpackov | 7 | -97/+248 | |
2016-08-12 | Implement support for C compilation | Boris Kolpackov | 53 | -1359/+2914 | |
We now have two new modules: cc (c-common) and c. | |||||
2016-08-10 | Add ignore case support for find_option() | Karen Arutyunov | 7 | -51/+37 | |
2016-08-09 | Fix bug in inner/outer operation handling | Boris Kolpackov | 1 | -1/+3 | |
2016-08-05 | Implement out-qualified target syntax for setting target-specific vars | Boris Kolpackov | 7 | -18/+66 | |
So now we can do: doc{INSTALL}@./: install = false Note that so far that's the only place where we support out-qualification. Grep for @@ OUT to see other places. | |||||
2016-08-05 | Enable pair recognition in the normal and eval lexer modes | Boris Kolpackov | 2 | -8/+17 | |
We need this for the out-qualified target syntax: h{config}@./: install = false | |||||
2016-08-05 | Merge 'value' and 'pairs' lexer_mode, call it 'value' | Boris Kolpackov | 4 | -49/+46 | |
We only really used pairs. | |||||
2016-08-03 | Add support for preserving subdirectories when installing | Boris Kolpackov | 2 | -8/+36 | |
This is handy, for example, when installing headers: install.include = $install.include/foo install.include.subdirs = true The base for calculating the subdirectories is the scope where the subdirs value is set. | |||||
2016-08-03 | Add -V option as equivalent to --verbose 3 | Boris Kolpackov | 5 | -1/+24 | |
2016-08-03 | Don't treat absent config values that are saved commented as new | Boris Kolpackov | 2 | -3/+7 | |
2016-08-02 | Cosmetic change | Boris Kolpackov | 2 | -4/+4 | |
2016-08-02 | Check for eof before streaming rdbuf | Boris Kolpackov | 1 | -3/+9 | |
2016-08-02 | Filter gratuitous VC cl.exe and link.exe messages | Boris Kolpackov | 3 | -18/+119 | |
2016-08-02 | Trace PATH environment variable | Boris Kolpackov | 1 | -2/+6 | |
2016-08-02 | Optimize out path::normalize() calls | Boris Kolpackov | 3 | -10/+34 | |
2016-08-01 | Work around MSYS2 install.exe permission issue | Boris Kolpackov | 1 | -3/+36 | |
2016-08-01 | Fix relinking on install for VC | Boris Kolpackov | 1 | -4/+9 | |
2016-07-30 | Construct paths to use canonical directory separators | Boris Kolpackov | 6 | -29/+47 | |
Hardcoding separators as in "build/root.build" is now a big no-no. | |||||
2016-07-30 | Actualize project root directories | Boris Kolpackov | 5 | -15/+23 | |
This solves the problem of changing path spelling on platforms with case- insensitive filesystems. For example, you may build a project in the current working directory without specifying any paths. This means the current working directory will be used as the project's root. On Windows this could be C:\x. Now you are building another project that imports the above project and you specify config.import.x variable pointing to the above build. But you are lazy to type capital C so you spell it as config.import.x=c:\x. What happens now is the value from config.import.x is used as the project root. And now it is a different spelling compared to your original build. This is not a problem when the build system itself is concerned -- it is smart enough to use case-insensitive comparison. However, we often use roots to derive other things, say, -I options that we pass to compilers. And these options are normally no longer treated as (case-insensitive) paths. If they are hashed and the result stored in depdb, then we end up with rebuilds that are triggered by changes from C:\ to c:\. | |||||
2016-07-30 | Fix missing src_root initialization | Boris Kolpackov | 1 | -0/+2 | |
2016-07-29 | Fix bug in prerequisite iteration leave group support | Boris Kolpackov | 2 | -1/+5 | |
2016-07-29 | Suppress VC banners even at verbosity above 2 | Boris Kolpackov | 2 | -7/+3 | |
There is really no use seeing this stuff. | |||||
2016-07-29 | Make /EHsc and /MD default for VC compiler | Boris Kolpackov | 4 | -18/+242 | |
2016-07-29 | Fix duplicate config.build variable issue | Boris Kolpackov | 3 | -11/+29 | |
2016-07-28 | Improve target out directory printing | Boris Kolpackov | 1 | -1/+13 | |
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. |