Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2017-12-05 | Add support for first-access value typification during non-load phases | Boris Kolpackov | 5 | -50/+115 | |
2017-12-05 | Minor value typification API change | Boris Kolpackov | 3 | -6/+6 | |
2017-12-04 | Uninline variable_map::typify() | Boris Kolpackov | 1 | -1/+1 | |
2017-12-04 | Remap Clang on Windows target triplet to that of MSVC | Boris Kolpackov | 1 | -0/+17 | |
2017-12-04 | Improve cc/bin target mismatch diagnostics | Boris Kolpackov | 2 | -4/+8 | |
2017-12-04 | Recognize empty cc.pattern | Boris Kolpackov | 5 | -9/+9 | |
2017-12-04 | Improve diagnostics when c-family modules using different toolchains | Boris Kolpackov | 6 | -20/+50 | |
We now also warn on toolchain pattern mismatch. | |||||
2017-12-04 | Implement better cross-hinting between c-family modules | Boris Kolpackov | 7 | -61/+141 | |
2017-12-04 | Add cast_empty() for value casting | Boris Kolpackov | 3 | -5/+47 | |
2017-12-04 | Suppress duplicate module init() calls for same scope | Boris Kolpackov | 1 | -8/+38 | |
2017-12-04 | Handle phase_lock failure in async match tasks | Boris Kolpackov | 1 | -4/+8 | |
2017-12-03 | Add few clarifying comments | Boris Kolpackov | 2 | -2/+5 | |
2017-12-03 | Allow typification of variables and values across load generations | Boris Kolpackov | 6 | -34/+14 | |
The original semantics turned out to be too restrictive. For example, the user may have specified the config.c variable on the command line that is only used by an imported project that is loaded in a subsequent generation. We are also relaxing it for values since conceptually the two feel the same. For a value the (hypothetical) example is a "common" variable set in a project root that is only queried in a subdirectory in a subsequent generation. | |||||
2017-12-01 | Fix GCC 7 -fimplicit-fallthrough warnings | Boris Kolpackov | 5 | -42/+36 | |
2017-12-01 | Terminate waiting threads if coming off failed load phase | Boris Kolpackov | 4 | -88/+169 | |
In this case the build state may no longer be valid. | |||||
2017-11-30 | Adapt testscripts to build2 output changes | Karen Arutyunov | 1 | -4/+4 | |
2017-11-30 | Bump toolchain version dependency to 0.7.0 in manifest | Karen Arutyunov | 1 | -2/+2 | |
2017-11-30 | Implement module sidebuilds cleanup using scope operation callbacks | Boris Kolpackov | 5 | -19/+72 | |
2017-11-30 | Implement support for scope operation callbacks | Boris Kolpackov | 4 | -48/+166 | |
An entity (module, core) can register a function that will be called when an action is executed on the dir{} target that corresponds to the scope. The pre callback is called just before the recipe and the post -- immediately after. | |||||
2017-11-29 | Reimplement module sidebuilding using an ad hoc subproject | Boris Kolpackov | 8 | -204/+348 | |
2017-11-28 | Fix bug in importing multiple targets with single directive | Boris Kolpackov | 1 | -0/+7 | |
2017-11-27 | Add cxx_ prefix to module-related pkg-config variables | Boris Kolpackov | 2 | -18/+16 | |
This way we can assume that those are the C++ (language) modules built by the cxx (build system) module. | |||||
2017-11-27 | Add {c,cxx}.class variables | Boris Kolpackov | 11 | -286/+399 | |
Compiler class describes a set of compilers that follow more or less the same command line interface. Compilers that don't belong to any of the existing classes are in classes of their own (say, Sun CC would be on its own if we were to support it). Currently defined compiler classes: gcc gcc, clang, clang-apple, icc (on non-Windows) msvc msvc, clang-cl, icc (Windows) | |||||
2017-11-24 | Improve diagnostics | Boris Kolpackov | 1 | -2/+11 | |
2017-11-24 | Fix few bugs in generated header path remapping logic | Boris Kolpackov | 2 | -7/+12 | |
2017-11-24 | Add extra library search paths as -L options | Boris Kolpackov | 5 | -37/+89 | |
2017-11-23 | Fix few typos | Boris Kolpackov | 1 | -3/+3 | |
2017-11-23 | Minor change | Boris Kolpackov | 1 | -1/+1 | |
2017-11-22 | Remove -Xclang module options that seem to be passed by default in trunk | Boris Kolpackov | 1 | -5/+1 | |
2017-11-22 | Enable module re-export tests for Clang | Boris Kolpackov | 1 | -1/+0 | |
This support has been merged into trunk. | |||||
2017-11-22 | Fix dist bug where missing source file would be silently ignored | Boris Kolpackov | 8 | -48/+101 | |
2017-11-22 | Improve diagnostics | Boris Kolpackov | 1 | -1/+2 | |
2017-11-22 | Streamline skip count diagnostics | Boris Kolpackov | 1 | -1/+1 | |
2017-11-21 | Recursively check timestamps of libraries we are linking | Boris Kolpackov | 2 | -6/+28 | |
2017-11-21 | Move eof() utility to libbutl | Boris Kolpackov | 2 | -17/+3 | |
2017-11-21 | Filter VC preprocessor diagnostics | Boris Kolpackov | 1 | -54/+79 | |
It turns out VC may still print include notes after issuing errors. | |||||
2017-11-21 | Diagnose failure to open depdb | Boris Kolpackov | 2 | -16/+40 | |
The cause is often a missing fsdir{} if the user tries to stash the target in a subdirectory. | |||||
2017-11-21 | Improve skipped update diagnostics | Boris Kolpackov | 4 | -11/+36 | |
Instead of printing a line for each target skipped we now print a summary with count at the end. We also now show the skip count in progress. | |||||
2017-11-20 | Only add /usr/local/{include,lib} if compiler added /usr/include | Boris Kolpackov | 1 | -14/+25 | |
This makes sure we don't mess up cross-compilations or even native compilations with a custom sysroot. | |||||
2017-11-20 | Recognize CRLF sequences for line escaping in cc::lexer | Boris Kolpackov | 1 | -0/+14 | |
2017-11-20 | Handle case when compiler-reported header does not exist | Boris Kolpackov | 1 | -1/+16 | |
This, for example, happens when compiling under wine with file wlantypes.h included as WlanTypes.h. | |||||
2017-11-20 | Add test for prerequisite-specific variables | Boris Kolpackov | 2 | -0/+76 | |
2017-11-20 | Add support for dumping prerequisite-specific variables | Boris Kolpackov | 2 | -51/+115 | |
2017-11-20 | Implement dump directive | Boris Kolpackov | 4 | -24/+162 | |
It can be used to print (to stderr) a human-readable representation of the current scope or a list of targets. For example: dump # Dump current scope. dump lib{foo} details/exe{bar} # Dump two targets. This is primarily useful for debugging as well as to write build system tests. | |||||
2017-11-15 | Enter outer prefixes in generated header prefix map | Boris Kolpackov | 2 | -25/+73 | |
2017-11-13 | Quote names that contain wildcard characters | Boris Kolpackov | 1 | -0/+1 | |
2017-11-11 | Add in.substitution={strict|lax} | Boris Kolpackov | 3 | -18/+103 | |
In the strict mode every substitution symbol is expected to start a substitution with the double symbol (e.g., $$) serving as an escape sequence. In the lax mode a pair of substitution symbols is only treated as a substitution if what's between them looks like a build2 variable name (i.e., doesn't contain spaces, etc). Everything else, including unterminated substitution symbols is copied as is. Note also that in this mode the double symbol is not treated as an escape sequence. The lax mode is mostly useful when trying to reuse existing .in files, for example from autoconf. Note, however, that the lax mode is still stricter than the autoconf's semantics which also leaves unknown substitutions as is. | |||||
2017-11-10 | Relax substitution requirements, add alternative symbol in version .in support | Boris Kolpackov | 3 | -18/+70 | |
Give this (legacy) version.h.in: Can now do: h{version}: in{version} file{$src_root/manifest} h{version}: in.symbol = '@' h{version}: FOO = $project.version | |||||
2017-11-10 | Add $directory(), $base(), $leaf() and $extension() functions | Karen Arutyunov | 2 | -0/+213 | |
2017-11-09 | Add support for for-loop | Boris Kolpackov | 14 | -20/+342 | |
The semantics is similar to the C++11 range-based for: list = 1 2 3 for i: $list print $i Note that there is no scoping of any kind for the loop variable ('i' in the above example). See tests/loop/for.test for some examples/ideas. In the future the plan is to also support more general while-loop as well as break and continue. |