-
Notifications
You must be signed in to change notification settings - Fork 85
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
64650d5
commit b7b624b
Showing
34 changed files
with
792 additions
and
191 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,17 @@ | ||
load("@bazel_skylib//:bzl_library.bzl", "bzl_library") | ||
|
||
package(default_visibility = ["//rules/library:__pkg__"]) | ||
|
||
exports_files( | ||
["xcspecs.bzl"], | ||
visibility = ["//docs:__pkg__"], | ||
) | ||
|
||
bzl_library( | ||
name = "xcspecs", | ||
srcs = [ | ||
"xcspec_evals.bzl", | ||
"xcspecs.bzl", | ||
], | ||
visibility = ["//visibility:public"], | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
<!-- Generated with Stardoc: http://skydoc.bazel.build --> | ||
|
||
Defines features specific to rules_ios | ||
|
||
- `apple.virtualize_frameworks` | ||
- Virtualize means that swift,clang read from llvm's in-memory file system | ||
|
||
- `xcode.compile_with_xcode` | ||
- Some of the rules need to work sligntly differently under pure Xcode mode | ||
|
||
- `apple.arm64_simulator_use_device_deps` | ||
- Use the ARM deps for the simulator - see rules/import_middleman.bzl | ||
|
||
- `swift.swift_disable_import_underlying_module` | ||
- When set disable passing the `-import-underlying-module` copt to `swift_library` targets | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
<!-- Generated with Stardoc: http://skydoc.bazel.build --> | ||
|
||
|
||
|
||
<a id="force_load_direct_deps"></a> | ||
|
||
## force_load_direct_deps | ||
|
||
<pre> | ||
force_load_direct_deps(<a href="#force_load_direct_deps-name">name</a>, <a href="#force_load_direct_deps-deps">deps</a>, <a href="#force_load_direct_deps-should_force_load">should_force_load</a>) | ||
</pre> | ||
|
||
A rule to link with `-force_load` for direct`deps` | ||
|
||
ld has different behavior when loading members of a static library VS objects | ||
as far as visibility. Under `-dynamic` | ||
- linked _swift object files_ can have public visibility | ||
- symbols from _swift static libraries_ are omitted unless used, and not | ||
visible otherwise | ||
|
||
By using `-force_load`, we can load static libraries in the attributes of an | ||
application's direct depenencies. These args need go at the _front_ of the | ||
linker invocation otherwise these arguments don't work with lds logic. | ||
|
||
Why not put it into `rules_apple`? Ideally it could be, and perhaps consider a | ||
PR to there .The underlying java rule, `AppleBinary.linkMultiArchBinary` | ||
places `extraLinkopts` at the end of the linker invocation. At the time of | ||
writing these args need to go into the current rule context where | ||
`AppleBinary.linkMultiArchBinary` is called. | ||
|
||
One use case of this is that iOS developers want to load above mentioned | ||
symbols from applications. Another alternate could be to create an aspect, | ||
that actually generates a different application and linker invocation instead | ||
of force loading symbols. This could be more complicated from an integration | ||
perspective so it isn't used. | ||
|
||
**ATTRIBUTES** | ||
|
||
|
||
| Name | Description | Type | Mandatory | Default | | ||
| :------------- | :------------- | :------------- | :------------- | :------------- | | ||
| <a id="force_load_direct_deps-name"></a>name | A unique name for this target. | <a href="https://bazel.build/concepts/labels#target-names">Name</a> | required | | | ||
| <a id="force_load_direct_deps-deps"></a>deps | - | <a href="https://bazel.build/concepts/labels">List of labels</a> | optional | `[]` | | ||
| <a id="force_load_direct_deps-should_force_load"></a>should_force_load | Allows parametrically enabling the functionality in this rule. | Boolean | optional | `True` | | ||
|
||
|
Oops, something went wrong.