Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2018-11-05 | Only search for external tools (compilers, linkers, etc) in PATH | Boris Kolpackov | 1 | -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-05 | Distinguish between MSVC command line errors and warnings | Boris Kolpackov | 2 | -2/+5 | |
2018-11-05 | Resolve /WN /Wall /w option overrides | Boris Kolpackov | 2 | -7/+73 | |
Failed that, MSVC "helpfully" warns that one is overriding the other. | |||||
2018-11-05 | Handle MSVC command line warnings | Boris Kolpackov | 2 | -36/+66 | |
2018-11-02 | Fix typo | Boris Kolpackov | 1 | -1/+1 | |
2018-11-02 | Use rule-specific variables for backlink value | Boris Kolpackov | 1 | -4/+4 | |
2018-11-02 | Use rule-specific variables for module name set on bmi*{} targets | Boris Kolpackov | 3 | -13/+21 | |
2018-11-01 | Add support for rule-specific variables, use to fix cc.type data race | Boris Kolpackov | 3 | -11/+16 | |
2018-10-27 | Fallback to --version for GCC/Clang-like compilers if -v didn't work | Boris Kolpackov | 1 | -15/+20 | |
2018-10-26 | Add config.{c,cxx}.{id,version,target} configuration variables | Boris Kolpackov | 4 | -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-26 | Add support for libpkgconf 1.5 API | Karen Arutyunov | 1 | -2/+41 | |
2018-10-25 | Redesign cc::compiler_id to make variant customizable | Boris Kolpackov | 6 | -172/+203 | |
2018-10-25 | Fix race in rule synthesis logic | Boris Kolpackov | 1 | -6/+35 | |
2018-10-24 | Fix GCC 8 -fimplicit-fallthrough warnings | Karen Arutyunov | 1 | -0/+3 | |
2018-10-19 | Suggest override variable (config.x) when tool is not found | Boris Kolpackov | 3 | -5/+18 | |
2018-10-19 | Fix bug in binutils pattern derivation logic | Boris Kolpackov | 1 | -7/+15 | |
2018-10-19 | Improve inconsistent compiler behavior diagnostics | Boris Kolpackov | 1 | -9/+15 | |
2018-10-18 | Fix bug in binless library linking logic | Boris Kolpackov | 2 | -19/+8 | |
2018-09-07 | Fix binless logic some more | Boris Kolpackov | 2 | -15/+16 | |
2018-09-06 | Fix issues with interaction between binless logic and Windows DLLs | Boris Kolpackov | 4 | -26/+46 | |
2018-09-05 | Fix bug in pkgconfig_load() | Boris Kolpackov | 1 | -1/+1 | |
2018-09-05 | Only consider common .pc file for binless variant if there is no binfull | Boris Kolpackov | 3 | -15/+30 | |
2018-09-05 | Adjust pkg-config logic to cover binless libraries | Boris Kolpackov | 3 | -131/+234 | |
2018-09-04 | Check for binless-ness after seeing through to import library member | Boris Kolpackov | 1 | -11/+16 | |
This makes a difference for installed libraries since the DLL location might be unknown (empty path). | |||||
2018-09-04 | Initial work on binless (binary-less aka header-only) library support | Boris Kolpackov | 6 | -329/+442 | |
2018-09-03 | Use (native) C and C++ compilers we were built with as defaults | Boris Kolpackov | 1 | -5/+14 | |
2018-08-31 | Add ability to print cc compiler_id value | Boris Kolpackov | 2 | -0/+24 | |
2018-08-27 | Don't insist on install rules for non-file targets | Boris Kolpackov | 5 | -8/+8 | |
This helps with (not) installing libu*{} groups. | |||||
2018-08-25 | Implement missing pieces in utility libraries support | Boris Kolpackov | 9 | -184/+396 | |
In particular, we can now build static libraries out of utility libraries. | |||||
2018-08-22 | Rework code to sidestep Clang 3.8 on FreeBSD 11.0 mis-compilation | Boris Kolpackov | 1 | -2/+1 | |
2018-08-21 | Unset CL and _CL_ environment variables when detecting MSVC | Boris Kolpackov | 1 | -1/+10 | |
2018-08-21 | Print 'ar' instead of 'ld' when building static libraries | Boris Kolpackov | 1 | -1/+1 | |
2018-08-14 | Use thin archives if available for utility libraries | Boris Kolpackov | 1 | -10/+44 | |
Thin archives are supported by GNU ar since binutils 2.19.1 and LLVM ar since LLVM 3.8.0. | |||||
2018-08-07 | Add support for default extension specification, trailing dot escaping | Boris Kolpackov | 1 | -5/+3 | |
For example: cxx{*}: extension = cxx cxx{foo} # foo.cxx cxx{foo.test} # foo.test (probably what we want...) cxx{foo.test...} # foo.test.cxx (... is this) cxx{foo..} # foo. cxx{foo....} # foo.. cxx{foo.....} # error (must come in escape pair) | |||||
2018-07-30 | Make project variable to be of project_name type | Karen Arutyunov | 3 | -5/+6 | |
2018-07-26 | Pass extension supplied by rule to target type default extension function | Boris Kolpackov | 1 | -1/+1 | |
Also revert the precedence back to target type over rule. But now the target type is able to customize this logic (see exe{} for a use case). | |||||
2018-07-25 | Remove unnecessary initialization (which also helps GCC 4.9 and VC 14u3) | Boris Kolpackov | 1 | -1/+1 | |
2018-07-25 | Prefer default extension supplied by rule over one supplied by target type | Boris Kolpackov | 1 | -1/+1 | |
2018-07-25 | Add note | Boris Kolpackov | 1 | -3/+4 | |
2018-07-24 | Switch to new GCC module interface (-fmodule-mapper) | Boris Kolpackov | 2 | -142/+98 | |
2018-07-24 | Handle leading 'module;' marker (p0713) | Boris Kolpackov | 3 | -4/+28 | |
2018-07-21 | Install bash module prerequisites for amalgamation rather than project | Boris Kolpackov | 1 | -1/+1 | |
This is similar to what we do for shared libraries in cc::install_rule. | |||||
2018-07-16 | Implement in module | Boris Kolpackov | 1 | -2/+2 | |
Given test.in containing something along these lines: foo = $foo$ Now we can do: using in file{test}: in{test.in} file{test}: foo = FOO The alternative variable substitution symbol can be specified with the in.symbol variable and lax (instead of the default strict) mode with in.substitution. For example: file{test}: in.symbol = '@' file{test}: in.substitution = lax | |||||
2018-07-11 | Force reprocessing for module interface units if compiling with VC | Boris Kolpackov | 1 | -0/+10 | |
2018-06-28 | Implement support for excluded and ad hoc prerequisites | Boris Kolpackov | 5 | -24/+85 | |
The inclusion/exclusion is controlled via the 'include' prerequisite-specific variable. Valid values are: false - exclude true - include adhoc - include but treat as an ad hoc input For example: lib{foo}: cxx{win32-utility}: include = ($cxx.targe.class == 'windows') exe{bar}: libs{plugin}: include = adhoc | |||||
2018-06-14 | Fix typo | Boris Kolpackov | 1 | -1/+1 | |
2018-06-13 | Open depdb earlier to detect and diagnose missing output directory | Boris Kolpackov | 1 | -2/+5 | |
2018-06-13 | Fix diagnostics bug | Boris Kolpackov | 1 | -1/+1 | |
2018-06-12 | Add built-in support for Windows module definition files (.def) | Boris Kolpackov | 1 | -5/+47 | |
2018-06-12 | Remove output if ld fails | Boris Kolpackov | 1 | -5/+7 | |
This helps link.exe which leaves broken the output around. |