aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/cc/guess.cxx
AgeCommit message (Collapse)AuthorFilesLines
2022-10-27Suppress (potential) bogus GCC 12 -Wrestrict warningsBoris Kolpackov1-1/+1
2022-10-25Adapt to butl::semantic_version API changeKaren Arutyunov1-3/+7
2022-10-21Handle freestanding/broken setups when entering importable std headersBoris Kolpackov1-17/+30
Fixes GH issue #219.
2022-09-21Add winrt Platform SDK header search path for MSVCBoris Kolpackov1-3/+4
This is required, for example, to build QtGui.
2022-08-17If cl.exe path is specified then extract VC tools directory from this pathKaren Arutyunov1-32/+74
2022-07-21Map Apple Clang 13.1.6 to vanilla Clang 12.0.0Boris Kolpackov1-18/+20
2022-07-17Map VC 17 to runtime version 14.3Boris Kolpackov1-2/+5
2022-05-17Add OpenBSD libc detectionBoris Kolpackov1-0/+2
2022-04-24Fix bug in previous commitBoris Kolpackov1-1/+1
2022-04-24Recognize ARM64 as MSVC targetBoris Kolpackov1-12/+19
2021-10-11Update Apple to vanilla Clang version mapping for Apple Clang 13.0.0Boris Kolpackov1-2/+5
2021-10-01Add notion of internal scope, translate external -I to -isystem or equivalentBoris Kolpackov1-1/+1
2021-09-28Adapt to libbutl headers extension change from .mxx to .hxxKaren Arutyunov1-1/+1
2021-07-22Adjust Emscripten Clang version to account for unreleased snapshotsBoris Kolpackov1-1/+17
2021-07-20Map Apple Clang version 12.0.5 to vanilla Clang 10.0.0Boris Kolpackov1-16/+19
2021-07-01Handle GCC versions in 9.2-win32 form (GitHub issue #156)Boris Kolpackov1-25/+19
2021-06-08Implement ad hoc regex pattern rule supportBoris Kolpackov1-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-13Rename sys_inc_dirs to sys_hdr_dirs for consistencyBoris Kolpackov1-8/+8
2021-05-06Fix default Clang C++ compiler name mis-guessBoris Kolpackov1-1/+1
2021-04-26Detect and diagnose presence of certain GCC environment variablesBoris Kolpackov1-1/+8
Their presence is incompatible with what we are doing.
2021-04-22Incorporate project environment checksum into cc::compiler_info cache keyBoris Kolpackov1-0/+17
2021-04-22Add another hash/save_environment() overloadBoris Kolpackov1-2/+2
2021-04-07Register environment variables for hermetic build configurationsBoris Kolpackov1-5/+102
2021-03-13Tighten Clang detection not to misdetect GCC built with ClangBoris Kolpackov1-1/+8
GitHub issue #136.
2021-01-30Add std::{map, multimap} to types.hxxBoris Kolpackov1-1/+0
Seeing that std::map is becoming a common Buildfile variable type.
2021-01-30Rework include translation supportBoris Kolpackov1-0/+175
See the config.cxx.translate_include variable documentation in cxx/init.cxx for details.
2021-01-08Add noteBoris Kolpackov1-0/+7
2020-12-15Cache more results of executing programs (compilers, etc)Boris Kolpackov1-16/+4
2020-11-30Add version mapping for Apple Clang 12.0.0Boris Kolpackov1-1/+3
2020-11-05Initial Emscripten supportBoris Kolpackov1-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-24Use representation when passing target_triplet as hintBoris Kolpackov1-1/+1
2020-06-22Try to detect and warn about the ccache compiler wrapperBoris Kolpackov1-4/+24
2020-06-22Add version mapping for Apple Clang 11.0.3Boris Kolpackov1-14/+22
2020-06-18Complete NetBSD compatibilityBoris Kolpackov1-1/+4
2020-04-11Pass LC_ALL=C when extracting locale-dependent information in bin module on ↵Karen Arutyunov1-1/+0
POSIX
2020-04-07Pass LC_ALL=C when extracting locale-dependent information on POSIXBoris Kolpackov1-13/+33
2020-02-12Add convenience run_start() overloadBoris Kolpackov1-2/+2
2020-02-07Drop copyright notice from source codeKaren Arutyunov1-1/+0
2020-02-03Add header/library search paths from compiler mode to sys_*_dirsBoris Kolpackov1-21/+42
2020-01-27Protect cc guess cache with mutexBoris Kolpackov1-1/+12
2020-01-27Improve process run_*() APIBoris Kolpackov1-2/+2
2019-11-05Add support for supplying MSVC IFCPATH equivalentBoris Kolpackov1-4/+24
2019-10-31Update comment on Apple Clang to vanilla Clang version mappingBoris Kolpackov1-15/+14
2019-10-19Add find_stem() utility functionBoris Kolpackov1-23/+4
2019-10-18Add ability to specify "compiler mode" options as part of config.{c,cxx}Boris Kolpackov1-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-17Derive msvc_cpu from cl.exe signature rather than pathBoris Kolpackov1-41/+29
2019-10-17Add support for VS search by cl.exe path in find_msvc()Karen Arutyunov1-48/+93
2019-10-17Add temporary fallback to x64 in find_msvc()Boris Kolpackov1-3/+8
2019-10-16Make target CPU part of msvc_info structBoris Kolpackov1-18/+21
2019-10-16Try to find MSVC installation for absolute cl.exe pathsBoris Kolpackov1-48/+102
Without this extra logic recursive invocation of the build system (e.g., in tests) will fail to obtain the full environment.