Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2022-04-24 | Recognize ARM64 as MSVC target | Boris Kolpackov | 1 | -12/+19 | |
2021-10-11 | Update Apple to vanilla Clang version mapping for Apple Clang 13.0.0 | Boris Kolpackov | 1 | -2/+5 | |
2021-10-01 | Add notion of internal scope, translate external -I to -isystem or equivalent | Boris Kolpackov | 1 | -1/+1 | |
2021-09-28 | Adapt to libbutl headers extension change from .mxx to .hxx | Karen Arutyunov | 1 | -1/+1 | |
2021-07-22 | Adjust Emscripten Clang version to account for unreleased snapshots | Boris Kolpackov | 1 | -1/+17 | |
2021-07-20 | Map Apple Clang version 12.0.5 to vanilla Clang 10.0.0 | Boris Kolpackov | 1 | -16/+19 | |
2021-07-01 | Handle GCC versions in 9.2-win32 form (GitHub issue #156) | Boris Kolpackov | 1 | -25/+19 | |
2021-06-08 | Implement ad hoc regex pattern rule support | Boris Kolpackov | 1 | -1/+1 | |
An ad hoc pattern rule consists of a pattern that mimics a dependency declaration followed by one or more recipes. For example: exe{~'/(.*)/'}: cxx{~'/\1/'} {{ $cxx.path -o $path($>) $path($<[0]) }} If a pattern matches a dependency declaration of a target, then the recipe is used to perform the corresponding operation on this target. For example, the following dependency declaration matches the above pattern which means the rule's recipe will be used to update this target: exe{hello}: cxx{hello} While the following declarations do not match the above pattern: exe{hello}: c{hello} # Type mismatch. exe{hello}: cxx{howdy} # Name mismatch. On the left hand side of `:` in the pattern we can have a single target or an ad hoc target group. The single target or the first (primary) ad hoc group member must be a regex pattern (~). The rest of the ad hoc group members can be patterns or substitutions (^). For example: <exe{~'/(.*)/'} file{^'/\1.map/'}>: cxx{~'/\1/'} {{ $cxx.path -o $path($>[0]) "-Wl,-Map=$path($>[1])" $path($<[0]) }} On the left hand side of `:` in the pattern we have prerequisites which can be patterns, substitutions, or non-patterns. For example: <exe{~'/(.*)/'} file{^'/\1.map/'}>: cxx{~'/\1/'} hxx{^'/\1/'} hxx{common} {{ $cxx.path -o $path($>[0]) "-Wl,-Map=$path($>[1])" $path($<[0]) }} Substitutions on the left hand side of `:` and substitutions and non-patterns on the right hand side are added to the dependency declaration. For example, given the above rule and dependency declaration, the effective dependency is going to be: <exe{hello} file{hello.map>: cxx{hello} hxx{hello} hxx{common} | |||||
2021-05-13 | Rename sys_inc_dirs to sys_hdr_dirs for consistency | Boris Kolpackov | 1 | -8/+8 | |
2021-05-06 | Fix default Clang C++ compiler name mis-guess | Boris Kolpackov | 1 | -1/+1 | |
2021-04-26 | Detect and diagnose presence of certain GCC environment variables | Boris Kolpackov | 1 | -1/+8 | |
Their presence is incompatible with what we are doing. | |||||
2021-04-22 | Incorporate project environment checksum into cc::compiler_info cache key | Boris Kolpackov | 1 | -0/+17 | |
2021-04-22 | Add another hash/save_environment() overload | Boris Kolpackov | 1 | -2/+2 | |
2021-04-07 | Register environment variables for hermetic build configurations | Boris Kolpackov | 1 | -5/+102 | |
2021-03-13 | Tighten Clang detection not to misdetect GCC built with Clang | Boris Kolpackov | 1 | -1/+8 | |
GitHub issue #136. | |||||
2021-01-30 | Add std::{map, multimap} to types.hxx | Boris Kolpackov | 1 | -1/+0 | |
Seeing that std::map is becoming a common Buildfile variable type. | |||||
2021-01-30 | Rework include translation support | Boris Kolpackov | 1 | -0/+175 | |
See the config.cxx.translate_include variable documentation in cxx/init.cxx for details. | |||||
2021-01-08 | Add note | Boris Kolpackov | 1 | -0/+7 | |
2020-12-15 | Cache more results of executing programs (compilers, etc) | Boris Kolpackov | 1 | -16/+4 | |
2020-11-30 | Add version mapping for Apple Clang 12.0.0 | Boris Kolpackov | 1 | -1/+3 | |
2020-11-05 | Initial Emscripten support | Boris Kolpackov | 1 | -132/+266 | |
- Target: wasm32-emscripten (wasm32-unknown-emscripten). - Compiler id: clang-emscripten (type clang, variant emscripten, class gcc). - Ability to build executables (.js plus .wasm) and static libraries (.a). Set executable bit on the .js file (so it can be executed with a suitable binfmt interpreter). - Default config.bin.lib for wasm32-emscripten is static instead of both. - Full C++ exception support is enable unless disabled explicitly by the user with -s DISABLE_EXCEPTION_CATCHING=1|2. - The bin module registers the wasm{} target type for wasm32-emscripten. | |||||
2020-08-24 | Use representation when passing target_triplet as hint | Boris Kolpackov | 1 | -1/+1 | |
2020-06-22 | Try to detect and warn about the ccache compiler wrapper | Boris Kolpackov | 1 | -4/+24 | |
2020-06-22 | Add version mapping for Apple Clang 11.0.3 | Boris Kolpackov | 1 | -14/+22 | |
2020-06-18 | Complete NetBSD compatibility | Boris Kolpackov | 1 | -1/+4 | |
2020-04-11 | Pass LC_ALL=C when extracting locale-dependent information in bin module on ↵ | Karen Arutyunov | 1 | -1/+0 | |
POSIX | |||||
2020-04-07 | Pass LC_ALL=C when extracting locale-dependent information on POSIX | Boris Kolpackov | 1 | -13/+33 | |
2020-02-12 | Add convenience run_start() overload | Boris Kolpackov | 1 | -2/+2 | |
2020-02-07 | Drop copyright notice from source code | Karen Arutyunov | 1 | -1/+0 | |
2020-02-03 | Add header/library search paths from compiler mode to sys_*_dirs | Boris Kolpackov | 1 | -21/+42 | |
2020-01-27 | Protect cc guess cache with mutex | Boris Kolpackov | 1 | -1/+12 | |
2020-01-27 | Improve process run_*() API | Boris Kolpackov | 1 | -2/+2 | |
2019-11-05 | Add support for supplying MSVC IFCPATH equivalent | Boris Kolpackov | 1 | -4/+24 | |
2019-10-31 | Update comment on Apple Clang to vanilla Clang version mapping | Boris Kolpackov | 1 | -15/+14 | |
2019-10-19 | Add find_stem() utility function | Boris Kolpackov | 1 | -23/+4 | |
2019-10-18 | Add ability to specify "compiler mode" options as part of config.{c,cxx} | Boris Kolpackov | 1 | -30/+97 | |
Such options are (normally) not overridden by buildfiles and are passed last (after cc.coptions and {c,cxx}.coptions) in the resulting command lines. They are also cross-hinted between config.c and config.cxx. For example: $ b config.cxx="g++ -m64" | |||||
2019-10-17 | Derive msvc_cpu from cl.exe signature rather than path | Boris Kolpackov | 1 | -41/+29 | |
2019-10-17 | Add support for VS search by cl.exe path in find_msvc() | Karen Arutyunov | 1 | -48/+93 | |
2019-10-17 | Add temporary fallback to x64 in find_msvc() | Boris Kolpackov | 1 | -3/+8 | |
2019-10-16 | Make target CPU part of msvc_info struct | Boris Kolpackov | 1 | -18/+21 | |
2019-10-16 | Try to find MSVC installation for absolute cl.exe paths | Boris Kolpackov | 1 | -48/+102 | |
Without this extra logic recursive invocation of the build system (e.g., in tests) will fail to obtain the full environment. | |||||
2019-10-14 | Fix bug in guess_msvc() | Karen Arutyunov | 1 | -1/+1 | |
2019-10-14 | Add missing #ifndef BUILD2_BOOTSTRAP around find_msvc() call | Boris Kolpackov | 1 | -0/+2 | |
2019-10-14 | Implement MSVC installation discovery for version 15 (2017) and later | Karen Arutyunov | 1 | -81/+564 | |
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-11 | Various fixes to make clang-cl work | Boris Kolpackov | 1 | -1/+1 | |
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-11 | Switch clang-apple to primary/variant version setup | Boris Kolpackov | 1 | -1/+58 | |
2019-10-11 | Add support for clang-cl | Boris Kolpackov | 1 | -137/+241 | |
The compiler type is `msvc`, variant `clang`. | |||||
2019-10-10 | Add %VCINSTALLDIR%\Tools\Llvm\bin as fallback search directory for Clang | Boris Kolpackov | 1 | -6/+28 | |
2019-10-08 | Pass MSVC and Platform SDK bin\ directories as binutils search paths | Boris Kolpackov | 1 | -16/+39 | |
2019-10-08 | Redo bin pattern as PATH-like search paths rather than fallback directory | Boris Kolpackov | 1 | -6/+5 | |
Also, unlike the fallback directory, the search paths are searched first rather than last. |