aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules
Commit message (Collapse)AuthorAge
* Simplify copts handling and expose them as a build variableGravatar hlopko2017-08-02
| | | | | | | | | | | This cl changes copts to be immutable (and changes addCopts methods into setCopts, so it's simpler to reason about copts) and exposes copts as a build variable. It also introduces CompileBuildVariablesTest, similar to LinkBuildVariablesTest, to test that right build variables are exposed for right actions. RELNOTES: None. PiperOrigin-RevId: 163876774
* Automated rollback of commit c32e1b1efcd703b3780de47fba62974123593d71.Gravatar dslomov2017-08-02
| | | | | | | | | | | | | | | *** Reason for rollback *** Breaks depot b/64250728 *** Original change description *** Use RequiredProviders to validate rule prerequisites in RuleContext. We now use a unified way to check provider requirements everywhere. RELNOTES: None. PiperOrigin-RevId: 163862067
* PiperOrigin-RevId: 163848560Gravatar carmi2017-08-02
|
* Provide CcLinkParamsStore from java_xxx_proto_library rules.Gravatar carmi2017-08-02
| | | | | RELNOTES: None PiperOrigin-RevId: 163838735
* Enable ThinLTO for nativedeps linksGravatar Googler2017-08-01
| | | | | | | | | | | Add support for setting up the LTO indexing step when the inputs contain bitcode. Added a python BuildViewTestCase that provokes this, as well as a ThinLTO GoogleBuildIntegrationTestCase to the existing NativeDeps testing. PiperOrigin-RevId: 163827441
* Only request per_object_debug_info when fission is enabled.Gravatar klimek2017-08-01
| | | | | | | | | | | | This allows CROSSTOOL authors to add flags to all targets for which fission is enabled, even when a compile action does not output split debug info. For example, when building with ThinLTO, compiles are split into a frontend compile, that does not generate split debug info, but still needs to include debug info if fission is enabled (even in opt mode). RELNOTES: None. PiperOrigin-RevId: 163825563
* Implement user experience for LIPO / ThinLTO users.Gravatar klimek2017-08-01
| | | | | | | | | | | | | | | | | | | | | Add flag --convert_lipo_to_thinlto, which allows builds with LLVM to use ThinLTO when the user specifies LIPO + FDO flags; if that flag is not set, and the user requests a build with LLVM, the compile will now fail. Add an attribute supports_lipo to the DefaultCpuToolchain crosstool proto and skip default toolchains that do not support LIPO when the user has specified LIPO flags in the toolchain selection; this enables CROSSTOOL files to cause an implicit fallback to a hybrid / LIPO toolchain when using an LLVM toolchain as the default. Add a CrosstoolBuilder to MockCcSupport and add a new method setupCrosstoolFromScratch that allows unit tests to fully control the setup. The other methods available in MockCcSupport will always load in a default CROSSTOOL file and may show different unit test results depending on the content of that file. RELNOTES: None. PiperOrigin-RevId: 163819246
* Automated rollback of commit 31dc6f1a281b0ae3690ea7be9c3ccc360fe22c10.Gravatar cpeyser2017-08-01
| | | | | | | | | | | | | *** Reason for rollback *** Breaks some iOS Photos targets: [] *** Original change description *** Framework dependency subtraction uses runfiles path instead of full artifact path RELNOTES: None. PiperOrigin-RevId: 163732608
* Better names for declared providers-related classes.Gravatar dslomov2017-08-01
| | | | | | | | Follows https://docs.google.com/document/d/1aAIVWvHPERDz2cv_PCFGwr8dvh5FcAkENFoRsNS4clk/. RELNOTES: None. PiperOrigin-RevId: 163728291
* Use RequiredProviders to validate rule prerequisites in RuleContext.Gravatar dslomov2017-07-31
| | | | | | | We now use a unified way to check provider requirements everywhere. RELNOTES: None. PiperOrigin-RevId: 163710961
* Include annotation processor names in JavaCompileAction progress messagesGravatar cushon2017-07-31
| | | | PiperOrigin-RevId: 163701792
* Rename 'executable' argument of 'ctx.actions.expand_template' to ↵Gravatar laurentlb2017-07-31
| | | | | | | | | 'is_executable'. This is for consistency with 'ctx.actions.write'. RELNOTES: None. PiperOrigin-RevId: 163687973
* Expose to Skylark Strings instead of PathFragments from CppConfiguration.Gravatar dslomov2017-07-31
| | | | | | | | | | The only way to use those was in the `ctx.action(...executable...)` parameter, made that accept string. Fixes #2931. RELNOTES: None. PiperOrigin-RevId: 163511248
* Framework dependency subtraction uses runfiles path instead of full artifact ↵Gravatar cparsons2017-07-31
| | | | | | | path RELNOTES: None. PiperOrigin-RevId: 163484010
* Use dynamically configured resource filteringGravatar Googler2017-07-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Actually hook up the resource filtering configuration transitions to AndroidConfiguration's topLevelConfigurationHook. Dynamic configuration is inefficient when multiple configurations are used. Multiple configurations result in splitting the build graph and duplicating work. To avoid using multiple configurations as much as possible, dynamically configured resource filtering will only be applied for top-level android_binary targets. When android_binary targets are included as dependencies, it's very likely that multiple binaries with many shared dependencies but different configurations would be used. Only applying dynamic filtering to top-level binaries removes this concern. It is still possible to build multiple top-level binary targets with different configurations at once. Previous versions of this code considered not using dynamic configuration in that case as well, but that raised some unanswered questions about whether Bazel's invariants should allow modifying one target's configuration based solely on targets that happen to be building in parallel. As a result, that optimization is not included for now; we assume that developers manually building multiple similar binaries at once is relatively rare (plus, dynamically configured resource filtering in general is not turned on by default and will not be turned on by default until we're confident the benefits outweigh the costs). RELNOTES: none PiperOrigin-RevId: 163464415
* Correctly include proto runtimes from transitive proto_library's, and their ↵Gravatar carmi2017-07-28
| | | | | | | | | | | transitive dependencies, in the list of transitive jars that a java_xxx_proto_library rule exposes. This fixes b/63723368, in a way that no action is required. The new behavior is guarded by a flag. RELNOTES: None PiperOrigin-RevId: 163421788
* Assert that declared providers are not TransitiveInfoProviders.Gravatar dslomov2017-07-28
| | | | | | | Also fix the remaining violations. RELNOTES: None. PiperOrigin-RevId: 163391215
* Make all WithLegacySkylarkName providers declared providers.Gravatar dslomov2017-07-28
| | | | | RELNOTES: None. PiperOrigin-RevId: 163343931
* Remove unused module-related optionsGravatar hlopko2017-07-28
| | | | | RELNOTES: None. PiperOrigin-RevId: 163338873
* Remove unused send_transitive_header_module_srcs optionGravatar hlopko2017-07-27
| | | | | RELNOTES: None. PiperOrigin-RevId: 163331254
* Add .ipp extension as a C++ header typeGravatar hlopko2017-07-27
| | | | | | | | | | | | From one of the boost gurus: If you want to split up your template sources into interface and implementation (there are lots of good reasons to do that, including controlling instantiation), you can't very well use the same name (foo.hpp) twice, and foo.cpp wouldn't be appropriate for either one. foo.ipp clearly delineates the file as an implementation file intended to be #included in foo.hpp. RELNOTES: None. PiperOrigin-RevId: 163329612
* Fix a crash when Skylark rule re-exports SkylarkApiProvider.Gravatar dslomov2017-07-27
| | | | | | | | Also PintoSourcesContextProvider should not be a SkylarkApiProvider: it is not facade for anything but a provider in its own right. RELNOTES: None. PiperOrigin-RevId: 163323130
* Define an outgoing rule transition interface.Gravatar gregce2017-07-27
| | | | | | | | | | This lets a parent choose a transition for its dep based on the dep's rule class. Implement (experimental) dynamic Android resource filtering trimming with this. PiperOrigin-RevId: 163259052
* Resource filtering should preserve all matching artifacts, despite shared namesGravatar Googler2017-07-27
| | | | | | | | | | | | | | | | | | Before this change, density-based resource filtering tracked resources by qualifiers and name. Resources with density qualifiers specified would go into this code, but only one resource would be chosen from each each (qualifier, name) pair. Instead, track the resource using its entire path, this tracking resources with the same name seperately. Also, in case multiple resource are passed to the resource processing action, resource filtering only ignores a file if its name was in the list of resources to ignore *and* it does not exist. Otherwise, legitimate resources with the same name as a filtered resource might be ignored. RELNOTES: none PiperOrigin-RevId: 163235681
* Automated rollback of commit 9e3018109b189a345cd9b353729c7f31ac209bc9.Gravatar allevato2017-07-27
| | | | | | | | *** Reason for rollback *** Broke bundling of objc_frameworks. PiperOrigin-RevId: 163215950
* Pass "profile_path" flag to protoc if necessary.Gravatar Googler2017-07-26
| | | | | | | | This change adds a way to set proto profile artifact to ProtoCompileActionBuilder so that it passes profile_path flag to protocol_compiler. RELNOTES: None. PiperOrigin-RevId: 163155532
* Remove --experimental_dynamic_configs=notrim_partial.Gravatar gregce2017-07-26
| | | | | | Part of the static configuration removal cleanup. PiperOrigin-RevId: 163130922
* Add the android.jar to the validate and link step for aapt2.Gravatar corysmith2017-07-26
| | | | | RELNOTES: None. PiperOrigin-RevId: 163126457
* Rollforward of "AppleBinary and AppleStaticLibrary no longer propagate ↵Gravatar cparsons2017-07-26
| | | | | | | unwrapped ObjcProvider." after skylark rule fixes. RELNOTES: None. PiperOrigin-RevId: 163121697
* macOS link actions set the correct system framework include pathsGravatar cparsons2017-07-26
| | | | | RELNOTES: None. PiperOrigin-RevId: 163114020
* Automated rollback of commit 4dfb271df9dcdf01413a216ad046d955669160b7.Gravatar schmitt2017-07-26
| | | | | | | | | | | | | | | *** Reason for rollback *** Breaks targets in the depot. http://b/64022432 *** Original change description *** Expose to Skylark Strings instead of PathFragments from CppConfiguration. Fixes #2931. RELNOTES: None. PiperOrigin-RevId: 163100552
* Inherit allowable resource directories from android_ide_commonGravatar Googler2017-07-26
| | | | | | | | | Currently, allowable resource directories are defined in two places: LocalResourceContainer, and android_ide_common (used, for example, by ResourceFilter). Instead, keep them defined only in android_ide_common, a more authoritative source that we already rely on anyway. RELNOTES: none PiperOrigin-RevId: 163100497
* Add "apple_" prefix to Skylark platform(_type) modules.Gravatar allevato2017-07-26
| | | | | | | | Documentation was not being generated for the Apple "platform" module because it collided with a configuration fragment of the same name. This should be a harmless change because the underlying module name should not be used by anyone; the name isn't exported as a top-level type and would only be seen in debug output and in the string returned by the type() function. PiperOrigin-RevId: 163079704
* Make --experimental_use_parallel_android_resource_processing a no-op.Gravatar ajmichael2017-07-26
| | | | | | | Also, a few small cleanups of some duplicate test methods. RELNOTES: None PiperOrigin-RevId: 163066349
* Close the ZipFileSystem and the underlying ZipFile appropriately after we ↵Gravatar lberki2017-07-26
| | | | | | | | | | | finished extracting the FDO profile. Also fix a truly embarrassing infinite recursion bug introduced by Yours Truly in unknown commit . This avoids a failure mode where, when two profiles at the same path are used in two builds close one after the other, the file handle would get erroneously re-used. RELNOTES: None. PiperOrigin-RevId: 163063976
* Automated rollback of commit 6d884afa8da1b08288cb0108e8bbf6c22ec63393.Gravatar dslomov2017-07-25
| | | | | | | | | | | | | *** Reason for rollback *** Broke bazel_apple_rules *** Original change description *** Make all WithLegacySkylarkName providers declared providers. RELNOTES: None PiperOrigin-RevId: 163054821
* Make all WithLegacySkylarkName providers declared providers.Gravatar dslomov2017-07-25
| | | | | RELNOTES: None PiperOrigin-RevId: 163042362
* Route Xcode version information through an implicit dependency instead of ↵Gravatar lberki2017-07-25
| | | | | | | | | | | | | | the configuration. This is part of the crusade to kill package loading in configuration creation. AppleConfiguration still retains the version information for the following reasons: - Some Skylark rules access it that way. The plan is to create an xcode_config_alias() rule that can be an implicit dependency of Skylark rules and to export the version information to Skylark from XcodeVersionsProvider. - The minimum OS version is part of the name of the output directory. The plan for that is simply to remove it. Hopefully we can get away with it. - They allow us to add assertions to make sure the new mechanism works like the old one. RELNOTES: None. PiperOrigin-RevId: 163038724
* Add a command line option to make the minimum_os_version attribute mandatory ↵Gravatar lberki2017-07-25
| | | | | | | on Apple rules. RELNOTES: None. PiperOrigin-RevId: 163035922
* Automated rollback of commit 7d0200703cfa207d6577d84bee45ca185d240dfa.Gravatar carmi2017-07-25
| | | | | | | | | | | | SKIP_KOKORO: Kokoro is out of quota. *** Reason for rollback *** Causes memory regression, somehow: b/63934093 *** Original change description *** PiperOrigin-RevId: 163023580
* Make $jarjar_bin point to //tools/android:jarjar_bin.Gravatar ajmichael2017-07-24
| | | | | | | Fixes TODO in AndroidRuleClasses.java. RELNOTES: None PiperOrigin-RevId: 162955052
* Distinguish mnemonics between different usages of aapt.Gravatar ajmichael2017-07-24
| | | | | RELNOTES: None PiperOrigin-RevId: 162945309
* Let nocopts also filter coptsGravatar hlopko2017-07-24
| | | | | RELNOTES: nocopts now also filter copts PiperOrigin-RevId: 162944771
* Do not disable dynamic_mode for ThinLTO when invoked via LIPO options.Gravatar Googler2017-07-24
| | | | | | | | | | When using LLVM LIPO is automatically mapped to ThinLTO. While for LIPO, fully dynamic linking needs to be off for correctness issues, there is no such restriction for ThinLTO. RELNOTES[NEW]: Do not disable fully dynamic linking with ThinLTO when invoked via LIPO options. PiperOrigin-RevId: 162918429
* Handle multiple crosstool features providing the same symbol cleanlyGravatar hlopko2017-07-24
| | | | | | | It's bad to crash with an exception, let's show proper rule error instead. RELNOTES: None. PiperOrigin-RevId: 162916138
* Expose to Skylark Strings instead of PathFragments from CppConfiguration.Gravatar dslomov2017-07-24
| | | | | | | Fixes #2931. RELNOTES: None. PiperOrigin-RevId: 162907348
* Use ActionInputFileCache instead of MetadataHandler in more placesGravatar ulfjack2017-07-24
| | | | PiperOrigin-RevId: 162906919
* PiperOrigin-RevId: 162771369Gravatar carmi2017-07-24
|
* Add links to examples in the documentation.Gravatar laurentlb2017-07-24
| | | | | RELNOTES: None. PiperOrigin-RevId: 162738376
* Remove an unused method.Gravatar lberki2017-07-24
| | | | | RELNOTES: None. PiperOrigin-RevId: 162725697