aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/objc
Commit message (Collapse)AuthorAge
* Migrate JavaInfo's provider to use the new provider pattern.Gravatar cparsons2018-05-22
| | | | | | | This dramatically improves documentation generation for JavaInfo and it makes it far more maintainable and extensible going forward. RELNOTES: None. PiperOrigin-RevId: 197619040
* C++: Deletes CcLinkParamsInfoGravatar plf2018-05-15
| | | | | | | | This class is not necessary anymore. We can use CcLinkParamsStoreImpl directly which has been renamed to CcLinkParamsStore. RELNOTES:none PiperOrigin-RevId: 196656488
* Extract logic for dealing with CROSSTOOL values and build variables into ↵Gravatar rosica2018-05-14
| | | | | | | separate class RELNOTES: None. PiperOrigin-RevId: 196517537
* C++: Renames CcCompilationContextInfo to CcCompilationContextGravatar plf2018-05-14
| | | | | | | Since it's not a provider, it doesn't need the Info suffix anymore. RELNOTES:none PiperOrigin-RevId: 196498526
* Remove cppConfiguration from LinkBuildVariablesGravatar hlopko2018-05-08
| | | | | | | | | This is to simplify the API that will eventually be exposed to Skylark. Working towards #4571. RELNOTES: None. PiperOrigin-RevId: 195785588
* Rename LinkStaticness to LinkingMode and unify with the other LinkingMode.Gravatar hlopko2018-05-07
| | | | | RELNOTES: None. PiperOrigin-RevId: 195777400
* Migrate j2objc to only support java_proto_library.Gravatar tomlu2018-05-04
| | | | | | | | | Mostly this is removing a needless restriction on proto_library to have java_api_version and j2objc_api_version set. The rest was already working. Tons of tests had to be updated. RELNOTES: None PiperOrigin-RevId: 195450685
* Simplify config fragment creation.Gravatar gregce2018-05-02
| | | | | | | | | Remove all unnecessesary accesses to ConfigurationEnvironment and deprecate the accesses that actually need ConfigurationEnvironment. For review, check out ConfigurationFragmentFactory first. PiperOrigin-RevId: 195099768
* Clean up code that directly imports nested classes like Builder, Entry, etc.Gravatar jcater2018-05-01
| | | | PiperOrigin-RevId: 194960802
* Use a new pattern for builtin Provider objects with @SkylarkCallable.Gravatar cparsons2018-05-01
| | | | | | | | This deprecates the old NativeProvider pattern. The new pattern is demonstrated using AppleStaticLibraryInfo. RELNOTES: None. PiperOrigin-RevId: 194956883
* Headers specified in cc_library.textual_hdrs are passed through objc_libraryGravatar cpeyser2018-04-30
| | | | | | targets to upstream cc_library targets. PiperOrigin-RevId: 194816009
* Change action construction to use built-in param file support.Gravatar tomlu2018-04-27
| | | | | | | | | | | We want to be able to control how and when param files are used, and manual construction of param files prevents this. It should also be less code overall. For this CL, when param files are used is unchanged, their format and encoding is unchanged. The flag name is also unchanged, except in some cases it was changed from (eg.) "--flagfile foo" to "--flagfile=foo". However, the name of the param file is now derived from the primary output of the action (instead of manually controlled). RELNOTES: None PiperOrigin-RevId: 194607698
* Ensure that all aspects which (even very indirectly) callGravatar jcater2018-04-27
| | | | | | | CppHelper.getToolchainFromPlatformConstraints declare that they require a cc toolchain. PiperOrigin-RevId: 194580065
* Ensure that all rules which (even very indirectly) callGravatar jcater2018-04-27
| | | | | | | CppHelper.getToolchainFromPlatformConstraints declare that they require a cc toolchain. PiperOrigin-RevId: 194561293
* Remove unused method.Gravatar jcater2018-04-26
| | | | PiperOrigin-RevId: 194430205
* Refactor generated objc sources compilation in ProtobufSupport.javaGravatar pcloudy2018-04-25
| | | | | | | 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
* Add getters to JavaCompilationArgsProviderGravatar cushon2018-04-24
| | | | | | | | | | for direct, transitive, and full compile-time jars; runtime jars; and instrumentation metadata. These are trivial wrappers around the corresponding getters on the recursive and non-recursive JavaCompilationArgs objects. This is a no-op refactoring in preparation for flatting JavaCompilationArgs into JavaCompilationArgsProvider. PiperOrigin-RevId: 194047064
* SpawnAction.setShellCommand: expect shell pathGravatar laszlocsomor2018-04-23
| | | | | | | | | | | | | | | | | | | | | | | SpawnAction.setShellCommand(String) now expects the shell interpreter's path as an argument. This change enables two things: - rules can report an error if the shell is missing - SpawnAction no longer has to know about a default shell The new ShToolchain class will later also be responsible for retrieving the active shell toolchain (added in https://github.com/bazelbuild/bazel/commit/81ed3add408adb20bddbc3ba1818c65806738dc5). This change brings Bazel closer to not depend on the shell unless it has to (e.g. to run shell scripts). See https://github.com/bazelbuild/bazel/issues/4319 RELNOTES: none PiperOrigin-RevId: 193885943
* Thread more information through CcToolchainProvider for ↵Gravatar hlopko2018-04-20
| | | | | | | | | | CcCommon.configureFeatures The goal is to enable creation of feature configuration without the rule context. This will enable us to have cleaner API for this in Skylark. RELNOTES: None PiperOrigin-RevId: 193630386
* C++: Wrap CcLinkParamsInfo with CcLinkingInfo.Gravatar plf2018-04-16
| | | | | | | CcLinkingInfo will eventually wrap all C++ linking providers. CcLinkParamsInfo is no longer a provider and will be renamed in a later CL. RELNOTES:none PiperOrigin-RevId: 193011702
* Made j2objc translation flags accessible to Skylark, to migrate builds usingGravatar Googler2018-04-13
| | | | | | | | | | 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
* Adding toolchain support for j2objc protosGravatar Mike Lewis2018-04-13
| | | | | | | | | | 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
* Migrate apple_common.new_objc_provider to use @SkylarkCallableGravatar cparsons2018-04-10
| | | | | RELNOTES: None. PiperOrigin-RevId: 192350172
* C++: Fixes broken objc_library targets in nightlyGravatar plf2018-04-09
| | | | | | Errors are related to missing headers from C++ dependencies. PiperOrigin-RevId: 192132907
* C++: Introduce provider that wraps C++ compilation providers.Gravatar plf2018-04-06
| | | | | | | For now, only CcCompilationContextInfo is wrapped. CcCompilationContextInfo will be renamed CcCompilationContext since the *Info suffix is used for providers. This will be done in a follow-up CL. RELNOTES:none PiperOrigin-RevId: 191876504
* Fix strict module map propagation for j2objc.Gravatar allevato2018-04-05
| | | | | | 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
* C++: Rename CcCompilationInfo to CcCompilationContextInfo.Gravatar plf2018-04-03
| | | | | | | | | This is done so that the name CcCompilationInfo can be used for the C++ provider that will wrap all providers for compilation, similar to JavaInfo in Java. RELNOTES:none PiperOrigin-RevId: 191445120
* Remove category checking from incompatible changes.Gravatar ccalvarin2018-03-30
| | | | | | | String categories are deprecated, replace this special-cased value with a specific OptionMetadata tag, TRIGGERED_BY_ALL_INCOMPATIBLE_CHANGES. RELNOTES: None. PiperOrigin-RevId: 191069412
* Fixing issue with external j2objc protos (reattempt at #4058)Gravatar Mike Lewis2018-03-29
| | | | | | | | | | | | | | | | | | 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
* Make deprecated ObjcProvider fields return empty sets when ↵Gravatar cparsons2018-03-28
| | | | | | | | | --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
* Remove categories from Bazel options.Gravatar ccalvarin2018-03-28
| | | | | | | | | These have all had a chance to be categorized with the OptionDocumentationCategory enum, and the help output already uses the enum-grouped format. The "incompatible changes" category has meaning for --all_incompatible_changes and will be removed separately. RELNOTES: None. PiperOrigin-RevId: 190773778
* Delete the ios_device rule from bazel.Gravatar kaipi2018-03-28
| | | | PiperOrigin-RevId: 190771926
* ObjcLibrary.java: Use objectFilesCollector to get object filesGravatar pcloudy2018-03-28
| | | | | | | This can avoid passing targetBuilder to CompilationSupport.java RELNOTES: None PiperOrigin-RevId: 190743994
* Expose j2objc.dead_code_report as a configuration field instead of a basic ↵Gravatar cparsons2018-03-27
| | | | | | | struct field on the j2objc fragment. RELNOTES: None. PiperOrigin-RevId: 190672475
* Avoid using ObjectFilePathHelper in CompilationSupport.javaGravatar pcloudy2018-03-27
| | | | | RELNOTES: None. PiperOrigin-RevId: 190591828
* Shorten object file pathGravatar pcloudy2018-03-23
| | | | | | | | | | | | | | | | | | | | | | | 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
* Stop objc_proto_library from returning the generated sources.Gravatar kaipi2018-03-21
| | | | PiperOrigin-RevId: 189971511
* Expose the j2objc configuration fragment, with field dead_code_report, ↵Gravatar cparsons2018-03-19
| | | | | | | matching build flag --j2objc_dead_code_report. RELNOTES: The 'j2objc' configuration fragment is exposed to Skylark. PiperOrigin-RevId: 189630012
* Splits the iterableMarshaller into runtime codecs.Gravatar shahan2018-03-14
| | | | | | Makes NestedSetCodec into a runtime codec instead of a Marshaller. PiperOrigin-RevId: 189110883
* Add BuildConfiguration to ConfiguredTargetAndTarget and rename it to ↵Gravatar janakr2018-03-10
| | | | | | ConfiguredTargetAndData. We want to get BuildConfiguration out of ConfiguredTarget because it uses >800K when serialized. PiperOrigin-RevId: 188600002
* Expose an actions provider on RuleConfiguredTarget instances.Gravatar cparsons2018-03-06
| | | | | | | | | Given a target (for example from a skylark aspect), one will be able to access a list of actions that the target generated using "target.actions". This is without additional memory footprint. Actions themselves are not fully exposed to skylark (and thus there isn't much meaning to gather from them in skylark yet). Access methods will follow soon. RELNOTES: None. PiperOrigin-RevId: 188098079
* Replace instances of XCode with Xcode which is the proper casing for the name.Gravatar Sergio Campama2018-03-06
| | | | | | Closes #4640. PiperOrigin-RevId: 188022228
* @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