aboutsummaryrefslogtreecommitdiff
path: root/build2/cc
AgeCommit message (Collapse)AuthorFilesLines
2018-09-07Fix binless logic some moreBoris Kolpackov2-15/+16
2018-09-06Fix issues with interaction between binless logic and Windows DLLsBoris Kolpackov4-26/+46
2018-09-05Fix bug in pkgconfig_load()Boris Kolpackov1-1/+1
2018-09-05Only consider common .pc file for binless variant if there is no binfullBoris Kolpackov3-15/+30
2018-09-05Adjust pkg-config logic to cover binless librariesBoris Kolpackov3-131/+234
2018-09-04Check for binless-ness after seeing through to import library memberBoris Kolpackov1-11/+16
This makes a difference for installed libraries since the DLL location might be unknown (empty path).
2018-09-04Initial work on binless (binary-less aka header-only) library supportBoris Kolpackov6-329/+442
2018-09-03Use (native) C and C++ compilers we were built with as defaultsBoris Kolpackov1-5/+14
2018-08-31Add ability to print cc compiler_id valueBoris Kolpackov2-0/+24
2018-08-27Don't insist on install rules for non-file targetsBoris Kolpackov5-8/+8
This helps with (not) installing libu*{} groups.
2018-08-25Implement missing pieces in utility libraries supportBoris Kolpackov9-184/+396
In particular, we can now build static libraries out of utility libraries.
2018-08-22Rework code to sidestep Clang 3.8 on FreeBSD 11.0 mis-compilationBoris Kolpackov1-2/+1
2018-08-21Unset CL and _CL_ environment variables when detecting MSVCBoris Kolpackov1-1/+10
2018-08-21Print 'ar' instead of 'ld' when building static librariesBoris Kolpackov1-1/+1
2018-08-14Use thin archives if available for utility librariesBoris Kolpackov1-10/+44
Thin archives are supported by GNU ar since binutils 2.19.1 and LLVM ar since LLVM 3.8.0.
2018-08-07Add support for default extension specification, trailing dot escapingBoris Kolpackov1-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-30Make project variable to be of project_name typeKaren Arutyunov3-5/+6
2018-07-26Pass extension supplied by rule to target type default extension functionBoris Kolpackov1-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-25Remove unnecessary initialization (which also helps GCC 4.9 and VC 14u3)Boris Kolpackov1-1/+1
2018-07-25Prefer default extension supplied by rule over one supplied by target typeBoris Kolpackov1-1/+1
2018-07-25Add noteBoris Kolpackov1-3/+4
2018-07-24Switch to new GCC module interface (-fmodule-mapper)Boris Kolpackov2-142/+98
2018-07-24Handle leading 'module;' marker (p0713)Boris Kolpackov3-4/+28
2018-07-21Install bash module prerequisites for amalgamation rather than projectBoris Kolpackov1-1/+1
This is similar to what we do for shared libraries in cc::install_rule.
2018-07-16Implement in moduleBoris Kolpackov1-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-11Force reprocessing for module interface units if compiling with VCBoris Kolpackov1-0/+10
2018-06-28Implement support for excluded and ad hoc prerequisitesBoris Kolpackov5-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-14Fix typoBoris Kolpackov1-1/+1
2018-06-13Open depdb earlier to detect and diagnose missing output directoryBoris Kolpackov1-2/+5
2018-06-13Fix diagnostics bugBoris Kolpackov1-1/+1
2018-06-12Add built-in support for Windows module definition files (.def)Boris Kolpackov1-5/+47
2018-06-12Remove output if ld failsBoris Kolpackov1-5/+7
This helps link.exe which leaves broken the output around.
2018-06-09Minor diagnostics improvementBoris Kolpackov1-1/+6
2018-06-05Fix localization issue in GCC system header search path extractionBoris Kolpackov1-5/+5
2018-06-01Fix uncaught invalid_path exceptionKaren Arutyunov1-6/+16
2018-05-28Fix localized /showIncludes parsing some moreBoris Kolpackov1-11/+27
2018-05-25Fix target locking race in search_library()Boris Kolpackov1-0/+8
2018-05-25Change default install filter to only accept prerequisites from amalgamationBoris Kolpackov2-9/+12
2018-05-25Fix link rule to synthesize identical dependency for clean and updateBoris Kolpackov1-11/+44
2018-05-24Skip auto-generated header mapping if include path is not normalizableBoris Kolpackov1-30/+37
2018-05-24Fix bug in TU checksum depdb saving logic in case of reprocess=trueBoris Kolpackov1-3/+3
2018-05-24Better handling of translated massages in VC's /showIncludes outputBoris Kolpackov1-19/+27
2018-05-24Add note on *-gcc-{ar,ranlib,etc} situationBoris Kolpackov1-1/+2
2018-05-19Update copyright yearKaren Arutyunov29-29/+29
2018-05-18Update VC version mapping table with 15.7Boris Kolpackov1-0/+1
2018-05-18Pass ignore_dangling flag to dir_iterator() ctorKaren Arutyunov1-1/+4
2018-05-16Fix uncaught invalid_path exceptionKaren Arutyunov1-1/+4
2018-05-02Add support for different backlinking modes, use for Windows DLL assemblyBoris Kolpackov1-0/+14
2018-04-26Implement forwarded configurations and backlinkingBoris Kolpackov4-16/+42
2018-03-21Strip out_root when hashing linker input pathsBoris Kolpackov1-7/+8
This allows moving out_root of simple projects (no rpath, -I$out_root, or similar) without causing a re-link which we use for testing.