aboutsummaryrefslogtreecommitdiff
path: root/libbuild2
AgeCommit message (Collapse)AuthorFilesLines
2019-10-14Implement MSVC installation discovery for version 15 (2017) and laterKaren Arutyunov12-202/+1715
In particular, this removes the requirement to build from the Visual Studio command prompt. Note that since MSVC compiler binaries are target-specific (i.e., there are no -m32/-m64 options nor something like /MACHINE), in this case we default to a 64-bit build (a 32-bit build can still be achieved by running from a suitable command prompt). Finally, this mechanism is also used to find Clang bundled with MSVC.
2019-10-11Various fixes to make clang-cl workBoris Kolpackov2-31/+45
Note that clang-cl's /showInclude output differs from cl's in the face of missing headers. In particular, it does not issue C1083 that we expect. As a result, this part of clang-cl's support is currently non-functional (the rest seems to work, however).
2019-10-11Switch clang-apple to primary/variant version setupBoris Kolpackov3-39/+60
2019-10-11Add support for clang-clBoris Kolpackov6-160/+319
The compiler type is `msvc`, variant `clang`.
2019-10-10Add %VCINSTALLDIR%\Tools\Llvm\bin as fallback search directory for ClangBoris Kolpackov1-6/+28
2019-10-09Prepend pattern search paths to PATH when running binutilsBoris Kolpackov5-48/+139
This way any dependent tools (such as mt.exe that is invoked by link.exe) are first search for in there.
2019-10-09Work around issue with undefined symbol to constexpr constBoris Kolpackov1-1/+1
Note that this only manifests itself when compiling in the C++14 mode (e.g., during bootstrap or with an older compiler like GCC 4.9).
2019-10-08Extend /LIBPATH handling to win32-msvc target systemBoris Kolpackov2-2/+4
2019-10-08Pass MSVC and Platform SDK bin\ directories as binutils search pathsBoris Kolpackov1-16/+39
2019-10-08Redo bin pattern as PATH-like search paths rather than fallback directoryBoris Kolpackov7-100/+129
Also, unlike the fallback directory, the search paths are searched first rather than last.
2019-10-07Rearrange options for consistencyBoris Kolpackov1-1/+1
2019-10-07Fix testscript regex to be compilable with VC 16.4 previewKaren Arutyunov1-26/+8
2019-10-07Make -print-search-dirs output handling deal better with translationsBoris Kolpackov1-8/+16
2019-10-07Pass MSVC system library search paths to linker if LIB envvar is unsetBoris Kolpackov8-85/+193
2019-10-05Fix bug in guess_clang_msvc()Boris Kolpackov1-2/+4
2019-10-05Default to MSVC DLL runtime for Clang on WindowsBoris Kolpackov2-8/+83
2019-10-05Add MSVC information to Clang signature, checksum on WindowsBoris Kolpackov1-19/+33
2019-10-05Implement more accurate MSVC information extraction from Clang on WindowsBoris Kolpackov3-281/+499
2019-10-02Allow iterating over group prerequisites during executeBoris Kolpackov3-2/+21
2019-10-02Handle Russian version of MSVC C1083 diagnosticsBoris Kolpackov1-13/+33
2019-10-01Add support for $string.icasecmp()Karen Arutyunov1-0/+23
2019-10-01Make $regex.{match,search}() to return NULL for no match if return_match or ↵Karen Arutyunov1-11/+19
return_match flag is specified
2019-10-01Rename $filesystem.path_match() to $path.match()Karen Arutyunov3-108/+127
2019-10-01Adapt to moving path match to path-pattern.?xxKaren Arutyunov5-5/+8
2019-10-01Adapt to swapping of entry and pattern parameters in butl::path_match()Karen Arutyunov4-18/+18
2019-10-01Adapt to renaming butl::casecmp() to icasecmp()Karen Arutyunov7-18/+18
2019-10-01Remap `cxx.std=latest` to `c++17` instead of `c++latest` for MSVC 16Boris Kolpackov1-24/+56
See for details: https://github.com/build2/build2/issues/34
2019-09-30Fix bug in for-loop body evaluationBoris Kolpackov1-6/+10
2019-09-30Allow attributes in if-else, assert directive's conditionsBoris Kolpackov4-26/+49
2019-09-30Cleanup inappropriate use of parse_variable_value()Boris Kolpackov1-40/+42
2019-09-30Handle attributes in switch value and pattern expressionsBoris Kolpackov2-2/+36
2019-09-30Diagnose `case` and `default` outside `switch`Boris Kolpackov1-1/+2
2019-09-30Reserve `:` in `case` pattern expression for future match extraction supportBoris Kolpackov3-7/+18
2019-09-30Add support for custom match/extract functions in switch expressionBoris Kolpackov4-58/+131
2019-09-30Add support for `case` pattern alternativesBoris Kolpackov4-24/+83
case <pattern>[ | <pattern>...]
2019-09-30Allow multiple `case` for single line/blockBoris Kolpackov2-35/+89
2019-09-30Pattern matching support (switch): multiple values implementationBoris Kolpackov3-37/+76
2019-09-30Pattern matching support (switch): single value implementationBoris Kolpackov3-46/+230
2019-09-27Adapt to bracket expressions in wildcard patternsKaren Arutyunov4-41/+53
2019-09-27Add support for testscript builtin escapingKaren Arutyunov1-4/+23
2019-09-27Move testscript builtins to libbutlKaren Arutyunov7-5994/+242
2019-09-19Fix crashing on testscript command redirect overridesKaren Arutyunov3-4/+132
2019-09-18Rename importable_headers variable to translatable_headersBoris Kolpackov5-34/+33
This name aligns better with the post-Cologne importable/translatable semantics.
2019-09-18Temporarily force c++17 if using GCC modules branchBoris Kolpackov1-1/+5
The use of 2a-isms in the standard library are breaking things on a regular basic.
2019-09-05Improve /showIncludes parsing to handle internal (debug?) builds of MSVCBoris Kolpackov1-5/+17
2019-09-05Tighten versioned shared library cleanup logicBoris Kolpackov1-12/+23
2019-09-04Add support for native shared library versioning on LinuxBoris Kolpackov3-30/+126
Now we can do: lib{foo}: bin.lib.version = linux@1.2 And end up with libfoo.so.1.2 libfoo.so.1 -> libfoo.so.1.2
2019-08-30Make build_installed constBoris Kolpackov3-5/+4
2019-08-30Cutoff diagnostics stack when switching to nested contextBoris Kolpackov3-26/+51
2019-08-29Work around VC14 miscompilationKaren Arutyunov1-0/+8