aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibrary.java
Commit message (Collapse)AuthorAge
* Move expansion functionality to a new classGravatar ulfjack2017-09-29
| | | | | | Progress on #2475. PiperOrigin-RevId: 170473111
* Move RuleConfiguredTarget to lib.analysis.configuredtargets.Gravatar gregce2017-09-19
| | | | | | This is a trivial change with a large file footprint. PiperOrigin-RevId: 169169864
* Automated rollback of commit fc41c430e4de4594a1d699f573d191cbad52a2fb.Gravatar plf2017-09-01
| | | | PiperOrigin-RevId: 167154793
* Move ObjcProvider FLAG into a new provider type (TransitiveSourcesProvider) ↵Gravatar cpeyser2017-08-30
| | | | | | that is accessible to the c++ rules. PiperOrigin-RevId: 166934390
* Rename some of native declared providers according to the new naming scheme.Gravatar dslomov2017-08-21
| | | | | RELNOTES: None PiperOrigin-RevId: 165910455
* 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
* 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
* 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
* Make native declared providers not implement TransitiveInfoCollection.Gravatar dslomov2017-07-12
| | | | | | | | | | | | (Almost) all native declared providers are accessed as such and not as native non-declared providers (inheritors of TransitiveInfoCollaction). There are still three providers that use TransitiveInfoCollection.WithLegacySkylarkName mechanism, I'll address them in the follow-up CL. RELNOTES: None. PiperOrigin-RevId: 161655315
* Specify isTestRule as an input to CompilationSupport instead of from the ↵Gravatar cparsons2017-06-06
| | | | | | | current rule name RELNOTES: None. PiperOrigin-RevId: 158068921
* Remove Xcodege integration from Blaze.Gravatar schmitt2017-06-05
| | | | | RELNOTES: None. PiperOrigin-RevId: 157857216
* Retire the experimental_objc_library rule and --experimental_objc_library flag.Gravatar cpeyser2017-05-04
| | | | | | | | Re-organize ObjcLibraryTest and ExperimentalObjcLibraryTest -> LegacyObjcLibraryTest and CrosstoolObjcLibraryTest, according to the pattern used in the other unit tests. PiperOrigin-RevId: 155120143
* 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
* 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
* Refactor new compilation, archiving, and fully linking logic into a subclass ofGravatar Cal Peyser2016-11-04
| | | | | | | CompilationSupport. -- MOS_MIGRATED_REVID=138185198
* 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
* Add a switch to treat any objc_library like an experimental_objc_library. ThisGravatar Cal Peyser2016-08-23
| | | | | | | will be used to perform tests of the changeover. -- MOS_MIGRATED_REVID=130943982
* Record the category of the artifact to be linked in LinkerInput.Gravatar Lukacs Berki2016-08-12
| | | | | | | | | It's currently only used for sanity checks, but the idea is that we'll use this field to decide what to do with a given linker input instead of inferring things from its file name. Also make artifact name creation a bit simpler by using the same set of variables for compiler and linker outputs. -- MOS_MIGRATED_REVID=129990944
* Refactor C++ rules so that CcLinkingOutputs.libraryIdentifierOf() gets ↵Gravatar Lukacs Berki2016-08-09
| | | | | | | called at places where a CcToolchainProvider is near so that we can use information in it to infer how each input file is linked. -- MOS_MIGRATED_REVID=129729628
* 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
* 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
* 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 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
* 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
* Switch objc rules to standard coverage propagation using ↵Gravatar Peter Schmitt2015-09-22
| | | | | | | InstrumentedFilesCollector. -- MOS_MIGRATED_REVID=103642172
* Separate build-specific types and types inherent to Skylark.Gravatar Lukacs Berki2015-09-21
| | | | | -- MOS_MIGRATED_REVID=103374106
* Generate module maps for each objc_* target with compilation support.Gravatar Googler2015-09-15
| | | | | | | | | This uses CppModuleMap and CppModuleMapAction to generate clang module maps for the target and its transitive dependencies. To enable this feature, you must pass -experimental_objc_enable_module_maps to bazel. For objc_* targets that need to use the "modules" language features (@import, Swift interop, etc), set the "enable_modules" attribute to 1. -- MOS_MIGRATED_REVID=103045673
* Rollback of commit 162d5b276e1539b1acc44afcd4a4ccadcf99023a.Gravatar Googler2015-06-15
| | | | | | | | | | | | | | | | | *** Reason for rollback *** Breaks targets that have the same .m file in both srcs and hdrs. *** Original change description *** Allow private header files in the srcs attribute of objc_* rules. This uses CppModuleMap and CppModuleMapAction to generate clang module maps for the target and its transitive dependencies. clang enforces private header usage through these maps. Right now module maps are interpreted but modules aren't enabled. RELNOTES: Allow private header files in the srcs attribute of objc_* rules. -- MOS_MIGRATED_REVID=95916531
* Allow private header files in the srcs attribute of objc_* rules.Gravatar Googler2015-06-15
| | | | | | | | | This uses CppModuleMap and CppModuleMapAction to generate clang module maps for the target and its transitive dependencies. clang enforces private header usage through these maps. Right now module maps are interpreted but modules aren't enabled. RELNOTES: Allow private header files in the srcs attribute of objc_* rules. -- MOS_MIGRATED_REVID=95844137
* Allow objc_{library,binary} to depend on cc_library.Gravatar Peter Schmitt2015-06-05
| | | | | | | | | | | | | | | | | | | | | | This is an early version of support for this feature, likely still missing a number of edge cases. However the basic functionality should work. To allow a dependency from objc to cc, the following flags will have to be passed to bazel: --experimental_enable_objc_cc_deps --cpu=ios_i386 --crosstool_top=//tools/objc/crosstool:crosstool The feature is also compatible with --ios_multi_cpus, with the familiar values for --ios_cpu (i386, x86_64, armv7, arm64; passed instead of --cpu above). This CL does not contain any Xcode support for CC dependencies yet, they will just not show up in the generated Xcode project. (Second submission after earlier accidental submit before this CL was ready). -- MOS_MIGRATED_REVID=95110081
* Refactor J2ObjCSrcsProvider to have a builder, allowing us to move logic out ↵Gravatar Googler2015-05-29
| | | | | | | of ObjCRuleClasses. -- MOS_MIGRATED_REVID=94693481
* Rollback of commit b66898e44d79ef67f856eaeae711bb461564a3c1.Gravatar Peter Schmitt2015-05-21
| | | | | | | | | | | | | | | | | | | | | | | | | | *** Reason for rollback *** This was accidentally submitted (why did tappresubmit not complain about no LGTM?!) *** Original change description *** Allow objc_{library,binary} to depend on cc_library. This is an early version of support for this feature, likely still missing a number of edge cases. However the basic functionality should work. To allow a dependency from objc to cc, the following flags will have to be passed to bazel: --experimental_enable_objc_cc_deps --experimental_disable_java --cpu=ios_i386 --crosstool_top=//tools/objc/crosstool:crosstool The feature is also compatible with --ios_multi_cpus, with the familiar values f... *** -- MOS_MIGRATED_REVID=94118959
* Allow objc_{library,binary} to depend on cc_library.Gravatar Peter Schmitt2015-05-21
| | | | | | | | | | | | | | | | | | | | | | | | | | This is an early version of support for this feature, likely still missing a number of edge cases. However the basic functionality should work. To allow a dependency from objc to cc, the following flags will have to be passed to bazel: --experimental_enable_objc_cc_deps --experimental_disable_java --cpu=ios_i386 --crosstool_top=//tools/objc/crosstool:crosstool The feature is also compatible with --ios_multi_cpus, with the familiar values for --ios_cpu (i386, x86_64, armv7, arm64). However, using this crosstool and any CPU defined in it (legal values are ios_i386, ios_x86_64, ios_armv7, ios_arm64) will make it impossible to use genrules with java make variables in the same build: Obviously they require java support and no that is not available for iOS CPUs. The new flag --experimental_disable_java has not been tested in any circumstances but the one enabled by this CL so use it with caution. This CL does not contain any Xcode support for CC dependencies yet, they will just not show up in the generated Xcode project. -- MOS_MIGRATED_REVID=94116942
* Simplify OptionsProvider logic.Gravatar Peter Schmitt2015-05-15
| | | | | | | | Eventually objc_options will go away but for now this reduces unnecessary logic and reduces rule/support interdependencies. -- MOS_MIGRATED_REVID=93653491
* Simplify ConfiguredTarget construction.Gravatar Peter Schmitt2015-05-15
| | | | | | | | This is part of a series of changes to reduce/remove ObjcCommon. In this case removing a method that added needless complexity. -- MOS_MIGRATED_REVID=93573019
* Add a genrule that generates a dummy J2ObjC dead code removal script in ↵Gravatar Googler2015-05-15
| | | | | | | tools/objc/BUILD. -- MOS_MIGRATED_REVID=93447039
* RELNOTES:Observe "non_propagated_deps" on objc rules in generated XCode ↵Gravatar Googler2015-04-16
| | | | | | | project files. -- MOS_MIGRATED_REVID=91300378
* 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
* Split ios_application configurations based on --ios_multi_cpus.Gravatar Peter Schmitt2015-03-16
| | | | | | | | | | | | | | | | | | Using the new flag works only on ios_application and ios_extension targets, resulting in their output binaries being "universal" with all given architectures included. Internally this is achieved by splitting the "binary" dependency (and its transitive dependencies) of ios_{application,extension} to be built in one of the architectures using split transitions. The results are then combined. Since an ios_application may depend on ios_extension, we transition back to the top-level configuration when encoutering such a dependency using the newly introduced TOP_LEVEL transition and then split configurations again. RELNOTES: --ios_multi_cpus allows building fat ios_applications. -- MOS_MIGRATED_REVID=88555540
* Add the j2objc libraries as dependencies in IosTest.Gravatar Googler2015-02-24
| | | | | -- MOS_MIGRATED_REVID=87083899