aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java
Commit message (Collapse)AuthorAge
* Allow objc rule deps to include any rule that exports an "objc" provider.Gravatar Googler2016-08-01
| | | | | | | | | | | This change was motivated by a need to write pure Skylark rules that expose their own objc providers so they can be used as deps to other libraries/application targets (e.g., SceneKit/SpriteKit compiled resources, []) without having to whitelist them and wait for a Blaze release. This CL fixes what seems to be a bug in validateRuleDependency, where the behavior in the doc comment implies that it will accept a whitelisted rule name *or* a list of mandatory providers, but as implemented today it seems to require the rule to be whitelisted even if the mandatory native providers matched. RELNOTES: objc_* rules can now depend on any target that returns an "objc" provider. -- MOS_MIGRATED_REVID=128835096
* Experimental java annotation support with unpredictable action ↵Gravatar Rumou Duan2016-07-28
| | | | | | | | | inputs/outputs in j2objc_library behind flag --experimental_j2objc_annotation_processing Also added flag --experimental_zip_tree_artifact to switch on and off the zipping implementation of tree artifact generation. -- MOS_MIGRATED_REVID=128586669
* Update build encyclopedia documentation to make clear that entitlements are ↵Gravatar Googler2016-06-27
| | | | | | | not supported on the Simulator out of the box yet. -- MOS_MIGRATED_REVID=125814847
* Remove breakpad support from bazelGravatar Dmitry Shevchenko2016-06-21
| | | | | -- MOS_MIGRATED_REVID=125385321
* 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
* Support for platform_type="watchos" on apple_binary.Gravatar Chris Parsons2016-06-16
| | | | | | | | | This builds all dependencies linked against watch SDKs instead of iOS SDKs, and builds for the architectures specified in --watchos_multi_cpus RELNOTES: apple_binary supports a new platform_type attribute, which, if set to "watchos", will build dependencies for Apple's watchOS2. -- MOS_MIGRATED_REVID=124980029
* Fix entitlements substitution documentation.Gravatar Peter Schmitt2016-06-16
| | | | | -- MOS_MIGRATED_REVID=124951254
* 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
* Refactoring of Apple Platform detection and usage, to pave the way for ↵Gravatar Chris Parsons2016-05-30
| | | | | | | | | non-IOS Platforms. There are still various places which infer IOS platform type which need to be fixed, but this ensures switching to other platform types is as easy as changing an argument. -- MOS_MIGRATED_REVID=123444548
* 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
* libtool wrapper script to isolate the unfortunate hacks we must make to get ↵Gravatar Chris Parsons2016-05-24
| | | | | | | around apple's buggy libtool tool -- MOS_MIGRATED_REVID=123024674
* Update Bazel native rule documentation to use new ${link} syntax.Gravatar David Chen2016-05-20
| | | | | -- MOS_MIGRATED_REVID=122772973
* ipa_post_processor for ios_extensions uses PlugIns directory instead of Payload Gravatar Googler2016-05-19
| | | | | | | CLEANUP=<fixing documentation> -- MOS_MIGRATED_REVID=122743083
* 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
* Clarify plmerge variable substitution behavior.Gravatar Peter Schmitt2016-04-29
| | | | | -- MOS_MIGRATED_REVID=121074077
* Introduce apple_binary, which links together one or more c-family libraries ↵Gravatar Chris Parsons2016-04-27
| | | | | | | and produces a potentially multi-architecture binary, controlled by the --ios_multi_cpus flag -- MOS_MIGRATED_REVID=120874805
* Include debug entitlements by default when building non-release builds.Gravatar Peter Schmitt2016-04-27
| | | | | | | | | | | The new behavior can be disabled by building with -c opt or --nodevice_debug_entitlements. RELNOTES: iOS apps are signed with get-task-allow=1 unless building with -c opt. -- MOS_MIGRATED_REVID=120827024
* Add a --legacy_external_runfiles optionGravatar Kristina Chodorow2016-04-25
| | | | | | | | This isn't hooked up to anything yet, but is another piece of getting #848 rolled forward. -- MOS_MIGRATED_REVID=120582973
* Automated [] rollback of commit 857cda2c45a5cc68c3fa398311c48c571a64915d and ↵Gravatar Damien Martin-Guillerez2016-04-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | commit 790d2f6009d47fe92cf0cd92a1473bbf0141f32e. *** Reason for rollback *** Broke non-Bazel projects on ci.bazel.io Fixes #1168 *** Original change description *** Move the runfiles for external repositories to under the x.runfiles/ directory This also sets the Bazel workspace name to io_bazel_source. Fixes #848. Relevant to #1116, #1124, RELNOTES[INC]: All repositories are now directly under the x.runfiles directory in the runfiles tree (previously, external repositories were at x.runfiles/main-repo/external/other-repo. This simplifies handling remote repository runfiles considerably, but will break existing references to external repository runfiles.... *** -- MOS_MIGRATED_REVID=120535721
* Refactor CompilationSupport and IntermediateArtifacts to optionally take a ↵Gravatar Chris Parsons2016-04-20
| | | | | | | BuildConfiguration that is not the current rule context's configuration. -- MOS_MIGRATED_REVID=120271518
* Move the runfiles for external repositories to under the x.runfiles/ directoryGravatar Kristina Chodorow2016-04-20
| | | | | | | | | | | | | | | This also sets the Bazel workspace name to io_bazel_source. Fixes #848. Relevant to #1116, #1124, RELNOTES[INC]: All repositories are now directly under the x.runfiles directory in the runfiles tree (previously, external repositories were at x.runfiles/main-repo/external/other-repo. This simplifies handling remote repository runfiles considerably, but will break existing references to external repository runfiles. --- Furthermore, if a Bazel project does not provide a workspace name in the WORKSPACE file, Bazel will now default to using __main__ as the workspace name (instead of "", as previously). The repository's runfiles will appear under x.runfiles/__main__/. -- MOS_MIGRATED_REVID=120224534
* Rename LateBoundLabel#getDefault(Rule, AttributeMap, T) to #resolve().Gravatar Lukacs Berki2016-04-19
| | | | | | | Its old name was confusing because resolve() and getDefault() do radically different things: getDefault() returns a good enough lie for when BuildConfiguration is not available, and resolve() resolves the dependency when we do have a BuildConfiguration. -- MOS_MIGRATED_REVID=120212630
* Introduces experimental_objc_library. This rule builds objc code with the ↵Gravatar Cal Peyser2016-04-18
| | | | | | | c++ rule implementation backend and an OSX crosstool. -- MOS_MIGRATED_REVID=119954578
* Rollback of commit bbf59ed1be85354457ad1d8123cc1973aa3ba298.Gravatar Florian Weikert2016-04-14
| | | | | -- MOS_MIGRATED_REVID=119843072
* Introduces experimental_objc_library. This rule builds objc code with the ↵Gravatar Cal Peyser2016-04-13
| | | | | | | c++ rule implementation backend and an OSX crosstool. -- MOS_MIGRATED_REVID=119660101
* 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
* Allow .o files as sources for objc builds.Gravatar Cal Peyser2016-04-01
| | | | | -- MOS_MIGRATED_REVID=118727286
* Rename swift_binary to swift_library as the intended rule is not executable.Gravatar Dmitry Shevchenko2016-03-30
| | | | | | | RELNOTES: -- MOS_MIGRATED_REVID=118518790
* Restrict file types allowed for "strings" attribute to ".strings".Gravatar Googler2016-03-30
| | | | | | | RELNOTES: Restrict file types allowed for "strings" attribute to ".strings". -- MOS_MIGRATED_REVID=118479031
* Use ENTITLEMENTS_TYPE constant to specify allowed file types for ↵Gravatar Googler2016-03-30
| | | | | | | ":extra_entitlements". -- MOS_MIGRATED_REVID=118473605
* Restrict file types used for "entitlements" attribute to [".entitlements", ↵Gravatar Googler2016-03-29
| | | | | | | | | ".plist"]. RELNOTES: Restrict file types used for "entitlements" attribute to [".entitlements", ".plist"] -- MOS_MIGRATED_REVID=118416261
* 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
* Move several naked strings over to constants as general code cleanup.Gravatar Dave MacLachlan2016-03-28
| | | | | | | RELNOTES: -- MOS_MIGRATED_REVID=118242131
* Remove unused test code, and clean up documentation regarding launch images ↵Gravatar Dave MacLachlan2016-03-25
| | | | | | | | | and storyboards. RELNOTES: -- MOS_MIGRATED_REVID=118077315
* Refactor spawnXcrunActionBuilder to take an explicit apple platform.Gravatar Chris Parsons2016-03-24
| | | | | | | | | This both starts to clean up the code (making it clearer which platform each action is targeted to, caller by caller), as well as allows callers to issue certain actions for platforms which are not implicitly ios. We'll still need to migrate callers onto the new method signature. -- MOS_MIGRATED_REVID=117982741
* Introduce the linkopts attribute to the objc family of rules.Gravatar Cal Peyser2016-03-23
| | | | | -- MOS_MIGRATED_REVID=117821922
* Allow passing custom entitlements for iOS signing.Gravatar Peter Schmitt2016-03-22
| | | | | | | | RELNOTES[NEW]: --extra_entitlements allows passing additional entitlements for iOS signing -- MOS_MIGRATED_REVID=117735783
* Remove deprecated objc_options.Gravatar Dave MacLachlan2016-03-17
| | | | | | | RELNOTES[INC]: Any project that depended on the objc_options rule will be broken. Can be fixed by adding attrs (infoplists,copts) directly to rules depending on the options. -- MOS_MIGRATED_REVID=117393853
* Move dump_syms from //tools/objc to //tools/osx. This will allow it to be ↵Gravatar Cal Peyser2016-03-15
| | | | | | | referenced from the crosstool without crossing package boundaries. -- MOS_MIGRATED_REVID=117137594
* Removes restriction on having both a launchimage and a launchstoryboard in a ↵Gravatar Dave MacLachlan2016-03-11
| | | | | | | given application as there are cases where you want both. -- MOS_MIGRATED_REVID=116998425
* Minor documentation wording fix.Gravatar Erik Abair2016-03-11
| | | | | -- MOS_MIGRATED_REVID=116990273
* Make ipa_post_processor documentation show up.Gravatar Peter Schmitt2016-03-08
| | | | | -- MOS_MIGRATED_REVID=116595467
* Replace objc_dummy.m with objc_dummy.mm.Gravatar Googler2016-03-08
| | | | | -- MOS_MIGRATED_REVID=116593165
* Add support for resources to bundling rules.Gravatar Dave MacLachlan2016-03-08
| | | | | | | Will need to release before we can remove resources from objcbinary rules. -- MOS_MIGRATED_REVID=116571890
* Add stronger language about pch files and that they shouldn't be used.Gravatar Dave MacLachlan2016-03-01
| | | | | -- MOS_MIGRATED_REVID=116017697
* Add user-defined IPA post-processors.Gravatar Peter Schmitt2016-02-23
| | | | | | | RELNOTES[NEW]: iOS ipa_post_processor attribute allows for user-defined IPA edits. -- MOS_MIGRATED_REVID=115338312
* Add ExecutionRequirements target that is generally available to rule ↵Gravatar Cal Peyser2016-02-23
| | | | | | | implementations. -- MOS_MIGRATED_REVID=115252203
* 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
* Replace dummy.c with dummy.m to allow preprocessing of objc source code to ↵Gravatar Cal Peyser2016-02-17
| | | | | | | import objc frameworks. -- MOS_MIGRATED_REVID=114761121
* Implement TODO from: ↵Gravatar Greg Estren2016-02-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://github.com/bazelbuild/bazel/blo[]fbbd6a32b95ba746f09dae1eaeaccf675cd5b3/src/main/java/com/google/devtools/build/lib/packages/Attribute.java#L1045 This allows the default value computation for latebound attributes to consider the values of configurable attributes. This is most directly useful for user-definable Skylark defaults, which have full access to the values of all non-latebound attributes. Without this change, this kind of scenario crashes Bazel. For example: ------------------ select_rules.bzl: ------------------ def _impl(ctx): ctx.file_action( output=ctx.outputs.out_file, content=ctx.attr.string_value, ) return struct() # Bug does not manifest without using this as a default. def _derived_value(attrs, _): return Label("//some:dep") selector_rule = rule( implementation=_impl, attrs={ "string_value": attr.string(default=""), "out_file": attr.output(), "_derived": attr.label(default=_derived_value), }, output_to_genfiles=True, ) def selector_macro(name, out_file="", string_value=""): # This will fail with selectors. selector_rule( name="%s_skylark" % name, string_value=string_value, out_file=out_file + ".skylark", ) # This does not. native.genrule( name="%s_genrule" % name, cmd="echo '" + string_value + "' > $@", outs=[out_file + ".genrule"], ) native.filegroup( name=name, srcs=[":%s_genrule" % name, "%s_skylark" % name], ) ------------------ BUILD.bzl: ------------------ config_setting( name = "selector", values = {"compilation_mode": "opt"}, ) selector_macro( name = "this_rule", string_value = """soup? """ + select({ ":selector": "no, thank you.", "//conditions:default": "yes, please!!", }), out_file = "this_rule.txt", ) -- MOS_MIGRATED_REVID=114326474