Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2016-11-04 | Minor dependency cleanup | Boris Kolpackov | 1 | -5/+0 | |
2016-11-04 | Various design/implementation cleanups | Boris Kolpackov | 1 | -8/+15 | |
2016-08-23 | Reverse empty simple values as an empty names sequence rather than empty name | Boris Kolpackov | 1 | -11/+16 | |
This way we get: config.import.foo = Rather than: config.import.foo = {} | |||||
2016-08-23 | Don't complete empty abs_dir_path | Boris Kolpackov | 1 | -3/+6 | |
The empty value is used as a special indicator | |||||
2016-08-22 | Cache process_path, use fallback search directory for binutils | Boris Kolpackov | 1 | -0/+98 | |
2016-07-30 | Actualize project root directories | Boris Kolpackov | 1 | -1/+1 | |
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-28 | Adjust to new path implementation, use to support reversibility | Boris Kolpackov | 1 | -13/+11 | |
2016-07-20 | Switch to dynamic empty() implementation in variable value | Boris Kolpackov | 1 | -100/+69 | |
The current model fell apart when we modified values directly. | |||||
2016-07-20 | Implement support for <, >, <=, >= in eval context | Boris Kolpackov | 1 | -0/+62 | |
Now can write: if ($build.version > 30000) | |||||
2016-07-16 | Add support for prepend/append in target type/pattern-specific vars | Boris Kolpackov | 1 | -11/+18 | |
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-01 | Port to MSVC | Karen Arutyunov | 1 | -8/+7 | |
2016-06-28 | Work around static initialization order issue | Boris Kolpackov | 1 | -7/+22 | |
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 | 1 | -1/+1 | |
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-04-18 | Add support for using value attributes in eval context | Boris Kolpackov | 1 | -17/+41 | |
For example: if ($x == [null]) Or: if ([uint64] 01 == [uint64] 1) | |||||
2016-04-11 | Redo config inheritance logic | Boris Kolpackov | 1 | -2/+2 | |
2016-04-11 | Add basic support for variable value inheritance | Boris Kolpackov | 1 | -3/+10 | |
Currently, only abs_dir_path inherits from dir_path. | |||||
2016-04-11 | New configuration logic, iteration 1 | Boris Kolpackov | 1 | -0/+2 | |
2016-04-09 | Tweak override logic WRT location of overridden value | Boris Kolpackov | 1 | -1/+2 | |
2016-04-09 | Add abs_dir_path type, auto-complete if initialized from names | Boris Kolpackov | 1 | -0/+28 | |
2016-04-06 | Fix NULL variable value assignment bug | Boris Kolpackov | 1 | -18/+28 | |
2016-04-04 | Implement value typing, null support via value attributes | Boris Kolpackov | 1 | -25/+23 | |
For example: v = [null] v = [string] abc v += ABC # abcABC | |||||
2016-04-01 | Get part of variable override implementation | Boris Kolpackov | 1 | -0/+4 | |
2016-03-31 | Clean up variable lookup interfaces | Boris Kolpackov | 1 | -9/+7 | |
2016-03-31 | Set part of variable override implementation | Boris Kolpackov | 1 | -0/+40 | |
2016-03-28 | Clean up variable usage | Boris Kolpackov | 1 | -0/+79 | |
2016-03-28 | New variable architecture | Boris Kolpackov | 1 | -242/+362 | |
2016-03-28 | Add support for pair representation reversibility | Boris Kolpackov | 1 | -27/+47 | |
2016-02-12 | <types>/<utility> scheme cleanup | Boris Kolpackov | 1 | -4/+1 | |
2016-01-09 | Update copyright year | Boris Kolpackov | 1 | -1/+1 | |
2016-01-05 | Rename build directory/namespace to build2 | Boris Kolpackov | 1 | -0/+452 | |