aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules
Commit message (Collapse)AuthorAge
* Avoid long, duplicated directory structures. In the common case, generatedGravatar Googler2018-06-13
| | | | | | | | files are going to be beneath the target that generates them. In this case, don't duplicated the package's path. RELNOTES: None. PiperOrigin-RevId: 200400464
* Remove supports_lipo field from DefaultCpuToolchainGravatar rosica2018-06-13
| | | | | RELNOTES: None. PiperOrigin-RevId: 200399094
* Add "toolchain-identifier" attribute to cc_toolchain ruleGravatar rosica2018-06-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently the selection of C++ toolchain configuration depends on 2 different things: 1. CROSSTOOL file: a proto text file that contains multiple CrosstoolConfig.CToolchain messages, out of which we want to select the appropriate CToolchain; 2. cc_toolchain_suite rule, specified by --crosstool_top option: this rule contains "toolchains" map attribute. The map's keys are of type <cpu>|<compiler>, or just <cpu>, and the values are labels of cc_toolchain rules (which contain additional C++ information). If there is an entry in cc_toolchain_suite.toolchains that corresponds to the --cpu and --compiler options, we use it, otherwise we loop through all the CToolchains in the CROSSTOOL file, select the one that corresponds to the --cpu and --compiler options, and then get the cc_toolchain label from cc_toolchain_suite.toolchains[toolchain.targetCpu|toolchain.compiler]. In both cases we read the CROSSTOOL file and pass all its information forward, to be used in creation of CppConfiguration and CcToolchainProvider creation. As part of the efforts of rewriting CROSSTOOL in Skylark, we need to make obtaining the cc_toolchain label independent of the CROSSTOOL file and toolchain selection. As a step towards that goal, we add a new "toolchain_identifier" attribute to cc_toolchain, which uniquely identifies a CToolchain in the CROSSTOOL file. Now the process of getting the CToolchain goes as follows: Check for existence of cc_toolchain_suite.toolchains[<cpu>|<compiler>], if --compiler is specified, otherwise check for cc_toolchain_suite.toolchains[<cpu>]. 1. if a value is found, load the cc_toolchain rule and look for the toolchain_identifier attribute. 1.a if the attribute exists, loop through all the CToolchains in CROSSTOOL and select the one with the matching toolchain identifier. 1.b otherwise fall back to selecting the CToolchain from CROSSTOOL by matching the --cpu and --compiler values. 2. If a value is not found, select the CToolchain from CROSSTOOL by matching the --cpu and --compiler values, and construct the key as follows: <toolchain.cpu>|<toolchain.compiler>. In the future we will get rid of 2. by making sure that cc_toolchain_suite.toolchains[<cpu>|<compiler>] and cc_toolchain_suite.toolchains[<cpu>] are always defined. 1.b will be removed by making the cc_toolchain.toolchain_identifier attribute mandatory After this deriving the cc_toolchain label will be independent of the CROSSTOOL file 1.a will ultimately be replaced by an attribute that points to a skylark_crosstool rule, that will contain all the information that CROSSTOOL contains, allowing us to remove CROSSTOOL altogether. Work towards issue #5380 RELNOTES: None. PiperOrigin-RevId: 200388550
* Return Strings from C++ Skylark APIs, not PathFragmentsGravatar hlopko2018-06-13
| | | | | | | | | | PathFragments are not well supported in Skylark, quite the opposite, the Skylark team tries hard to not use path fragments if possible. All existing users I looked into had to convert the PathFragment to string using str() anyway. Because of that this cl should not break anybody. RELNOTES: None. PiperOrigin-RevId: 200372447
* C++: Continues renaming executionDynamicLibraries to dynamicLibrariesForRuntime.Gravatar plf2018-06-13
| | | | | RELNOTES:none PiperOrigin-RevId: 200366616
* Change generated DEF file name from <target name>.def to <target name>.gen.defGravatar pcloudy2018-06-13
| | | | | | | | | This helps avoid name conflicts when users want to generate DEF files by themselves. For example, when using a genrule to do that, people naturally name the def file as <target name>.def. Fixed https://github.com/bazelbuild/bazel/issues/5357 RELNOTES: None PiperOrigin-RevId: 200354303
* Change the default value of ↵Gravatar dannark2018-06-12
| | | | | | | | --experimental_android_local_test_binary_resources to true. RELNOTES[NEW]: android_local_test now takes advantage of Robolectric's binary resource processing which allows for faster tests. PiperOrigin-RevId: 200296572
* Automated rollback of commit a1c9f8d33457cd1f3b01299863bcab2667c13a52.Gravatar Googler2018-06-12
| | | | | | | | | | | | | | | | | | | | | | | | | *** Reason for rollback *** PY3 does not support Python proto1. *** Original change description *** Automated rollback of commit 4c72a82ada742bd369185cd07c57f96c497ce440. *** Reason for rollback *** Breaks, at least, //ads/aswan/tools:format_mr_results. *** Original change description *** Remove python3/ prefix to generated .pyc files. That makes: (a) merging PY2 and PY3 .runfiles impossible (which is incorrect anyway) and (b) generated .py source files incompatible with 2to3 (src_version=PY2) - that's OK as we deprecate 2to3. RELNOTES: n/a PiperOrigin-RevId: 200256210
* Add skylarkbuildapi bootstraps for apple, cpp, platform, and testing packagesGravatar cparsons2018-06-12
| | | | | RELNOTES: None. PiperOrigin-RevId: 200246780
* Split TargetPatternEvaluator into two interfacesGravatar ulfjack2018-06-12
| | | | | | | | | | | | | | | | | - the TargetPatternPreloader is still used for query in all its forms - the remaining TargetPatternEvaluator part is no longer used except in tests - also make both implementations stateless and pass the offset to the methods instead; note that they both modify the underlying skyframe graph, so there are side effects to the calls even if there's no direct state anymore The intent is to migrate the relevant tests to LoadingPhaseRunnerTest (which could also now be renamed since it's not doing a loading phase), and then delete the TargetPatternEvaluator interface. This depends on the previous commit that removed the last direct use of TPE from an internal command. PiperOrigin-RevId: 200198067
* Migrate remaining assorted skylark types to skylarkbuildapiGravatar cparsons2018-06-11
| | | | | RELNOTES: None. PiperOrigin-RevId: 200100871
* Migrate android providers to use BuiltinProvider instead of NativeProviderGravatar cparsons2018-06-11
| | | | | RELNOTES: None. PiperOrigin-RevId: 200096226
* Add AutoProfiler-like API to ProfilerGravatar ulfjack2018-06-11
| | | | | | - migrate all startTask/completeTask pairs to the new API PiperOrigin-RevId: 200038703
* C++: Refactors PyWrapCc to make it easier to migrate to SkylarkGravatar plf2018-06-11
| | | | | | | | | Rolling forward https://github.com/bazelbuild/bazel/commit/6c87715b8ac6b32e636ba307440e2b7362b10a48. When I first tried to roll forward this CL I missed one place where PyCcLinkParamsProvider.TO_LINK_PARAMS should have been called. The target //production/midas/config:client_config_pb builds fine now. RELNOTES:none PiperOrigin-RevId: 200032805
* Automated rollback of commit 5df8eb24f84a6943e70876c805c77f06e719dcd7.Gravatar Googler2018-06-08
| | | | PiperOrigin-RevId: 199864175
* Automated rollback of commit 6c87715b8ac6b32e636ba307440e2b7362b10a48.Gravatar cpeyser2018-06-08
| | | | | RELNOTES:none PiperOrigin-RevId: 199840978
* Flip default value of --experimental_shortened_obj_file_path to true (Second ↵Gravatar pcloudy2018-06-08
| | | | | | | | | | try) This is a roll forward of https://github.com/bazelbuild/bazel/commit/3ab52e63079f1e43cb2c973425f615836a334082. The issue caused the objc rule breakage was fixed by https://github.com/bazelbuild/bazel/commit/5176300577b53a15128b3cb6a17d7883c5b7090e. RELNOTES: Flip default value of --experimental_shortened_obj_file_path to true, Bazel now generates short object file path by default. PiperOrigin-RevId: 199806300
* Prepare to remove java_toolchain.encodingGravatar cushon2018-06-08
| | | | | | | | UTF-8 is the only supported encoding for Java sources. See #2926. PiperOrigin-RevId: 199803902
* Expose cc_common.create_link_build_variablesGravatar hlopko2018-06-08
| | | | | | | | | | | This cl enabled skylark rules to create build variables used for C++ link actions (in a limited form, e.g. build variables for thinlto are not exposed etc). Working towards #4571. RELNOTES: None PiperOrigin-RevId: 199792130
* Remove include_java_contracts_deps option.Gravatar dbabkin2018-06-08
| | | | | RELNOTES:none PiperOrigin-RevId: 199787025
* C++: Refactors PyWrapCc to make it easier to migrate to SkylarkGravatar plf2018-06-08
| | | | | | | | Rolling forward https://github.com/bazelbuild/bazel/commit/6afc2eb67675e928bc8fa10c5d1745223186b6e0. This CL was only rolled back to make it easier to rollback https://github.com/bazelbuild/bazel/commit/d0982b905d93e219a0caccdcf5d6ae1e219387c2. RELNOTES:none PiperOrigin-RevId: 199779304
* Automated rollback of commit ccaccb2b277a82f7264567563a02ab133a0f6e6f.Gravatar jmmv2018-06-07
| | | | | | | | | | | | | | | *** Reason for rollback *** Suspected root cause behind tons of Blaze nightly failures. One example: [] *** Original change description *** Let blaze obfuscate manual main_dex_list according to proguard map. PiperOrigin-RevId: 199737371
* Deletes ActionInputFileCache.Gravatar shahan2018-06-07
| | | | PiperOrigin-RevId: 199732415
* Automated rollback of commit d0982b905d93e219a0caccdcf5d6ae1e219387c2.Gravatar janakr2018-06-07
| | | | | | | | | | | | | | | *** Reason for rollback *** See linked bug. *** Original change description *** C++: Delete PyCcLinkParamsProvider. No longer needed. RELNOTES:none PiperOrigin-RevId: 199710626
* Automated rollback of commit f137cea0ac74334013e7b064e59d1624cf032ac4.Gravatar janakr2018-06-07
| | | | | | | | | | | | | *** Reason for rollback *** See linked bug. *** Original change description *** C++: Refactors PyWrapCc to make it easier to migrate to Skylark RELNOTES:none PiperOrigin-RevId: 199702630
* Automated rollback of commit 4c72a82ada742bd369185cd07c57f96c497ce440.Gravatar jmmv2018-06-07
| | | | | | | | | | | | | | | | | *** Reason for rollback *** Breaks, at least, //ads/aswan/tools:format_mr_results. *** Original change description *** Remove python3/ prefix to generated .pyc files. That makes: (a) merging PY2 and PY3 .runfiles impossible (which is incorrect anyway) and (b) generated .py source files incompatible with 2to3 (src_version=PY2) - that's OK as we deprecate 2to3. RELNOTES: n/a PiperOrigin-RevId: 199661399
* Fix bug in skyframe-based test-suite expansionGravatar ulfjack2018-06-07
| | | | | | | | | | It was tracking filtered tests and then applying the filter at the next higher level. I also added a bunch of comments - we actually have four implementations of test suite expansion, and they are not consistent. Sorry about that. PiperOrigin-RevId: 199629485
* C++: Introduces flag to disable automatic expansion of labels in linkopts.Gravatar plf2018-06-07
| | | | | | | LSC is finished. RELNOTES:none PiperOrigin-RevId: 199619978
* C++: Refactors PyWrapCc to make it easier to migrate to SkylarkGravatar plf2018-06-07
| | | | | RELNOTES:none PiperOrigin-RevId: 199619637
* Expose C++ action names to SkylarkGravatar hlopko2018-06-07
| | | | | | | | | | | | | | This cl adds Skylark constants allowing users to specify which C++ action they want for the feature configuration Skylark API. This is done by exposing a Skylark file at @bazel_tools//tools/cpp:action_names.bzl. Skylark api to the C++ toolchain doc: https://docs.google.com/document/d/1g91BWJITcYw_X-VxsDC0VgUn5E9g0kRBGoBSpoO41gA/edit#. Progress on #4571. RELNOTES: None. PiperOrigin-RevId: 199596778
* C++: Delete PyCcLinkParamsProvider.Gravatar plf2018-06-07
| | | | | | | No longer needed. RELNOTES:none PiperOrigin-RevId: 199593828
* Refactoring: makes the code simpler by deleting Metadata and InputArtifactData.Gravatar shahan2018-06-06
| | | | | | (minor) ActionFS now implements MetadataProvider.getInput PiperOrigin-RevId: 199575194
* Let blaze obfuscate manual main_dex_list according to proguard map.Gravatar Googler2018-06-06
| | | | PiperOrigin-RevId: 199529974
* Build support for enabling cross binary FDO optimization.Gravatar Googler2018-06-06
| | | | | | | Crossbinary FDO optimization is a special form of AutoFDO which uses a synthetic profile to optimize targets without any profile. The synthetic profile will often be used as a default profile and will use .xfdo as suffix. It will be passed though option -fdo_optimize just like Autofdo profile. If .xfdo file is passed through -fdo_optimize in the same command line with other types of profiles, .xfdo file will be neglected. RELNOTES: Build support for enabling cross binary FDO optimization. PiperOrigin-RevId: 199501260
* Remove python3/ prefix to generated .pyc files.Gravatar Googler2018-06-06
| | | | | | | | | That makes: (a) merging PY2 and PY3 .runfiles impossible (which is incorrect anyway) and (b) generated .py source files incompatible with 2to3 (src_version=PY2) - that's OK as we deprecate 2to3. RELNOTES: n/a PiperOrigin-RevId: 199491867
* Remove CachingPackageLocator interface from the PackageProvider hierarchyGravatar ulfjack2018-06-06
| | | | | | This simplifies the code quite a bit. PiperOrigin-RevId: 199427943
* Remove STRICT_ERROR from ImportDepsCheckingLevel, as it is replaced with ERROR.Gravatar cnsun2018-06-05
| | | | | RELNOTES: None. PiperOrigin-RevId: 199382344
* Simplify CppCompileAction#discoverInputs().Gravatar lberki2018-06-05
| | | | | | | | | | | | | | In the process, make it so that running an extra action attached to a CppCompileAction does not change the state of the CppCompileAction (yes, this happened: if include scanning was not done, topLevelModules would be changed) There are two changes in behavior this will: introduce 1. topLevelModules will no longer be set if include scanning is not in effect, but that's okay: it's never read except when shouldPruneModules is true, and if that is true, #discoverInputsStage2() will set it. 2. Extra actions attached to CppCompileAction will not get .pcm files on their inputs that were not used by the compiler RELNOTES: None. PiperOrigin-RevId: 199285276
* Remove the $(ANDROID_CPU) Make variable.Gravatar lberki2018-06-04
| | | | | | RELNOTES[INC]: The $(ANDROID_CPU) Make variable is not available anymore. Use $(TARGET_CPU) after an Android configuration transition instead. PiperOrigin-RevId: 199241622
* Automated rollback of commit a8a8e7a0e979a8e4cf14c32471ad349a1b7d47cc.Gravatar eaftan2018-06-04
| | | | | | | | | | | | *** Reason for rollback *** Discovered bug b/109675979 with feature, and flag flip may need to be reverted *** Original change description *** Remove support for --experimental_one_version_enforcement_use_transitive_jars_for_binary_under_test PiperOrigin-RevId: 199223781
* Remove --glibc optionGravatar rosica2018-06-04
| | | | | | | Crosstool selection will be based solely on --cpu and --compiler options. RELNOTES: Option --glibc is removed, toolchain selection relies solely on --cpu and --compiler options. PiperOrigin-RevId: 199156131
* C++: Makes JavaWrapCc use CcLinkingHelperGravatar plf2018-06-04
| | | | | | | It doesn't use CcLinkParamsStore and CppLinkAction directly anymore. RELNOTES:none PiperOrigin-RevId: 199107747
* Automated rollback of commit c4e128e2c6d8cacaeba034d6a3195796d50f1745.Gravatar tomlu2018-06-02
| | | | | | | Always generating source jars can lead to action conflicts. RELNOTES: None PiperOrigin-RevId: 198994272
* Allow multiple trimming transition factories to be added.Gravatar mstaib2018-06-01
| | | | | | | | If multiple trimming transition factories are added, they are composed in the order they were added. RELNOTES: None. PiperOrigin-RevId: 198934666
* Migrate remaining java skylark types to skylarkbuildapiGravatar cparsons2018-06-01
| | | | | RELNOTES: None. PiperOrigin-RevId: 198911668
* Create a Bootstrap for config-related libraries of skylarkbuildapi.Gravatar cparsons2018-06-01
| | | | | RELNOTES: None. PiperOrigin-RevId: 198906931
* Migrate remaining apple-related skylark types to skylarkbuildapiGravatar cparsons2018-06-01
| | | | | RELNOTES: None. PiperOrigin-RevId: 198880301
* Move TARGET_CPU from the CcToolchainProvider to BuildConfiguration.Gravatar jcater2018-06-01
| | | | PiperOrigin-RevId: 198877280
* [java_common.compile] Always generate a source jar.Gravatar elenairina2018-06-01
| | | | | | | | | | | java_common.compile doesn't generate the output source jar when a source jar is the only input for the compilation. This is wrong because the source jar can include APT generated sources. It is also inconsistent with java_library and leads to inconsistent Skylark rules where a declared output will not always have a generating action. RELNOTES: None. PiperOrigin-RevId: 198872718
* C++: Remove CcSpecificLinkParamsProvider.Gravatar plf2018-06-01
| | | | | | No longer needed since proto_library cannot be used for Java. PiperOrigin-RevId: 198859993