Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2023-11-14 | Remap Apple Clang 14.0.3 and 15.0.0 to vanilla Clang 14.0 and 15.0 | Boris Kolpackov | 1 | -6/+14 | |
Lately, we started seeing __LIBCPP_VERSION values like 15.0.6 or 16.0.2 which would suggest the base is 15.0.5 or 16.0.1. But that assumption did not check out with the actual usage. For example, vanilla Clang 16 should no longer require -fmodules-ts but the Apple's version (that is presumably based on it) still does. So the theory here is that Apple upgrades to newer libc++ while keeping the old compiler. Which means we must be more conservative and assume something like 15.0.6 is still 14-based. | |||||
2023-07-31 | Add CCC_OVERRIDE_OPTIONS to list of Clang env vars to track/save | Boris Kolpackov | 1 | -2/+5 | |
2023-06-19 | Update Apple Clang to vanilla Clang version mapping | Boris Kolpackov | 1 | -21/+27 | |
2022-12-12 | Adapt to dir_iterator API change | Karen Arutyunov | 1 | -1/+1 | |
2022-12-08 | Normalize extracted header/library search directories (GH issue #235) | Boris Kolpackov | 1 | -0/+16 | |
2022-11-23 | Rework diag_buffer interface to facilitate correct destruction order | Boris Kolpackov | 1 | -2/+2 | |
2022-11-08 | Make process exit diagnostics consistent | Boris Kolpackov | 1 | -2/+2 | |
In particular, we now always print error message on non-0 exit except in cases where such exit is ignored. | |||||
2022-11-08 | More work on child process diagnostics buffering | Boris Kolpackov | 1 | -25/+38 | |
2022-10-27 | Suppress (potential) bogus GCC 12 -Wrestrict warnings | Boris Kolpackov | 1 | -1/+1 | |
2022-10-25 | Adapt to butl::semantic_version API change | Karen Arutyunov | 1 | -3/+7 | |
2022-10-21 | Handle freestanding/broken setups when entering importable std headers | Boris Kolpackov | 1 | -17/+30 | |
Fixes GH issue #219. | |||||
2022-09-21 | Add winrt Platform SDK header search path for MSVC | Boris Kolpackov | 1 | -3/+4 | |
This is required, for example, to build QtGui. | |||||
2022-08-17 | If cl.exe path is specified then extract VC tools directory from this path | Karen Arutyunov | 1 | -32/+74 | |
2022-07-21 | Map Apple Clang 13.1.6 to vanilla Clang 12.0.0 | Boris Kolpackov | 1 | -18/+20 | |
2022-07-17 | Map VC 17 to runtime version 14.3 | Boris Kolpackov | 1 | -2/+5 | |
2022-05-17 | Add OpenBSD libc detection | Boris Kolpackov | 1 | -0/+2 | |
2022-04-24 | Fix bug in previous commit | Boris Kolpackov | 1 | -1/+1 | |
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 | |