| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
| |
rule must propagate
This allows native aspects which specifically require advertised providers to be applied to skylark rules.
Implementation to allow aspects to explicitly declare provider requirements will come later.
RELNOTES: Skylark rule definitions may advertise providers that targets of the rule must propagate.
PiperOrigin-RevId: 194581466
|
|
|
|
|
|
|
|
|
|
|
| |
Rule authors frequently wants to make assertions on the parameter files their rule implementations have created. However, if they do not explicitly create parameter file write actions, or if indeed _there aren't_ any parameter file write actions inserted into the action graph, the tests will fail.
This CL puts an abstraction between the tests and obtaining their parameter files, allowing us to change the implementation without updating hundreds of lines of test code in the same CL.
Note that we can no longer sanely assert that the parameter file argument is inserted into the main command line, because the parameter file system controls both whether it is inserted and the name used. Those assertions have been removed where found.
RELNOTES: None
PiperOrigin-RevId: 194400303
|
|
|
|
|
|
|
| |
Moving CompilationSupport out of for loop. All generated object-c files will be compiled in one CompilationHelper, which avoids object file path conflicts.
RELNOTES: None
PiperOrigin-RevId: 194215804
|
|
|
|
|
|
|
|
|
|
| |
j2objc_library's --j2objc_translation_flags to future Skylark replacement rule.
DELTA=42 (39 added, 0 deleted, 3 changed)
DELTA_BY_EXTENSION=java=42
RELNOTES: None.
PiperOrigin-RevId: 192838435
|
|
|
|
|
|
|
|
|
|
| |
Ran into an issue where it wasn't possible to add protos to blacklist for j2objc toolchain and was getting duplicate symbols for the descriptor protos.
This change should make it consistent with the other proto rules which use a toolchain. Was able to remove bespoke and uncustomizable proto blacklist for j2objc.
Closes #4064.
PiperOrigin-RevId: 192787964
|
|
|
|
|
|
|
|
| |
the ones in SkyframeExecutor, called once for each Root in the package path list. This ensures there is a single canonical ArtifactRoot for each source root.
It is still the case that every Package loaded has its own Root (https://source.bazel.build/bazel/+/master:src/main/java/com/google/devtools/build/lib/packages/Package.java;l=287?q=Package.java), which is a waste of memory, but because of the map inside ArtifactFactory introduced in this change, all Artifacts with the same logical source root share a single ArtifactRoot instance.
PiperOrigin-RevId: 192513819
|
|
|
|
|
|
| |
Action execution.
PiperOrigin-RevId: 192488641
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Breaks exoblaze, and there's a better way how to move forward with this.
*** Original change description ***
Flip default value of --experimental_shortened_obj_file_path to true
RELNOTES:
Flip default value of --experimental_shortened_obj_file_path to true, Bazel now generates short object file path by default.
PiperOrigin-RevId: 192437958
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 192350172
|
|
|
|
|
|
| |
RELNOTES:
Flip default value of --experimental_shortened_obj_file_path to true, Bazel now generates short object file path by default.
PiperOrigin-RevId: 191958480
|
|
|
|
|
|
| |
J2Objc needs special consideration to implement strict Swift-ObjC deps. The module maps for the generated Objective-C code are associated with their originating java_library targets (via the J2Objc aspect), which a swift_library cannot directly depend on. So those deeper down module maps need to be propagated transitively *until* a j2objc_library is reached; at that point, the j2objc_library should propagate all of its Java deps module maps, but *not* any of its j2objc_library deps (because that would be non-strict).
PiperOrigin-RevId: 191754811
|
|
|
|
|
|
|
| |
I originally blacklisted BazelPackageLoader on some tests because they became flaky with it.
RELNOTES: None
PiperOrigin-RevId: 191504852
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a re-attempt at https://github.com/bazelbuild/bazel/pull/4058 which got reverted via https://github.com/bazelbuild/bazel/issues/4780
#4780 was being caused because cc plugin and j2objc plugin used different paths for outputs. I also manually verified that this works for both external cc_proto_librarys and external j2objc java_proto_libraries.
The output files are created without a repository, but the expected
filenames have them
This resolves issues when having a proto_library from an external build
file.
cc @c-parsons @pmbethe09
Closes #4793.
PiperOrigin-RevId: 190950452
|
|
|
|
|
|
|
|
|
| |
--incompatible_disable_objc_provider_resources is true.
This involves propagating SkylarkSemantics to all ObjcProvider constructors.
RELNOTES: Introduce --incompatible_disable_objc_provider_resources to turn off all resource-related fields of the Objc provider.
PiperOrigin-RevId: 190778491
|
|
|
|
| |
PiperOrigin-RevId: 190771926
|
|
|
|
|
|
|
|
|
|
| |
utility method getConfiguration(ConfiguredTarget). Done using IntelliJ structural replace, with
$val$.getConfiguration() -> getConfiguration($val$)
and Expression type: TransitiveInfoCollection, applying constraint within type hierarchy. Had to clean up a few compile errors.
PiperOrigin-RevId: 190692493
|
|
|
|
|
|
|
| |
struct field on the j2objc fragment.
RELNOTES: None.
PiperOrigin-RevId: 190672475
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Closes #4781.
Fix https://github.com/bazelbuild/bazel/issues/4149
RELNOTES:
Users can now pass --experimental_shortened_obj_file_path=true to have a shorter object file path, the object file paths (and all other related paths) will be constructed as following:
If there's no two or more source files with the same base name:
<bazel-bin>/<target_package_path>/_objs/<target_name>/<source_base_name>.<extension>
otherwise:
<bazel-bin>/<target_package_path>/_objs/<target_name>/N/<source_base_name>.<extension>
N = the file?s order among the source files with the same basename, starts from 0.
Examples:
1. Output names for ["lib1/foo.cc", "lib2/bar.cc"] are ["foo", "bar"]
2. Output names for ["foo.cc", "bar.cc", "foo.cpp", "lib/foo.cc"] are
["0/foo", "bar", "1/foo", "2/foo"]
The default value of --experimental_shortened_obj_file_path option is false, but we plan to flip it to true and eventually remove this option.
You shouldn't depend on the format of generated object file path, but if you do and this change breaks you, please use --experimental_shortened_obj_file_path=false to work around it.
PiperOrigin-RevId: 190214375
|
|
|
|
| |
PiperOrigin-RevId: 189971511
|
|
|
|
|
|
|
| |
matching build flag --j2objc_dead_code_report.
RELNOTES: The 'j2objc' configuration fragment is exposed to Skylark.
PiperOrigin-RevId: 189630012
|
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 189317851
|
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 189292736
|
|
|
|
| |
PiperOrigin-RevId: 189181919
|
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 189065642
|
|
|
|
|
|
|
|
|
| |
Also, disallow BazelPackageLoader from fetching missing external repos.
Integration tests for BazelPackageLoader wrt external repos will be left for a follow-up CL.
RELNOTES: None.
PiperOrigin-RevId: 188967694
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Breaks external cc_proto_library. See https://github.com/bazelbuild/bazel/issues/4780
RELNOTES: None.
*** Original change description ***
Fixing issue with external j2objc protos
PiperOrigin-RevId: 188041921
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It shouldn't be open sourced at all, since it solves a very specific internal
use case, and for external use cc_library with its includes, include_prefix, and
strip_include_prefix attributes can be used to perfectly replace cc_inc_library.
RELNOTES: Removed cc_inc_library, please use cc_library instead
Use includes, include_prefix, and strip_include_prefix attributes of cc_library
to replace the behavior of cc_inc_library with cc_library.
PiperOrigin-RevId: 187991313
|
|
|
|
|
|
|
|
|
| |
objc provider skylark fields.
This flag is not fully implemented -- there should also be a way to disable the provider getters using this flag, but, since @SkylarkCallable does not allow for evaluation of SkylarkSemantics, this is not yet possible.
RELNOTES: None.
PiperOrigin-RevId: 187542004
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 187531006
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The output files are created without a repository, but the expected
filenames have them
This resolves issues when having a proto_library from an external build
file.
This seems to be a regression, so maybe should go into the 0.8.0 branch?
Note: Work at Square and we have a signed CLA with google
Note, without this fix we get errors like
```
ERROR: /private/var/tmp/_bazel_lewis/4a25cfc2b9b758043413ac58525ef6b4/external/AllProtos/BUILD.bazel:27:1: output 'external/AllProtos/squareup/objc/objc.j2objc.pb.m' was not created
ERROR: /private/var/tmp/_bazel_lewis/4a25cfc2b9b758043413ac58525ef6b4/external/AllProtos/BUILD.bazel:27:1: output 'external/AllProtos/squareup/objc/objc.j2objc.pb.h' was not created
```
Closes #4058.
PiperOrigin-RevId: 187480864
|
|
|
|
|
|
| |
This flag changes the behavior of objc_library module map propagation so that module maps are only propagated to direct dependents, not transitive dependents. swift_library targets that import Objective-C code must then list those dependencies directly in its deps instead of depending on them being transitively present.
PiperOrigin-RevId: 187184692
|
|
|
|
|
|
| |
mechanism as for normal actions, have the ActionTemplateExpansionFunction look the template up when needed.
PiperOrigin-RevId: 185861672
|
|
|
|
|
|
|
|
| |
objc_library that it depends on.
See https://github.com/bazelbuild/bazel/issues/3352
PiperOrigin-RevId: 185371993
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Path and PathFragment have been replaced with String-based implementations. They are pretty similar, but each method is dissimilar enough that I did not feel sharing code was appropriate.
A summary of changes:
PATH
====
* Subsumes LocalPath (deleted, its tests repurposed)
* Use a simple string to back Path
* Path instances are no longer interned; Reference equality will no longer work
* Always normalized (same as before)
* Some operations will now be slower, like instance compares (which were previously just a reference check)
* Multiple identical paths will now consume more memory since they are not interned
PATH FRAGMENT
=============
* Use a simple string to back PathFragment
* No more segment arrays with interned strings
* Always normalized
* Remove isNormalized
* Replace some isNormalizied uses with containsUpLevelReferences() to check if path fragments try to escape their scope
* To check if user input is normalized, supply static methods on PathFragment to validate the string before constructing a PathFragment
* Because PathFragments are always normalized, we have to replace checks for literal "." from PathFragment#getPathString to PathFragment#getSafePathString. The latter returns "." for the empty string.
* The previous implementation supported efficient segment semantics (segment count, iterating over segments). This is now expensive since we do longer have a segment array.
ARTIFACT
========
* Remove Path instance. It is instead dynamically constructed on request. This is necessary to avoid this CL becoming a memory regression.
RELNOTES: None
PiperOrigin-RevId: 185062932
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 184985081
|
|
|
|
| |
PiperOrigin-RevId: 184853464
|
|
|
|
|
|
| |
SpecialArtifact.
PiperOrigin-RevId: 184539696
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 184492828
|
|
|
|
|
| |
RELNOTES:
PiperOrigin-RevId: 184191201
|
|
|
|
|
|
| |
of the final steps of the migration process into Skylark. If you were using ios_test, please take a look at ios_unit_test provided by the github.com/bazelbuild/rules_apple project.
PiperOrigin-RevId: 183251623
|
|
|
|
|
|
| |
owner and fix up BuildConfigurationValue.Key. ConfiguredTargetKey is going to need some modifications to AutoCodec: probably the long-awaited static "create" method.
PiperOrigin-RevId: 182630181
|
|
|
|
|
|
| |
path class.
PiperOrigin-RevId: 182526427
|
|
|
|
|
|
|
| |
This has the effect of documenting exposed struct fields on these providers.
RELNOTES: None.
PiperOrigin-RevId: 182221042
|
|
|
|
|
|
| |
This is slightly more descriptive, and we will potentially want to use the name Root for a broader concept shared between ArtifactRoot and RootedPath.
PiperOrigin-RevId: 182082367
|
|
|
|
|
|
|
|
| |
This method violates the invariant that derived roots are never equal to the exec root. Only source roots can be equal to the exec root.
Note that this method was only used in tests, so this CL should be completely safe as long as its tests pass.
PiperOrigin-RevId: 181998483
|
|
|
|
|
|
|
| |
This fixes a regression introduced by some prior refactoring work.
RELNOTES: None.
PiperOrigin-RevId: 181665047
|
|
|
|
|
|
| |
RELNOTES: The --[no]experimental_disable_jvm command line option is not
supported anymore.
PiperOrigin-RevId: 181575259
|
|
|
|
|
|
|
| |
This has the effect of documenting exposed struct fields on the provider.
RELNOTES: None.
PiperOrigin-RevId: 181346052
|
|
|
|
|
|
|
|
| |
This API mimics the linking logic of apple_binary, and is a step to migrating apple_binary to skylark.
This API is *highly experimental* and subject to change.
RELNOTES: None.
PiperOrigin-RevId: 181215275
|
|
|
|
| |
PiperOrigin-RevId: 179948322
|