aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/objc
Commit message (Collapse)AuthorAge
* @AutoCodec for ConfigurationTransition subclasses.Gravatar shahan2018-03-02
| | | | | | Needed for Attribute serialization. PiperOrigin-RevId: 187676061
* Create --incompatible_disable_objc_provider_resources to disable deprecated ↵Gravatar cparsons2018-03-01
| | | | | | | | | 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
* Migrate a few trivial uses of @SkylarkSignature to use @SkylarkCallable insteadGravatar cparsons2018-03-01
| | | | | RELNOTES: None. PiperOrigin-RevId: 187531006
* Deletes CODEC fields now that they are no longer needed.Gravatar shahan2018-02-28
| | | | PiperOrigin-RevId: 187397314
* Deprecate and remove several uses of the 'values' map in NativeInfo subclasses.Gravatar cparsons2018-02-28
| | | | | | | | | | These subclasses should be using @SkylarkCallable(structField = true) instead This is a bit of a memory win, as there is now no need to store field information twice. There are still a couple of stragglers that are more difficult, namely ToolchainInfo and DefaultInfo. Their APIs will likely need some more extensive revamping before proceeding. RELNOTES: None. PiperOrigin-RevId: 187364392
* Add @AutoCodec to AppleCrossToolTransition.Gravatar mjhalupka2018-02-27
| | | | PiperOrigin-RevId: 187222454
* Add --incompatible_strict_objc_module_maps.Gravatar allevato2018-02-27
| | | | | | 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
* Move enabling of coverage related features to CcCommonGravatar Googler2018-02-23
| | | | | | | | Move dealing with coverage related features from CppConfiguration.configurationEnabledFeatures to CcCommon.configureFeatures. Remove configurationEnabledFeatures. RELNOTES: None. PiperOrigin-RevId: 186744803
* C++: Migrate CcCompilationInfo to NativeInfoGravatar plf2018-02-21
| | | | | | | | The old TransitiveInfoProvider is deprecated. Providers used from Skylark should use NativeInfo as specified in[] RELNOTES:none PiperOrigin-RevId: 186447814
* C++: Renames CppCompilationContext to CcCompilationInfoGravatar plf2018-02-21
| | | | | | | This is in preparation for migrating to the new way of specifying providers as described in[] RELNOTES:none PiperOrigin-RevId: 186436462
* Move CommandLine, CommandLineItem, and ParamFileInfo from ↵Gravatar tomlu2018-02-15
| | | | | | | | | lib.analysis.actions -> lib.actions. These are fundamental types that want to sit alongside types like Spawn. RELNOTES: None PiperOrigin-RevId: 185887971
* Add a CODEC for CppCompileAction.Gravatar cpeyser2018-02-14
| | | | PiperOrigin-RevId: 185733313
* Add Codec for NativeAspectClass. As a result, remove @AutoCodec from ↵Gravatar janakr2018-02-13
| | | | | | | | concrete subclasses. Improve debugging message on serialization failures. Lot of test-side changes to make sure aspects are properly registered with the RuleClassProvider. PiperOrigin-RevId: 185607202
* Thread ConfiguredTargetAndTarget through objC classes to get rid of referencesGravatar mjhalupka2018-02-12
| | | | | | | | to ConfiguredTarget.GetTarget(). Also remove equivalence requirements for the ConfiguredTarget's target and the stored Target since there will soon no longer be a Target in ConfiguredTarget. PiperOrigin-RevId: 185417468
* Changes cc_library to consume headers specified in the "hdrs" attribute of anGravatar cpeyser2018-02-12
| | | | | | | | objc_library that it depends on. See https://github.com/bazelbuild/bazel/issues/3352 PiperOrigin-RevId: 185371993
* Replace path implementation.Gravatar tomlu2018-02-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Change $cc_toolchain_type to NODEP_LABEL so there is no actual dependency.Gravatar jcater2018-02-08
| | | | PiperOrigin-RevId: 185018321
* Avoid integer overflow breaking protobuf artifact ordering.Gravatar cparsons2018-02-08
| | | | | | | An integer overflow caused by taking the difference between two hashcodes would result in nondeterministically having sortedCopy fail. Integer.compare is safer. RELNOTES: None. PiperOrigin-RevId: 185005542
* Introduce -c source_file -o output_file build variablesGravatar hlopko2018-02-08
| | | | | | | | | | | | | | Prior to this cl CompileCommandLine would (almost) unconditionally emit -c and -o flags. This cl removes this logic and relies on crosstool to emit these flags. This is another small step towards platform independent C++ rules. Memory use is not affected, since the build variables used by this cl are already exposed, this cl just forces crosstools to use it. Encore of https://github.com/bazelbuild/bazel/commit/f26e8694ae78599b3e2004e3360eaf3443fa53a6. RELNOTES: None. PiperOrigin-RevId: 184981106
* C++: Split C++ library into two classes, compilation and linkingGravatar plf2018-02-08
| | | | | | | These will be separate calls in the Skylark API. RELNOTES:none PiperOrigin-RevId: 184961734
* Non-test AspectClass codecs.Gravatar shahan2018-02-07
| | | | PiperOrigin-RevId: 184862552
* Convert "-" to "" when generating module nameGravatar Googler2018-02-05
| | | | | RELNOTES: None. PiperOrigin-RevId: 184492828
* Stop allowing generic LateBoundDefault value types. Such types are always ↵Gravatar janakr2018-02-02
| | | | | | | | either a Label or a List<Label>. We can easily enforce this through static type checking, so do it. This will help with LateBoundDefault serialization, since we don't have to serialize an arbitrary object. PiperOrigin-RevId: 184347100
* Remove unused code from bazel.Gravatar kaipi2018-02-01
| | | | | RELNOTES: PiperOrigin-RevId: 184191201
* Expand the docs on hdrs to better indicate what they are.Gravatar thomasvl2018-02-01
| | | | | | | This borrows from what is on cc_library, to hopefully better capture/indicate what should and shouldn't be listed in their attribute. PiperOrigin-RevId: 184173403
* Change ConfiguredAspectFactory.create signature to take in aGravatar mjhalupka2018-01-31
| | | | | | | ConfiguredTargetAndTarget instead of a ConfiguredTarget. This is to assist in deprecating ConfiguredTarget.getTarget(). PiperOrigin-RevId: 184043491
* Order the input-output map keys before processing its elements. This fixes ↵Gravatar kaipi2018-01-31
| | | | | | non-determinism in how the protos get bundled into the BundledProtos_X archives. PiperOrigin-RevId: 184009755
* Drop CppCompileAction.actionContextGravatar ulfjack2018-01-30
| | | | | | It always set to the same value. PiperOrigin-RevId: 183843518
* Allows @AutoCodec to use factory methods.Gravatar shahan2018-01-29
| | | | | | Generalizes @AutoCodec.Constructor to @AutoCodec.Instantiator. PiperOrigin-RevId: 183702768
* Remove ios_test from Bazel. ios_test is an old rule and this removal is part ↵Gravatar kaipi2018-01-25
| | | | | | 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
* Move all code to lookup JavaRuntimeInfo to static methods onGravatar John Cater2018-01-23
| | | | | | | JavaRuntimeInfo. Change-Id: Ic338dc9b3e5efa2fee92dba722a46cab743db40c PiperOrigin-RevId: 182919931
* Inline rarely used PathFragment methods that do not deserve to be on a core ↵Gravatar tomlu2018-01-19
| | | | | | path class. PiperOrigin-RevId: 182526427
* Migrate Apple providers to abide by Native Declared Provider best practices.Gravatar cparsons2018-01-17
| | | | | | | This has the effect of documenting exposed struct fields on these providers. RELNOTES: None. PiperOrigin-RevId: 182221042
* Rename Root to ArtifactRoot.Gravatar tomlu2018-01-16
| | | | | | 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
* C++: Only call link() in cc_binary when linkCompileOutputSeparately is true.Gravatar plf2018-01-12
| | | | | | | | | Also rename setLinkType() to setStaticLinkType() in CcLibraryHelper to make it clear that we are setting the specific linking type for the static library. This is an improved version of https://github.com/bazelbuild/bazel/commit/a705eaa9225ff8a03975c8cb49faa6b2899e398d which was rolled back due to a previous conflicting CL causing problems in the nightly. RELNOTES:none PiperOrigin-RevId: 181746447
* Propagate depsObjcProvider from loadable_bundle apple_binary targetsGravatar cparsons2018-01-11
| | | | | | | This fixes a regression introduced by some prior refactoring work. RELNOTES: None. PiperOrigin-RevId: 181665047
* Automated rollback of commit c166cd99ce9f72eed522e78d63c93ff410b6dc18.Gravatar plf2018-01-11
| | | | | | | | | | | | | | | | | | | | | | | *** Reason for rollback *** This was missing adding LTO files in the cc_embed_data rule. Fixed and added test. *** Original change description *** Automated rollback of commit 67330ad52391ad6562d439f77cc5133a0ea4247d. *** Reason for rollback *** Breaks nightly: b/71790513 *** Original change description *** C++ refactoring: Separate compilation and linking calls to CcLibraryHelper RELNOTES:none PiperOrigin-RevId: 181613477
* Fold the Jvm configuration fragment into JavaConfiguration.Gravatar lberki2018-01-11
| | | | | RELNOTES: None. PiperOrigin-RevId: 181579365
* Automated rollback of commit 67330ad52391ad6562d439f77cc5133a0ea4247d.Gravatar plf2018-01-10
| | | | | | | | | | | | | *** Reason for rollback *** Breaks nightly: b/71790513 *** Original change description *** C++ refactoring: Separate compilation and linking calls to CcLibraryHelper RELNOTES:none PiperOrigin-RevId: 181457811
* Refactor ObjcProvider to abide by Native Declared Provider best practices.Gravatar cparsons2018-01-09
| | | | | | | This has the effect of documenting exposed struct fields on the provider. RELNOTES: None. PiperOrigin-RevId: 181346052
* Expose apple_common.link_multi_arch_binary to Skylark.Gravatar cparsons2018-01-08
| | | | | | | | 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
* C++ refactoring: Separate compilation and linking calls to CcLibraryHelperGravatar plf2018-01-08
| | | | | RELNOTES:none PiperOrigin-RevId: 181169134
* Codecs for all non-test Fragment subclasses (except CppConfiguration, ↵Gravatar shahan2018-01-05
| | | | | | handled separately). PiperOrigin-RevId: 180974083
* Move PatchTransition and kin to analysis.config.transitions.Gravatar gregce2018-01-04
| | | | | | | HostTransition can't be migrated yet because it depends on BuildConfiguration. PiperOrigin-RevId: 180842784
* Propagate deps' objc providers with AppleLoadableBundleGravatar cparsons2018-01-04
| | | | | | | | This change allows turndown of top-level ObjcProvider propagation by apple_binary via --noexperimental_objc_provider_from_linked. ios test bundle rules depend on loadable bundle apple_binary, and require the binary's deps' objc providers -- thus this is the only mechanism to propagate these providers. RELNOTES: None. PiperOrigin-RevId: 180824037
* Rename some ClassObject/Provider-related methodsGravatar brandjon2017-12-28
| | | | | | | The terminology "field" is preferred over "key" for the components of a struct or struct-like object. RELNOTES: None PiperOrigin-RevId: 180269374
* ObjectCodecs for all non-test FragmentOption subclasses.Gravatar Googler2017-12-27
| | | | PiperOrigin-RevId: 180202221
* Replace Attribute.SplitTransition with config.transitions.SplitTransition.Gravatar gregce2017-12-22
| | | | PiperOrigin-RevId: 179948322
* Deprecate "xctest" attribute from ios_test. This removes any functionality ↵Gravatar kaipi2017-12-21
| | | | | | related to using xctest = 0, but keeps the attribute to not break the users who have xctest = 1. PiperOrigin-RevId: 179855856
* Change cfg(HOST) to cfg(HostTransition.INSTANCE).Gravatar gregce2017-12-21
| | | | | | Preparatory step for removing ConfigurationTransition.HOST. PiperOrigin-RevId: 179838374