aboutsummaryrefslogtreecommitdiff
path: root/build2/cc
AgeCommit message (Collapse)AuthorFilesLines
2019-03-14Add support for multiple variable overridesBoris Kolpackov1-2/+2
Now we can do: $ b config.cxx.coptions=-O3 config.cxx.coptions=-O0 Or even: $ b config.cxx.coptions=-O3 config.cxx.coptions+=-g
2019-03-13Don't preserve comments (/C) in MSVC preprocessed outputBoris Kolpackov1-5/+7
This appear to "enable" some additional VC preprocessor bug that are now triggered by the VC 16.0 xsmf_control.h header.
2019-03-12Tweak resolution of relative targets from export.libsBoris Kolpackov1-4/+8
2019-03-12Recognize MSVC 16 (19.20) runtime as 14.2Boris Kolpackov1-3/+11
2019-03-08Use new setup for unit testsKaren Arutyunov10-0/+793
2019-03-07Move bunch of root scope-only data members to root_extraBoris Kolpackov1-1/+1
2019-03-07Add support for alternative build file/directory naming schemeBoris Kolpackov4-8/+18
Now the build/*.build, buildfile, and .buildignore filesystem entries in a project can alternatively (but consistently) be called build2/*.build2, build2file, and .build2ignore. See a note at the beginning of the Project Structure section in the manual for details (motivation, restrictions, etc).
2019-03-01Add another note on inconsistent compiler behavior diagnosticsBoris Kolpackov1-0/+6
2019-02-28Add note on inconsistent compiler behavior diagnosticsBoris Kolpackov1-0/+2
2019-02-27Escape backslashes in GNU options file on WindowsBoris Kolpackov1-2/+22
2019-02-27Use options (aka response) file on Windows if link command line is too longBoris Kolpackov1-10/+111
2019-02-15Check for /usr/local/include in addition to /usr/includeBoris Kolpackov1-6/+9
Specifically, Apple Clang does not have /usr/include (it has its equivalent in /Applications/.../XcodeDefault.xctoolchain/usr/include/) but does have /usr/local/include.
2019-02-15Don't try to pass utility's loptions/libs when linking static libraryBoris Kolpackov2-13/+36
2019-02-12Normalize directory when building include prefix mapBoris Kolpackov1-0/+6
2019-02-12Cosmetic changeBoris Kolpackov1-5/+8
2019-02-05Fix bug in reprocessing logicBoris Kolpackov1-5/+5
2019-01-16Update copyright yearKaren Arutyunov29-29/+29
2019-01-09Fix bug in cc rules matchingBoris Kolpackov1-1/+1
2019-01-09Tighten cc rules matchingBoris Kolpackov4-15/+21
Specifically, make sure the rule does not match if there is a c-common prerequisites that it doesn't recognize.
2018-12-27Fix logic bug in pkg-config shared/static selectionBoris Kolpackov1-11/+13
2018-12-15Fix line counting in cc::lexerKaren Arutyunov1-1/+1
2018-12-12Fix bug in module interface unit preprocessingBoris Kolpackov1-5/+9
2018-11-30Adapt to inventing path_match_flagsKaren Arutyunov1-4/+3
2018-11-28Add --[no-]mtime-check options to control this behavior at runtimeBoris Kolpackov2-3/+8
By default the checks are enabled only for the staged toolchain.
2018-11-23Revert rename of .exe.d to .d (did not make any difference)Boris Kolpackov1-5/+3
2018-11-22Rename .exe.d to just .d to test Windows interference theoryBoris Kolpackov1-3/+5
2018-11-22Make backwards modification time check permanent, add another experimentBoris Kolpackov2-25/+8
2018-11-21More backwards modification time experimentationBoris Kolpackov1-1/+2
2018-11-20Improve workaround for backwards modification time issueBoris Kolpackov1-9/+9
2018-11-19Extend backwards modification time diagnosticsBoris Kolpackov1-1/+2
2018-11-19Workaround Apple ar fractional second truncation bug on APFSBoris Kolpackov1-0/+16
2018-11-19Finalize workaround for backwards modification time issueBoris Kolpackov2-17/+18
2018-11-19Minor diagnostics tweakBoris Kolpackov1-1/+2
2018-11-16Test workaround theory for backwards mtime issueBoris Kolpackov1-5/+4
2018-11-15Instrument cc:link_rule with backwards mtime detection/diagnosticsBoris Kolpackov1-0/+20
2018-11-06Ignore non-existent /usr/local/{include/,lib/}Boris Kolpackov1-17/+28
This should fix some bizarre yo-yo'ing cases where uninstall removes the directories which in turn triggers a rebuild on the next invocation.
2018-11-05Only search for external tools (compilers, linkers, etc) in PATHBoris Kolpackov1-1/+7
Specifically, omit the current executable's directory on Windows since there is no reason for them to be found there automagically and this can lead to surprising behavior (for example, our MinGW GCC being used instead of the user's even though the user's is in PATH before ours).
2018-11-05Distinguish between MSVC command line errors and warningsBoris Kolpackov2-2/+5
2018-11-05Resolve /WN /Wall /w option overridesBoris Kolpackov2-7/+73
Failed that, MSVC "helpfully" warns that one is overriding the other.
2018-11-05Handle MSVC command line warningsBoris Kolpackov2-36/+66
2018-11-02Fix typoBoris Kolpackov1-1/+1
2018-11-02Use rule-specific variables for backlink valueBoris Kolpackov1-4/+4
2018-11-02Use rule-specific variables for module name set on bmi*{} targetsBoris Kolpackov3-13/+21
2018-11-01Add support for rule-specific variables, use to fix cc.type data raceBoris Kolpackov3-11/+16
2018-10-27Fallback to --version for GCC/Clang-like compilers if -v didn't workBoris Kolpackov1-15/+20
2018-10-26Add config.{c,cxx}.{id,version,target} configuration variablesBoris Kolpackov4-482/+681
These variables allow overriding guessed compiler id/version/target, for example, in case of mis-guesses or when working with compilers that don't report their base (e.g., GCC, Clang) with -v/--version (common in the embedded space).
2018-10-26Add support for libpkgconf 1.5 APIKaren Arutyunov1-2/+41
2018-10-25Redesign cc::compiler_id to make variant customizableBoris Kolpackov6-172/+203
2018-10-25Fix race in rule synthesis logicBoris Kolpackov1-6/+35
2018-10-24Fix GCC 8 -fimplicit-fallthrough warningsKaren Arutyunov1-0/+3