aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/objc/BinaryLinkingTargetFactory.java
Commit message (Collapse)AuthorAge
* Rollback of ↵Gravatar ajmichael2017-08-14
| | | | | | | | | https://github.com/bazelbuild/bazel/commit/21436e062a12b64c8bee665b0cf79dfe48cff114. That change broke module maps that depended on the transitive headers from ObjC protos. RELNOTES: None PiperOrigin-RevId: 165010275
* Move core test classes to lib.analysis.testGravatar ulfjack2017-08-11
| | | | | | | | These are depended upon by analysis code, so need to live in the same library as lib.analysis. Moving them here makes it possible to split the build-base library into separate libraries for analysis, execution, and rules. PiperOrigin-RevId: 164847161
* Stop transitively propagating headers transitively for ObjC protos.Gravatar kaipi2017-08-09
| | | | PiperOrigin-RevId: 164590595
* Move RuleConfiguredTargetFactory to lib.analysisGravatar ulfjack2017-08-07
| | | | | | | This is part of splitting up the build-base library into separate libraries for analysis, exec, and rules. PiperOrigin-RevId: 164446955
* Make all WithLegacySkylarkName providers declared providers.Gravatar dslomov2017-07-28
| | | | | RELNOTES: None. PiperOrigin-RevId: 163343931
* 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
* ObjcProvider is propagated as a native declared provider.Gravatar cparsons2017-07-21
| | | | | | | This has the added benefit of improving ObjcProvider documentation generated in bazel docs. RELNOTES: None. PiperOrigin-RevId: 162658384
* Platform -> ApplePlatform, to avoid ambiguity with the newly introducedGravatar cpeyser2017-07-07
| | | | | | Platform rule. PiperOrigin-RevId: 161203491
* Remove Xcodege integration from Blaze.Gravatar schmitt2017-06-05
| | | | | RELNOTES: None. PiperOrigin-RevId: 157857216
* Refactor to extract the collection of portable proto filters.Gravatar kaipi2017-04-30
| | | | PiperOrigin-RevId: 154549379
* Export the FILES_TO_COMPILE output group from the objc rules. Add a builder ↵Gravatar cpeyser2017-04-25
| | | | | | to CompilationSupport to clean up that expanding API. PiperOrigin-RevId: 154077775
* Fix ProtobufSupport.java to use the build configuration when being called ↵Gravatar kaipi2017-04-13
| | | | | | from an apple_binary split transition context. Refactors ProtobufSupport to not rely on ruleContext for dependencies. PiperOrigin-RevId: 152939984
* Deprecate native Apple bundling rules.Gravatar allevato2017-04-06
| | | | PiperOrigin-RevId: 152264528
* Introduce --experimental_objc_crosstool, which replacesGravatar Cal Peyser2017-01-19
| | | | | | | | | | --experimental_objc_library and --experimental_objc_use_crosstool_for_binary. This flag will allow testing of the complete (compilation and linking) rollout of the objc crosstool. -- PiperOrigin-RevId: 144864301 MOS_MIGRATED_REVID=144864301
* Implement basic objc executable linking in the CROSSTOOL.Gravatar Cal Peyser2016-11-16
| | | | | | | | | | | | | | The following link features are *not* implemented yet: 1) Objc++ linking semantics 2) Dead stripping 3) --should_prioritize_static_libs 4) DSYM generation 5) Coverage support 6) Swift interop 7) Linkmap -- MOS_MIGRATED_REVID=139232434
* Refactor new compilation, archiving, and fully linking logic into a subclass ofGravatar Cal Peyser2016-11-04
| | | | | | | CompilationSupport. -- MOS_MIGRATED_REVID=138185198
* BinaryLinkingTargetFactory can use the crosstool backend. objc_binary can turnGravatar Cal Peyser2016-10-06
| | | | | | | on this behavior with a flag. -- MOS_MIGRATED_REVID=135275324
* Use minimum OS flags for watchOS and tvOS actions.Gravatar Chris Parsons2016-09-30
| | | | | | | | | | | | Also: - Move minimum os information into AppleConfiguration - Update watchos and tvos minimum version defaulting behavior such that, if unspecified in flags, the minimum OS is equal to the SDK version. - Expose Apple Platform to apple_common in skylark -- MOS_MIGRATED_REVID=134712763
* Initial check-in of apple_static_library ruleGravatar Chris Parsons2016-09-30
| | | | | | | RELNOTES: apple_static_library rule to create multi-architecture static archive files from Objc/C++/Swift dependencies on apple platforms -- MOS_MIGRATED_REVID=134701599
* apple_binary propagates appropriate dSYM information, and ↵Gravatar Chris Parsons2016-08-30
| | | | | | | apple_watch2_extension generates a dSYM bundle when --apple_generate_dsym is specified. -- MOS_MIGRATED_REVID=131617351
* Appropriately set platform environment variables in release bundle plists.Gravatar Chris Parsons2016-08-30
| | | | | | | Previously, iphonesimulator / iphoneos platform information was being set even for watchos extensions. -- MOS_MIGRATED_REVID=131607183
* Make the proto bundling behavior the default when using the new library. Take 2Gravatar Sergio Campama2016-08-17
| | | | | -- MOS_MIGRATED_REVID=130406840
* Adds proto grouping behavior so that generation and compilation actions are ↵Gravatar Sergio Campama2016-08-16
| | | | | | | much smaller. This adds more granularity and helps prevent excessive compilation by minimizing the number of inputs for each action. -- MOS_MIGRATED_REVID=130359288
* Rollback of commit ee36dd3f5db8e7ad129b2782a24eb97a0478fc42.Gravatar Sergio Campama2016-07-25
| | | | | | | | | | | | | *** Reason for rollback *** Prevent [] from burning up *** Original change description *** Make the proto bundling behavior the default when using the new library. -- MOS_MIGRATED_REVID=128226570
* Make the proto bundling behavior the default when using the new library.Gravatar Sergio Campama2016-07-19
| | | | | -- MOS_MIGRATED_REVID=127747661
* Fixes Xcodegen when using --experimental_auto_top_level_union_objc_protos.Gravatar Sergio Campama2016-07-14
| | | | | -- MOS_MIGRATED_REVID=127313628
* Remove --objc_generate_debug_symbols flagGravatar Dmitry Shevchenko2016-06-21
| | | | | -- MOS_MIGRATED_REVID=125354844
* Allow importing of late loaded dynamic frameworksGravatar Googler2016-06-20
| | | | | | | | | Adds a runtime_deps attribute to compilation rules (including objc_binary) that imports a dynamic framework (generated either via the objc_framework or ios_framework rules) into an app bundle without linking against it at build time. RELNOTES: objc_binary now supports late-loaded dynamic frameworks. -- MOS_MIGRATED_REVID=125261347
* More refactor work on single-/multi- architecture accessor methods of ↵Gravatar Chris Parsons2016-06-09
| | | | | | | | | | | | | | | | | | | | | | AppleConfiguration. Additionally, tweak single-architecture ios-platform logic such that ios_multi_cpus is checked before ios_cpu. There are two contexts to note: 1. Single-architecture logic, (generally post-split), unaware of its own platform type aside from configuration. This retrieves platform type from the --apple_platform_type configuration value. a. getSingleArchPlatform() for Platform retrieval b. getSingleArchitecture() for architecture retrieval 2. Multi-architecture logic, which should be aware of its own platform type, and passes it into configuration accessors. a. getMultiArchPlatform(PlatformType) b. getMultiArchitectures(PlatformType) All callers are migrated to these methods, though some still pass IOS platform type even though they may need to be refactored to support additional platform types later. -- MOS_MIGRATED_REVID=124370652
* Separates the proto compilation action from the other linking sources, to ↵Gravatar Sergio Campama2016-06-06
| | | | | | | isolate them from the linking target's defines and copts flags. Refactors CompilationAttributes into its own class with the Builder pattern. -- MOS_MIGRATED_REVID=124137672
* Support for gathering all the protos seen in the transitive closure of ↵Gravatar Sergio Campama2016-05-25
| | | | | | | dependencies through the ObjcProtoAspect, compiling and linking the generated protos at the final linking target. This is only enabled for objc_proto_libraries using the portable_proto_filters attribute, and guarded with the "--experimental_auto_top_level_union_objc_protos" flag. This prevents duplicate symbol errors as the generated sources are only linked once. -- MOS_MIGRATED_REVID=123144532
* Allow use of Exceptions to exit early out of configured-target creation, ↵Gravatar Chris Parsons2016-05-24
| | | | | | | | | | instead of passing and checking null in all helpers. Demonstrates this pattern usage in a few select rules (e.g. AndroidBinary) where this was particularly egregious. There are many places which can benefit from this pattern -- this change doesn't try to fix them all at once. -- MOS_MIGRATED_REVID=123012378
* apple_binary builds without implicit requirement of cc-relevant flags.Gravatar Chris Parsons2016-05-06
| | | | | | | | | Notable changes: - Obtain J2Objc providers from deps attribute of the current rule, even if "deps" is not Mode.TARGET. It is up to the rule implementation to correctly obtain and propagate these providers. - "srcs" on apple_binary no longer has a split transition. These are files, not labels. -- MOS_MIGRATED_REVID=121625691
* Introduces a registry of native providers to the BuildConfiguration, which ↵Gravatar Cal Peyser2016-05-03
| | | | | | | can be added to by fragments. Uses the registry to enable native access to TranstiveProviderInstances from Skylark. In particular, makes ObjcProvider accessible to skylark rule implementations. -- MOS_MIGRATED_REVID=121390911
* Adds a new flag for generation of dSYMs for all apple rules.Gravatar Dmitry Shevchenko2016-05-03
| | | | | | | | * This flag forces -g and enables dSYM bundle actions. * All instances of breakpad generation are now gated by the old --objc_generate_debug_symbols option. -- MOS_MIGRATED_REVID=121304681
* In apple_binary, propagate cc_library dependencies for all child ↵Gravatar Chris Parsons2016-05-02
| | | | | | | configurations of the split transition -- MOS_MIGRATED_REVID=121146341
* Refactor CompilationSupport.registerFullyLinkedAction to be the ↵Gravatar Chris Parsons2016-04-26
| | | | | | | | | | responsibility of the caller to invoke, instead of creating the fully linked artifact by default It makes more sense for the caller rule to opt-in to creating its own implicit output. This also makes it easier for classes to use CompilationSupport without generating this artifact. -- MOS_MIGRATED_REVID=120764517
* Introduce a seperate name to distinguish the objc provider passed from ↵Gravatar Cal Peyser2016-04-05
| | | | | | | native rules to skylark rules and that returned from skylark rules to depending native rules. This fixes a bug where a skylark rule that did not touch the objc provider would automatically pass up the objc provider it received from dependencies to dependant native rules, leading to duplicate symbol linking errors when the same objc provider was exported twice. -- MOS_MIGRATED_REVID=118947782
* *_test rules now return an .xctest.dSYM bundle.Gravatar Googler2016-04-01
| | | | | -- MOS_MIGRATED_REVID=118786316
* Add support for objc_generate_linkmap argument that controls whether a link ↵Gravatar Dave MacLachlan2016-03-31
| | | | | | | | | map is generated. R_FUTURE=cparsons -- MOS_MIGRATED_REVID=118631953
* Adds the dsym files to the ios_application output when using ↵Gravatar Googler2016-03-30
| | | | | | | --objc_generate_debug_symbols. These are delivered in distinct files, with an architecture identifier. -- MOS_MIGRATED_REVID=118510432
* Skylark providers exported under the key "objc" are consumed as ObjcProvider ↵Gravatar Cal Peyser2016-03-29
| | | | | | | instances by dependant objc_binary targets. -- MOS_MIGRATED_REVID=118395529
* Introduce skylark provider for objc.Gravatar Cal Peyser2016-03-18
| | | | | -- MOS_MIGRATED_REVID=117485208
* Move ObjC compilation actions for J2ObjC-translated code from binary level ↵Gravatar Rumou Duan2016-02-05
| | | | | | | | | | | | to the edges (J2ObjcAspect and J2ObjcProtoAspect). RELNOTES[INC]: ObjC compile actions for J2ObjC-translated code now only has access to headers from the java deps of the associated original java rule. These compile actions no longer takes the compiler options specified in "copts" attribute on objc_binary/ios_test rules. J2ObjC dead code removal (enabled through flag "--j2objc_dead_code_removal") now happens *after* ObjC compilation. -- MOS_MIGRATED_REVID=113910545
* Allows cc_{library, binary} targets to depend on objc_library.Gravatar Googler2015-12-10
| | | | | -- MOS_MIGRATED_REVID=109909215
* Create AppleConfiguration and AppleCommandLineOptions, and move a few items ↵Gravatar Chris Parsons2015-11-10
| | | | | | | | | | | of configuration over to the apple package. This moves a small number of configuration items over. Future changes will mostly likely follow to move yet more items. The split here is necessary as it is not only objc-related rules which require information about apple platforms and configuration -- cc rules will need this information as well to pass appropriate args to clang. -- MOS_MIGRATED_REVID=107396114
* Strict matching of architecture name to ios platform. Also refactor Platform ↵Gravatar Chris Parsons2015-11-02
| | | | | | | into a new .apple package, as it is not relevant for solely objc rules. -- MOS_MIGRATED_REVID=106709486
* Rationalize copyright headersGravatar Damien Martin-Guillerez2015-09-25
| | | | | | | | | | | The headers were modified with `find . -type f -exec 'sed' '-Ei' 's|Copyright 201([45]) Google|Copyright 201\1 The Bazel Authors|' '{}' ';'` And manual edit for not Google owned copyright. Because of the nature of ijar, I did not modified the header of file owned by Alan Donovan. The list of authors were extracted from the git log. It is missing older Google contributors that can be added on-demand. -- MOS_MIGRATED_REVID=103938715