aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/objc/BundleMergeControlBytes.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
* 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
* Platform -> ApplePlatform, to avoid ambiguity with the newly introducedGravatar cpeyser2017-07-07
| | | | | | Platform rule. PiperOrigin-RevId: 161203491
* 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
* 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
* Simplify plmerge and bundlemerge by removing deprecated functionality.Gravatar Dave MacLachlan2016-02-29
| | | | | | | RELNOTES: -- MOS_MIGRATED_REVID=115804885
* 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
* 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
* 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
* 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
* Sign bundles for device if ios_multi_cpu contains device cpus.Gravatar Peter Schmitt2015-03-26
| | | | | | | Introduces a restriction that prohibits using both simulator and device architectures for ios_multi_cpus in the same build. -- MOS_MIGRATED_REVID=89597247
* 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
* Remove common java code between objc tools and rules.Gravatar Peter Schmitt2015-03-23
| | | | | | | | | | As we are releasing the tools somewhat independently of the rules these utility dependencies make life a lot harder. I'm sad about losing some of the enum type-safety but being able to treat the code independently is more than worth it. -- MOS_MIGRATED_REVID=89137624
* 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
* Pass bundle_id attribute to PlMerge if it is explicitly setGravatar Googler2015-02-25
| | | | | | | | | * Adds primary and fallback bundle ID fields * Adds conflict resolution that considers IDs in order: plist file, primary ID (set in BUILD file), fallback ID (Blaze default). If plist and primary are both set, they should be equal, otherwise an error is thrown. -- MOS_MIGRATED_REVID=87106031
* 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