aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/objc/Bundling.java
Commit message (Collapse)AuthorAge
* Replace all usages of Blaze's Preconditions class with guava.Gravatar tomlu2017-11-09
| | | | | | | | Blaze had its own class to avoid GC from varargs array creation for the precondition happy path. Guava now (mostly) implements these, making it unnecessary to maintain our own. This change was almost entirely automated by search-and-replace. A few BUILD files needed fixing up since I removed an export of preconditions from lib:util, which was all done by add_deps. There was one incorrect usage of Preconditions that was caught by error prone (which checks Guava's version of Preconditions) that I had to change manually. PiperOrigin-RevId: 175033526
* Move RuleConfiguredTarget to lib.analysis.configuredtargets.Gravatar gregce2017-09-19
| | | | | | This is a trivial change with a large file footprint. PiperOrigin-RevId: 169169864
* Refactor all ctor callsites of PathFragment to instead call a static ↵Gravatar nharmata2017-04-05
| | | | | | | | | | | | 'create' method. This paves the way for changing PathFragment to e.g. an abstract class with multiple subclasses. This way we can split out the windows-specific stuff into one of these concrete classes, making the code more readable and also saving memory (since the shallow heap size of the NonWindowsPathFragment subclass will hopefully be smaller than that of the current PathFragment). This also lets us pursue gc churn optimizations. We can now do interning in PathFragment#create and can also get rid of unnecessary intermediate PathFragment allocations. RELNOTES: None PiperOrigin-RevId: 152145768
* Avoid setting CFBundleExecutable on objc_bundle_library plistsGravatar Chris Parsons2016-08-23
| | | | | -- MOS_MIGRATED_REVID=130971534
* Introduce apple_watch2_extension rule for bundling watchOS2 extensions.Gravatar Chris Parsons2016-08-03
| | | | | | | | | | | This can be used in conjunction with apple_binary to add watchOS2 extensions to an ios application bundle. This is the majority of the native work for this bundling logic. Before announcing general availability of this feature, we will want to: 1. Iterate with teams who have existing watchOS2 apps to catch any corner-case bugs 2. Introduce a skylark macro to wrap apple_watch2_extension and apple_binary into a single rule; this will both serve as a convenience and ensure users set the appropriate linkopts and platformtype on their apple_binary target. -- MOS_MIGRATED_REVID=129122855
* Roll forward of commit 05c0bd286b3802ad3d7faf48bc19e86929a9cf6d:Gravatar Dmitry Shevchenko2016-07-29
| | | | | | | | | Include SwiftSupport directory into the IPA when an app contains Swift. * To pass App Store validation, an app that contains Swift code must have a SwiftSupport directory at the root of the IPA. -- MOS_MIGRATED_REVID=128706028
* Rollback of commit 75714b0d6e65905e41da8415ca3e7ec101575d51.Gravatar Dmitry Shevchenko2016-07-28
| | | | | | | | | | | | | | | *** Reason for rollback *** Broke Play Books tests *** Original change description *** Include SwiftSupport directory into the IPA when an app contains Swift. * To pass App Store validation, an app that contains Swift code must have a SwiftSupport directory at the root of the IPA. -- MOS_MIGRATED_REVID=128627984
* Include SwiftSupport directory into the IPA when an app contains Swift.Gravatar Dmitry Shevchenko2016-07-28
| | | | | | | * To pass App Store validation, an app that contains Swift code must have a SwiftSupport directory at the root of the IPA. -- MOS_MIGRATED_REVID=128614279
* Allow imports of dylib frameworks.Gravatar Peter Schmitt2016-05-19
| | | | | | | RELNOTES: objc_framework now supports dynamic frameworks. -- MOS_MIGRATED_REVID=122728042
* Add 'apple_watch1_extension' and 'apple_watch_extension_binary' to support ↵Gravatar Googler2016-04-05
| | | | | | | | | building watch OS 1 apps. RELNOTES: Support apple_watch1_extension and apple_watch_extension_binary rules for creating watch OS 1 extensions. -- MOS_MIGRATED_REVID=119000703
* Move several naked strings over to constants as general code cleanup.Gravatar Dave MacLachlan2016-03-28
| | | | | | | RELNOTES: -- MOS_MIGRATED_REVID=118242131
* Introduce ReleaseBundling class to contain all application specific ↵Gravatar Googler2016-03-23
| | | | | | | information required for creating a release bundle. -- MOS_MIGRATED_REVID=117843546
* Remove infoplists from objc_options. They aren't used anymore (last case ↵Gravatar Dave MacLachlan2016-03-14
| | | | | | | removed with unknown commit) -- MOS_MIGRATED_REVID=117003728
* Get rid of duplicated strings for IosTest attributes because I'm always ↵Gravatar Dave MacLachlan2016-02-22
| | | | | | | | | paranoid of missing one when changing them, and it makes things so much easier when coding. R_FUTURE=schmitt,cparsons -- MOS_MIGRATED_REVID=115101461
* Enable objc targets that produce bundles to specify multiple plist files ↵Gravatar Cal Peyser2016-01-11
| | | | | | | | | with the "infoplists" attribute. The plists are merged to produce the bundle's Info.plist. This attribute will live alongside the current "infoplist" attribute until the next Blaze release. -- MOS_MIGRATED_REVID=111705709
* Ensure that the plist inside an .ipa bundle produced by blaze and the ↵Gravatar Cal Peyser2016-01-04
| | | | | | | | | adjacent plist read by xcode are identical. To do this, we use the output of plmerge as the single plist for the bundle. Automatic entries and variable substitutions are both computed in blaze and passed into plmerge. The output of plmerge is passed into bundlemerge to be placed directly into the final bundle. -- MOS_MIGRATED_REVID=111129433
* Rollback of commit d46f474733b048d9ef10dd13ec639b4521693d0a.Gravatar Googler2015-12-22
| | | | | | | | | | | | | | | *** Reason for rollback *** Broke bazel *** Original change description *** Ensure that the plist inside an .ipa bundle produced by blaze and the adjacent plist read by xcode are identical. To do this, we use the output of plmerge as the single plist for the bundle. Automatic entries and variable substitutions are both computed in blaze and passed into plmerge. The output of plmerge is passed into bundlemerge to be placed directly into the final bundle. -- MOS_MIGRATED_REVID=110792182
* Ensure that the plist inside an .ipa bundle produced by blaze and the ↵Gravatar Googler2015-12-22
| | | | | | | | | adjacent plist read by xcode are identical. To do this, we use the output of plmerge as the single plist for the bundle. Automatic entries and variable substitutions are both computed in blaze and passed into plmerge. The output of plmerge is passed into bundlemerge to be placed directly into the final bundle. -- MOS_MIGRATED_REVID=110770779
* Use Bazel Preconditions variant which avoids varargs array creationGravatar Mark Schaller2015-12-10
| | | | | | | Reduces garbage. -- MOS_MIGRATED_REVID=109914243
* Add launch_storyboard for iOS bundles (apps, extensions).Gravatar Peter Schmitt2015-11-18
| | | | | | | | | | Also introduces DottedVersion, a way to parse, represent and most of all compare Apple's version identifiers. RELNOTES: iOS apps and extensions now have launch_storyboard -- MOS_MIGRATED_REVID=108060328
* 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
* Separate build-specific types and types inherent to Skylark.Gravatar Lukacs Berki2015-09-21
| | | | | -- MOS_MIGRATED_REVID=103374106
* Add ability to compile objc_binary targets with Swift sources.Gravatar Googler2015-06-17
| | | | | | | | | | | | | * Swift sources whitelisted * Swift compilation and module merging actions * Swift stdlib copying into IPA action * Special case for signing embedded swift stdlib dylibs during bundle signing * Works with mixed ObjC/Swift sources * Doesn't support working with dependencies from Swift code. * Requires Xcode 6.3.1 for swift compiler and tooling. -- MOS_MIGRATED_REVID=96141887
* Deduplicate generated resources from multiple architectures.Gravatar Peter Schmitt2015-06-05
| | | | | | | | | | | | When compiling in multiple architectures, the same resource may be added to a bundle several times because it is generated by a genrule within each architecture's configuration. This causes conflicts when adding the files to the final bundle which is why we discard all but one of the generated files that map to the same location (error checking for users accidentally mapping to the same location exists). -- MOS_MIGRATED_REVID=95212124
* Simplify bundle merging information.Gravatar Peter Schmitt2015-05-19
| | | | | | | | Moves the bundle merging action logic into BundleSupport and eliminates the need for InfoplistMerging.java. -- MOS_MIGRATED_REVID=93926774
* Ensure extension's bundle minimum OS version is at least 8.0.Gravatar Peter Schmitt2015-04-28
| | | | | | | | | | | | | | | | | This is required because Apple does not accept extensions whose plist has a minimum OS value lower than 8.0, or whose code is compiled at less than 8.0, even if it is included in an application that is compiled for, and marked compatible with, a lower OS version. Note that I didn't make this an attribute for now as there are no use cases for setting the value to anything but 8.0. If we ever need to make this user-configurable, a value can easily be set. Second submission attempt with small additional logic to distinguish xcode projects across configurations. -- MOS_MIGRATED_REVID=92267493
* Description redacted.Gravatar Peter Schmitt2015-04-24
| | | | | -- MOS_MIGRATED_REVID=91881146
* Ensure extension's bundle minimum OS version is at least 8.0.Gravatar Peter Schmitt2015-04-23
| | | | | | | | | | | | | | This is required because Apple does not accept extensions whose plist has a minimum OS value lower than 8.0, or whose code is compiled at less than 8.0, even if it is included in an application that is compiled for, and marked compatible with, a lower OS version. Note that I didn't make this an attribute for now as there are no use cases for setting the value to anything but 8.0. If we ever need to make this user-configurable, a value can easily be set. -- MOS_MIGRATED_REVID=91831415
* Compile objc resources when bundling, not at each target.Gravatar Peter Schmitt2015-03-24
| | | | | | | | | | | | | | | | | | | | | | This change moves the resource compilation actions from each declaring target to the bundle in which they're stored. This bundle is (mostly, see below) the only thing that cares about the compiled resources. As a result, we avoid compiling each resource many times when in a multi-architecture context. Note that as a result of this change rules other than ios_test do no longer add the compiled datamodels and storyboards to files to build. There (should?) be no need for them anyhow. Also, Xcode targets will now no longer contain the transitive closure of datamodels, only their own. Note that in the case where the input resource is produced by a genrule the resource compilation still happens for each architecture but we ignore the results for all but one of the architectures to avoid bundling conflicts. There are also some more validation checks and nicer error messages for users when they specify illegal strings resources. -- MOS_MIGRATED_REVID=89404405
* Only use a single copy of a nested bundle with ios_multi_cpus.Gravatar Peter Schmitt2015-03-23
| | | | | | | | | | | | We generate a nested bundle for each architecture specified in ios_multi_cpus which would cause any artifacts generated by these rules (such as info plists or compiled resource files) to clash in the final application bundle (where the bundle directory only exists once). For now just pick one architecture at random to store the bundle in - unfortunately we still generate the bundle for all architectures. -- MOS_MIGRATED_REVID=89152199
* Move bundle_id storage from BundleMergeControlBytes to Bundling to fix a ↵Gravatar Googler2015-03-13
| | | | | | | | | case of nested bundles. RELNOTES: objc: Fixes a case where nested bundle would pick up parent bundle_id value -- MOS_MIGRATED_REVID=88372062
* Implement ios_extension rule. See IosExtensionRule.java for information on ↵Gravatar Matthew DeVore2015-02-20
| | | | | | | | | how app extensions are built and how they differ from application bundles. RELNOTES: Support ios_extension and ios_extension_binary rules for creating iOS app extensions. -- MOS_MIGRATED_REVID=86788086
* Update from Google.Gravatar Han-Wen Nienhuys2015-02-25
-- MOE_MIGRATED_REVID=85702957