| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** 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
|
| |
|
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 163838735
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** 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
|
|
|
|
|
|
|
|
| |
Follows
https://docs.google.com/document/d/1aAIVWvHPERDz2cv_PCFGwr8dvh5FcAkENFoRsNS4clk/.
RELNOTES: None.
PiperOrigin-RevId: 163728291
|
|
|
|
|
|
|
| |
We now use a unified way to check provider requirements everywhere.
RELNOTES: None.
PiperOrigin-RevId: 163710961
|
|
|
|
| |
PiperOrigin-RevId: 163701792
|
|
|
|
|
|
|
|
|
| |
'is_executable'.
This is for consistency with 'ctx.actions.write'.
RELNOTES: None.
PiperOrigin-RevId: 163687973
|
|
|
|
|
|
|
|
|
|
| |
The only way to use those was in the `ctx.action(...executable...)`
parameter, made that accept string.
Fixes #2931.
RELNOTES: None.
PiperOrigin-RevId: 163511248
|
|
|
|
|
|
|
| |
path
RELNOTES: None.
PiperOrigin-RevId: 163484010
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
Also fix the remaining violations.
RELNOTES: None.
PiperOrigin-RevId: 163391215
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 163343931
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 163338873
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 163331254
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Broke bundling of objc_frameworks.
PiperOrigin-RevId: 163215950
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Part of the static configuration removal cleanup.
PiperOrigin-RevId: 163130922
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 163126457
|
|
|
|
|
|
|
| |
unwrapped ObjcProvider." after skylark rule fixes.
RELNOTES: None.
PiperOrigin-RevId: 163121697
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 163114020
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** 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
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
Also, a few small cleanups of some duplicate test methods.
RELNOTES: None
PiperOrigin-RevId: 163066349
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Broke bazel_apple_rules
*** Original change description ***
Make all WithLegacySkylarkName providers declared providers.
RELNOTES: None
PiperOrigin-RevId: 163054821
|
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 163042362
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
on Apple rules.
RELNOTES: None.
PiperOrigin-RevId: 163035922
|
|
|
|
|
|
|
|
|
|
|
|
| |
SKIP_KOKORO: Kokoro is out of quota.
*** Reason for rollback ***
Causes memory regression, somehow: b/63934093
*** Original change description ***
PiperOrigin-RevId: 163023580
|
|
|
|
|
|
|
| |
Fixes TODO in AndroidRuleClasses.java.
RELNOTES: None
PiperOrigin-RevId: 162955052
|
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 162945309
|
|
|
|
|
| |
RELNOTES: nocopts now also filter copts
PiperOrigin-RevId: 162944771
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
It's bad to crash with an exception, let's show proper rule error instead.
RELNOTES: None.
PiperOrigin-RevId: 162916138
|
|
|
|
|
|
|
| |
Fixes #2931.
RELNOTES: None.
PiperOrigin-RevId: 162907348
|
|
|
|
| |
PiperOrigin-RevId: 162906919
|
| |
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 162738376
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 162725697
|