aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java
Commit message (Collapse)AuthorAge
...
* Implement basic objc executable linking in the CROSSTOOL.Gravatar Cal Peyser2016-11-16
| | | | | | | | | | | | | | The following link features are *not* implemented yet: 1) Objc++ linking semantics 2) Dead stripping 3) --should_prioritize_static_libs 4) DSYM generation 5) Coverage support 6) Swift interop 7) Linkmap -- MOS_MIGRATED_REVID=139232434
* Introduce structured build variables in CrosstoolGravatar Marcel Hlopko2016-11-11
| | | | | | | | | | | | | | | | | | | | This cl adds a 3rd type of build variable - structs. Structs have fields, which can hold any build variable type (including structs). In the CROSSTOOl, the fields are accessed by the dot-notation, e.g.: flag_group { iterate_over: "libraries_to_link flag_group { iterate_over: "libraries_to_link.libraries" flag: "-L%{libraries_to_link.libraries.directory}" } } As a memory optimization, we also add StructureSequences. These save us from the overhead of individual StructureValue objects. -- MOS_MIGRATED_REVID=138851774
* Introduce explicit iterate_over field for flag_group in CrosstoolGravatar Marcel Hlopko2016-11-08
| | | | | | | | | | | | Now flag_group can be marked with iterate_over field, that denotes for which sequence variable the flag_group will be expanded repeatedly. This cl does that in backwards compatible way as before, the iteration happened implicitly when the used variable was found to be sequence at runtime. Because of that it adds some extra code that will be removed once all the crosstools are migrated to the explicit iteration. -- MOS_MIGRATED_REVID=138501033
* Move interface so building to action configsGravatar Marcel Hlopko2016-10-12
| | | | | | | | | This cl moves the conditional building of interface libraries from LinkCommandLine to action configs and features. It provides link_dynamic_library.sh to keep blaze backwards compatible. The script and related code can be deleted once all crosstools are updated. RELNOTES: No. -- MOS_MIGRATED_REVID=135799041
* Fix typoGravatar Marcel Hlopko2016-09-06
| | | | | -- MOS_MIGRATED_REVID=132261111
* Prune .pcm files based on the results of include scanning.Gravatar Googler2016-08-23
| | | | | | | Basically, take the set of headers found by #include scanning and check what modules they are coming from. If a module provides at least one of the required headers, it is required as are all of its dependent modules (because of the way modules are implemented). Only use the actually required modules as compilation inputs and as flags handed in on the command line. Also move the logic to calculate top-level modules from the analysis phase into the execution phase. In the long run, we might be able to completely remove this logic now, but for now, we want to be able to quickly switch between the old and the new behavior. Thus, pruning of modules is now guarded on a feature prune_module_headers. -- MOS_MIGRATED_REVID=131058820
* Record the category of the artifact to be linked in LinkerInput.Gravatar Lukacs Berki2016-08-12
| | | | | | | | | It's currently only used for sanity checks, but the idea is that we'll use this field to decide what to do with a given linker input instead of inferring things from its file name. Also make artifact name creation a bit simpler by using the same set of variables for compiler and linker outputs. -- MOS_MIGRATED_REVID=129990944
* Avoid hard-coded extensions for compilation outputs.Gravatar Lukacs Berki2016-08-05
| | | | | | | | | The multi-layered transformation (base -> base.pic -> base.pic.pcm -> base.pic.pcm.d) is kinda ugly, but is preferable to having 22 separate, mostly orthogonal artifact categories. It's actually untested what happens if we put these new name patterns into the CROSSTOOL file. -- MOS_MIGRATED_REVID=129423055
* Refactor CppLinkAction to construct its command line using the crosstool ↵Gravatar Cal Peyser2016-08-03
| | | | | | | instead of a hardcoded switch. Add action configs to CppConfiguration for each link type. -- MOS_MIGRATED_REVID=129221108
* Rollback of commit f61d12e9e4f940810efbaf244911a94830ba6c05.Gravatar Lukacs Berki2016-08-02
| | | | | | | *** Reason for rollback *** -- MOS_MIGRATED_REVID=129078102
* Linker outputs can optionally be configured from the CROSSTOOL. Introduces ↵Gravatar Cal Peyser2016-07-27
| | | | | | | infrastructure to allow other artifact categories (such as debug symbols or compiler outputs) to be defined in other changes. -- MOS_MIGRATED_REVID=128495797
* Refactor CppLinkAction to construct its command line using the crosstool ↵Gravatar Cal Peyser2016-07-27
| | | | | | | instead of a hardcoded switch. Add action configs to CppConfiguration for each link type. -- MOS_MIGRATED_REVID=128470872
* Rollback of commit b669406789dd452161875d407d0ce6a3502de5f6.Gravatar Damien Martin-Guillerez2016-07-25
| | | | | | | | | | | | | | | | *** Reason for rollback *** Breaks TensorFlow and rules_go on ci.bazel.io Fixes #1562. Fixes #1558. *** Original change description *** Refactor CppLinkAction to construct its command line using the crosstool instead of a hardcoded switch. Add action configs to CppConfiguration for each link type. -- MOS_MIGRATED_REVID=128352435
* Refactor CppLinkAction to construct its command line using the crosstool ↵Gravatar Cal Peyser2016-07-25
| | | | | | | instead of a hardcoded switch. Add action configs to CppConfiguration for each link type. -- MOS_MIGRATED_REVID=128298069
* Allow flags to be applied to an action using an action_config. A flag set onGravatar Cal Peyser2016-06-07
| | | | | | | | an action_config specifies no action, and is automatically applied to the action being configured. -- MOS_MIGRATED_REVID=124240929
* Add framework support to ExperimentalObjcLibrary.Gravatar Cal Peyser2016-05-23
| | | | | -- MOS_MIGRATED_REVID=122988772
* Action configs are activated like features (instead of being activated by ↵Gravatar Cal Peyser2016-05-11
| | | | | | | default). Action configs can imply features. -- MOS_MIGRATED_REVID=122032003
* Implements pch in experimental_objc_library as a feature. Provides a ↵Gravatar Cal Peyser2016-04-25
| | | | | | | mechanism to add build variables through the CcLibraryHelper API. -- MOS_MIGRATED_REVID=120710713
* Add mechanism to crosstool language to specify action-specific execution ↵Gravatar Cal Peyser2016-04-25
| | | | | | | requirements. Uses this mechanism to configure c/c++ compilation and linking for darwin execution from the crosstool. -- MOS_MIGRATED_REVID=120701108
* --Gravatar Michael Staib2016-04-21
| | | | MOS_MIGRATED_REVID=120353718
* Add mechanism to crosstool language to specify action-specific execution ↵Gravatar Cal Peyser2016-04-19
| | | | | | | requirements. Uses this mechanism to configure c/c++ compilation and linking for darwin execution from the crosstool. -- MOS_MIGRATED_REVID=120218079
* Add the option to have non-interface dependencies. This can greatly speed upGravatar Googler2016-04-19
| | | | | | | | builds with C++ modules as modules can be built without waiting on dependencies that are only required for the module's implementation. -- MOS_MIGRATED_REVID=120119435
* Introduces action_config. Does this by:Gravatar Cal Peyser2016-04-05
| | | | | | | | | 1) Introducing the action_config message in the crosstool protobuf definition. The only part of that definition that are implemented in this CL is the "tool" section, other parts will be implemented in future CLs. The proto fields are here now to avoid being delayed by release cycles at each step of the implementation. 2) Refactoring the implementation of the "feature algebra" that computes the enabled features for a given toolchain. An interface called "CrosstoolActivatable" is used to represent any participant int the feature algebra, and can be either a feature or an action_config. -- MOS_MIGRATED_REVID=118943663
* Reduce memory use of feature values by introducing a ValueSequence class ↵Gravatar Manuel Klimek2016-03-24
| | | | | | | that keeps the Strings and creates the corresponding Value objects only at expansion time. -- MOS_MIGRATED_REVID=117947058
* Introduces apple_cc_toolchain.Gravatar Cal Peyser2016-03-17
| | | | | -- MOS_MIGRATED_REVID=117361388
* Extend crosstool configuration to allow features to specify (expandable) ↵Gravatar Chris Parsons2016-01-07
| | | | | | | environment variables to pass to actions -- MOS_MIGRATED_REVID=111608329
* 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
* Feature configuration: add a field required_variables on flag_sets.Gravatar Manuel Klimek2015-08-06
| | | | | | | | | | | | | This allows to prevent expansion of flag sets based on whether build variables are available. If required_variables is not set, and a variable that is referenced in the flag_set's flags is not available, the build will fail. We need the new behavior when some input files (for example profile data in FDO enabled builds) are only available for a subset of the translation units of a given target. -- MOS_MIGRATED_REVID=100028996
* Allow the feature configuration to support structured build variables of nestedGravatar Manuel Klimek2015-08-06
| | | | | | | list type. -- MOS_MIGRATED_REVID=100024899
* Switch to a CROSSTOOL feature for include flags.Gravatar Brian Silverman2015-05-18
| | | | | | | | | | | | | | | | | | This allows supporting compilers which don't understand -iquote. It looks like support for -iquote was released in GCC 4.0 (https://gcc.gnu.org/gcc-4.0/changes.html). GCC 3.3.2 definitely does not have support. Here's what the error looks like when you try to use an older GCC without this change: cc1plus: error: unrecognized option `-iquote.' cc1plus: error: unrecognized option ` -iquotebazel-out/powerpc-603e-fastbuild/genfiles' -- Change-Id: Ibf3b74d058a741e23da51963b39ad7505c507d57 Reviewed-on: https://bazel-review.googlesource.com/#/c/1263/ MOS_MIGRATED_REVID=93888319
* Some cleanup changes.Gravatar Ulf Adams2015-03-05
| | | | | -- MOS_MIGRATED_REVID=87821306
* Allow empty lists for variables of sequence type in the crosstoolGravatar Manuel Klimek2015-02-06
| | | | | | | configuration. -- MOS_MIGRATED_REVID=85710366
* Update from Google.Gravatar Han-Wen Nienhuys2015-02-25
-- MOE_MIGRATED_REVID=85702957