aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompilationContext.java
Commit message (Collapse)AuthorAge
* Use Bazel Preconditions variant which avoids varargs array creationGravatar Mark Schaller2015-12-10
| | | | | | | Reduces garbage. -- MOS_MIGRATED_REVID=109914243
* Add a feature to require explicitly passing module maps.Gravatar Manuel Klimek2015-10-07
| | | | | | | | | | | | | | | | | | | | | | Currently, module maps contain both "use <module>" entries that specify which modules the current module map depends on, and "extern module" entries that provide paths where to load the dependent module maps from. This change adds a feature "module_map_without_extern_module", which instructs blaze to not write the "extern module" entries into the module map. Instead, the crosstool needs to add -fmodule-file flags for each dependent module file where needed for the compile via the new build variable "dependent_module_map_files". Note that the feature is phrased negatively ("_without_") in order to simplify the roll-out of this feature: as long as crosstools do not specify any features, they still want the old behavior. We cannot make the feature positive and add it to the legacy configuration, as we currently cannot remove features that have already been set in the crosstool file. -- MOS_MIGRATED_REVID=104757413
* Rationalize copyright headersGravatar Damien Martin-Guillerez2015-09-25
| | | | | | | | | | | The headers were modified with `find . -type f -exec 'sed' '-Ei' 's|Copyright 201([45]) Google|Copyright 201\1 The Bazel Authors|' '{}' ';'` And manual edit for not Google owned copyright. Because of the nature of ijar, I did not modified the header of file owned by Alan Donovan. The list of authors were extracted from the git log. It is missing older Google contributors that can be added on-demand. -- MOS_MIGRATED_REVID=103938715
* Add a feature to control whether we provide transitive header modules to aGravatar Manuel Klimek2015-08-11
| | | | | | | modules enabled build. -- MOS_MIGRATED_REVID=100272810
* Add all transitive module maps when we use header modules.Gravatar Manuel Klimek2015-07-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we have a library 'a' that depends on a library 'm' via multiple other libraries, and 'm' is built as a module, we need clang to load the module map of 'm'. There are multiple possible solutions: 1. (This CL): Add all transitive module maps as inputs when we want to use a module map (at any transitive level). Clang will load all module maps, and find the corresponding modules. 2. Add the module maps of all top-level modules (e.g. modules that are not reached transitively through another module) to clang's command line (we already pass all transtitive module maps for each library that is compiled as a module). The upside of (1) is that it simplifies the module map input computation and removes some differences between remote and local compiles (local compiles will always see all transitive module maps). The upside of (2) would be that we use fewer module map inputs when we do builds that use modules as long as we only have a small subset of libraries at the bottom of the stack compiled as modules. Both alternatives keep transitive module maps out of the inputs for actions that do not use header modules, thus making sure the normal case does not regress. We are implementing (1) because the main slow-down with transitive module maps is during the early loading phase, and should be quickly offset by module builds. We will revisit that decision once we have more data. -- MOS_MIGRATED_REVID=98118092
* Add some clarifying comments to CppCompilationContext.Gravatar Han-Wen Nienhuys2015-06-12
| | | | | -- MOS_MIGRATED_REVID=95738396
* Description redacted.Gravatar Manuel Klimek2015-02-10
| | | | | -- MOS_MIGRATED_REVID=85970303
* Update from Google.Gravatar Han-Wen Nienhuys2015-02-25
-- MOE_MIGRATED_REVID=85702957