aboutsummaryrefslogtreecommitdiff
path: root/build2
AgeCommit message (Collapse)AuthorFilesLines
2017-11-20Add support for dumping prerequisite-specific variablesBoris Kolpackov2-51/+115
2017-11-20Implement dump directiveBoris Kolpackov4-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-15Enter outer prefixes in generated header prefix mapBoris Kolpackov2-25/+73
2017-11-13Quote names that contain wildcard charactersBoris Kolpackov1-0/+1
2017-11-11Add in.substitution={strict|lax}Boris Kolpackov3-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-10Relax substitution requirements, add alternative symbol in version .in supportBoris Kolpackov3-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-10Add $directory(), $base(), $leaf() and $extension() functionsKaren Arutyunov1-0/+148
2017-11-09Add support for for-loopBoris Kolpackov12-20/+225
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.
2017-11-09Initial support for prerequisite-specific variables, use for bin.wholeBoris Kolpackov7-40/+182
2017-11-09Fix bug in handling of empty target name prefixes (e.g., bin.lib.prefix)Boris Kolpackov2-2/+2
2017-11-06Revert back to using -fmodule-file for GCC and ClangBoris Kolpackov1-35/+119
Seeing that it's unclear if/when our patches for -fmodule-file-map will be accepted.
2017-11-06Translate 'latest' to C++2a for GCC 8Boris Kolpackov1-2/+2
2017-10-30Pass --text option for diff utility on WindowsKaren Arutyunov1-0/+8
2017-10-17Cosmetic changesBoris Kolpackov1-15/+10
2017-10-17Adjust stack size on Linux, FreeBSD and MacOSKaren Arutyunov1-25/+96
2017-10-17Fortify header dependency extraction against inconsistent behaviorBoris Kolpackov1-6/+19
2017-10-17Adjust max-threads multiplier for 32-bit because of stack size increaseBoris Kolpackov3-4/+5
2017-10-17Adjust stack size on WindowsBoris Kolpackov1-0/+14
2017-10-13Add throw_system_error to utilityBoris Kolpackov1-0/+1
2017-10-13Make scheduler threads inherit stack size from main threadKaren Arutyunov2-5/+65
2017-10-10Fix thread hygine issueBoris Kolpackov1-2/+8
2017-10-08Fix crashing on empty installation directory nameKaren Arutyunov1-0/+3
2017-10-06Fix old .ilk files cleanupKaren Arutyunov1-2/+2
2017-10-06Fix old libs cleanup not to remove unrelated filesKaren Arutyunov1-2/+8
2017-10-04Add ignore_error parameter for functions that check file system entry existenceKaren Arutyunov3-14/+13
2017-10-03Adapt to modularization of libbutlKaren Arutyunov31-64/+64
2017-10-03Extract system header search paths from GCC or compatibleBoris Kolpackov12-31/+213
2017-09-29Allow pattern group to start with inclusionKaren Arutyunov1-30/+130
2017-09-25Get rid of pkgconfig moduleKaren Arutyunov15-365/+93
2017-09-25Make use of libpkgconf libraryKaren Arutyunov7-188/+633
2017-09-11Add ability to pass scope to buildfile functions, add $install.resolve()Boris Kolpackov7-36/+286
2017-09-08Add install::resolve_dir(scope) overloadBoris Kolpackov2-8/+29
2017-09-07Implement {c,cxx}.guess modulesBoris Kolpackov7-68/+165
These can be loaded before {c,cxx} to guess the compiler. Based on this information we can then choose the standard, experimental features, etc. For example: using cxx.guess if ($cxx.id == 'clang') cxx.features.modules = false cxx.std = experimental using cxx
2017-09-06Call dist callback in subprojectsBoris Kolpackov3-10/+35
This fixes a bug with no updating manifest versions in build2-toolchain subprojects.
2017-09-06Handle git submodules in version moduleBoris Kolpackov1-2/+4
2017-09-03Minor diagnostics tweaksBoris Kolpackov1-4/+6
2017-09-03Cleanup project src/out_root/base discovery logicBoris Kolpackov3-137/+69
Specifically, we no longer support specifying the out_base explicitly and assuming work is src_base.
2017-09-01Add support for try_match(), use to handle deleted headersBoris Kolpackov8-73/+184
2017-08-30Make $getenv() to return untyped valueKaren Arutyunov3-2/+30
2017-08-30Add $regex.split(), $regex.merge() and $regex.apply() functionsKaren Arutyunov1-23/+356
2017-08-30Switch to -fmodule-file=<name>=<file>, requires Clang 6.0/trunkBoris Kolpackov2-9/+9
2017-08-24See through bmi*{} in order to install mxx{}Boris Kolpackov2-14/+41
2017-08-24Clean group members in reverseBoris Kolpackov1-3/+3
2017-08-23Don't clean generated cli files from srcBoris Kolpackov1-2/+5
2017-08-23Move support for disabling cleaning to common functionsBoris Kolpackov2-16/+23
2017-08-23Add perform_clean_group(), use instead of ad hoc implementation in cli ruleBoris Kolpackov4-35/+33
2017-08-22Fix disabling error reporting dialog box to properly test for serial executionKaren Arutyunov1-4/+6
2017-08-21Disable displaying error reporting dialog box on Windows unless run seriallyKaren Arutyunov1-0/+10
2017-08-20Don't distribute generated version.hxx and don't clean versionBoris Kolpackov2-19/+0
Now the clean operation in src_root should result in state identical to distributed (which appears to be important to some packaging systems, e.g., Debian).
2017-08-20Add support for not cleaning generated version fileBoris Kolpackov5-6/+30