aboutsummaryrefslogtreecommitdiff
path: root/build2/cc/compile-rule.cxx
AgeCommit message (Collapse)AuthorFilesLines
2019-06-03Adapt to renaming traits alias to traits_type for basic_path, basic_url, and ↵Karen Arutyunov1-11/+12
string_table class templates
2019-06-03Add note on GCC optionsBoris Kolpackov1-0/+2
2019-05-15Cleanup clean_extra() mess (pun intended)Boris Kolpackov1-7/+6
2019-05-15Add ability to depend on (declared) ad hoc group memberBoris Kolpackov1-2/+4
2019-05-13Remove order dependence in ad hoc group handlingBoris Kolpackov1-2/+2
Also, don't match group_recipe since we neither execute nor access the state.
2019-05-07Work around issues in old compilersBoris Kolpackov1-5/+5
2019-05-06Fix uninitialized variable bugBoris Kolpackov1-1/+1
2019-05-03Support <>-style header specification in importable_headersBoris Kolpackov1-1/+7
2019-05-03Rename [config.]cxx.header_units to importable_headersBoris Kolpackov1-5/+5
2019-05-03Switch back to blocking compiler communicationBoris Kolpackov1-0/+50
2019-05-01Add noteBoris Kolpackov1-0/+4
2019-05-01Redo module mapper logic not to rely on followup commandsBoris Kolpackov1-81/+102
2019-04-30Initial take on header unit and include translation supportBoris Kolpackov1-838/+1826
2019-04-17Incorporate ad hoc prerequisite mtime into out-of-date determinationBoris Kolpackov1-0/+3
2019-04-11Default to strict mode (/permissive-) from VC15.5Boris Kolpackov1-1/+1
2019-04-11Sync up with latest C++ modules support in GCCBoris Kolpackov1-1/+1
2019-04-10Always use cached mtime if availableBoris Kolpackov1-2/+20
Besides other things, this is required for "logical clean" in the try-run mode to work properly: $ b -vn clean update
2019-04-08Support for --dry-run|-n mode, perform update partBoris Kolpackov1-63/+92
2019-04-04Fix typoBoris Kolpackov1-1/+1
2019-04-04Tweak extension-to-target type mapping resolution to deal with in-source buildsBoris Kolpackov1-11/+20
2019-04-04Add support for extension-to-target type mapping ambiguity resolutionBoris Kolpackov1-17/+52
The typical case is h{} and hxx{} using the same .h extension. This was generally not a problem except for auto-generated headers. Now this is resolved by looking up the actual target.
2019-04-03Change depdb API and handle system_error thrown by butl::file_mtime()Karen Arutyunov1-1/+2
Previously, debdb operations threw system_error and io_error to signal errors, except for opening which issued diagnostics and failed. Now all operations print the diagnostics and fail on system and IO errors.
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-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 Kolpackov1-2/+6
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-12Normalize directory when building include prefix mapBoris Kolpackov1-0/+6
2019-02-05Fix bug in reprocessing logicBoris Kolpackov1-5/+5
2019-01-16Update copyright yearKaren Arutyunov1-1/+1
2018-12-12Fix bug in module interface unit preprocessingBoris Kolpackov1-5/+9
2018-11-28Add --[no-]mtime-check options to control this behavior at runtimeBoris Kolpackov1-2/+7
By default the checks are enabled only for the staged toolchain.
2018-11-22Make backwards modification time check permanent, add another experimentBoris Kolpackov1-2/+6
2018-11-19Finalize workaround for backwards modification time issueBoris Kolpackov1-5/+5
2018-11-19Minor diagnostics tweakBoris Kolpackov1-1/+2
2018-11-05Distinguish between MSVC command line errors and warningsBoris Kolpackov1-1/+4
2018-11-05Resolve /WN /Wall /w option overridesBoris Kolpackov1-0/+10
Failed that, MSVC "helpfully" warns that one is overriding the other.
2018-11-05Handle MSVC command line warningsBoris Kolpackov1-32/+17
2018-11-02Fix typoBoris Kolpackov1-1/+1
2018-11-02Use rule-specific variables for module name set on bmi*{} targetsBoris Kolpackov1-10/+12
2018-10-25Redesign cc::compiler_id to make variant customizableBoris Kolpackov1-66/+57
2018-10-24Fix GCC 8 -fimplicit-fallthrough warningsKaren Arutyunov1-0/+3
2018-10-19Improve inconsistent compiler behavior diagnosticsBoris Kolpackov1-9/+15
2018-08-27Don't insist on install rules for non-file targetsBoris Kolpackov1-1/+1
This helps with (not) installing libu*{} groups.
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-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 Kolpackov1-139/+95
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 Kolpackov1-8/+40
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