Skip to content

Commit fa37216

Browse files
Add additional_objc_compiler_inputs to mixed_langauge_library (#1581)
This is needed over someone just adding these inputs to `hdrs`, because of the modulemap generation. --------- Signed-off-by: Brentley Jones <[email protected]>
1 parent 2cc2610 commit fa37216

File tree

2 files changed

+13
-7
lines changed

2 files changed

+13
-7
lines changed

doc/rules.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1066,12 +1066,13 @@ swift_library(
10661066
## mixed_language_library
10671067

10681068
<pre>
1069-
mixed_language_library(*, <a href="#mixed_language_library-name">name</a>, <a href="#mixed_language_library-always_include_developer_search_paths">always_include_developer_search_paths</a>, <a href="#mixed_language_library-alwayslink">alwayslink</a>, <a href="#mixed_language_library-clang_copts">clang_copts</a>,
1070-
<a href="#mixed_language_library-clang_defines">clang_defines</a>, <a href="#mixed_language_library-clang_deps">clang_deps</a>, <a href="#mixed_language_library-clang_srcs">clang_srcs</a>, <a href="#mixed_language_library-data">data</a>, <a href="#mixed_language_library-enable_modules">enable_modules</a>, <a href="#mixed_language_library-hdrs">hdrs</a>, <a href="#mixed_language_library-includes">includes</a>,
1071-
<a href="#mixed_language_library-linkopts">linkopts</a>, <a href="#mixed_language_library-module_map">module_map</a>, <a href="#mixed_language_library-module_name">module_name</a>, <a href="#mixed_language_library-non_arc_srcs">non_arc_srcs</a>, <a href="#mixed_language_library-package_name">package_name</a>, <a href="#mixed_language_library-private_deps">private_deps</a>,
1072-
<a href="#mixed_language_library-sdk_dylibs">sdk_dylibs</a>, <a href="#mixed_language_library-sdk_frameworks">sdk_frameworks</a>, <a href="#mixed_language_library-swift_copts">swift_copts</a>, <a href="#mixed_language_library-swift_defines">swift_defines</a>, <a href="#mixed_language_library-swift_plugins">swift_plugins</a>,
1073-
<a href="#mixed_language_library-swift_srcs">swift_srcs</a>, <a href="#mixed_language_library-swiftc_inputs">swiftc_inputs</a>, <a href="#mixed_language_library-textual_hdrs">textual_hdrs</a>, <a href="#mixed_language_library-umbrella_header">umbrella_header</a>, <a href="#mixed_language_library-weak_sdk_frameworks">weak_sdk_frameworks</a>,
1074-
<a href="#mixed_language_library-deps">deps</a>, <a href="#mixed_language_library-kwargs">**kwargs</a>)
1069+
mixed_language_library(*, <a href="#mixed_language_library-name">name</a>, <a href="#mixed_language_library-additional_objc_compiler_inputs">additional_objc_compiler_inputs</a>,
1070+
<a href="#mixed_language_library-always_include_developer_search_paths">always_include_developer_search_paths</a>, <a href="#mixed_language_library-alwayslink">alwayslink</a>, <a href="#mixed_language_library-clang_copts">clang_copts</a>, <a href="#mixed_language_library-clang_defines">clang_defines</a>,
1071+
<a href="#mixed_language_library-clang_deps">clang_deps</a>, <a href="#mixed_language_library-clang_srcs">clang_srcs</a>, <a href="#mixed_language_library-data">data</a>, <a href="#mixed_language_library-enable_modules">enable_modules</a>, <a href="#mixed_language_library-hdrs">hdrs</a>, <a href="#mixed_language_library-includes">includes</a>, <a href="#mixed_language_library-linkopts">linkopts</a>,
1072+
<a href="#mixed_language_library-module_map">module_map</a>, <a href="#mixed_language_library-module_name">module_name</a>, <a href="#mixed_language_library-non_arc_srcs">non_arc_srcs</a>, <a href="#mixed_language_library-package_name">package_name</a>, <a href="#mixed_language_library-private_deps">private_deps</a>, <a href="#mixed_language_library-sdk_dylibs">sdk_dylibs</a>,
1073+
<a href="#mixed_language_library-sdk_frameworks">sdk_frameworks</a>, <a href="#mixed_language_library-swift_copts">swift_copts</a>, <a href="#mixed_language_library-swift_defines">swift_defines</a>, <a href="#mixed_language_library-swift_plugins">swift_plugins</a>, <a href="#mixed_language_library-swift_srcs">swift_srcs</a>,
1074+
<a href="#mixed_language_library-swiftc_inputs">swiftc_inputs</a>, <a href="#mixed_language_library-textual_hdrs">textual_hdrs</a>, <a href="#mixed_language_library-umbrella_header">umbrella_header</a>, <a href="#mixed_language_library-weak_sdk_frameworks">weak_sdk_frameworks</a>, <a href="#mixed_language_library-deps">deps</a>,
1075+
<a href="#mixed_language_library-kwargs">**kwargs</a>)
10751076
</pre>
10761077

10771078
Creates a mixed language library from a Clang and Swift library target pair.
@@ -1086,6 +1087,7 @@ Once that is the case, this macro will be deprecated.
10861087
| Name | Description | Default Value |
10871088
| :------------- | :------------- | :------------- |
10881089
| <a id="mixed_language_library-name"></a>name | The name of the target. | none |
1090+
| <a id="mixed_language_library-additional_objc_compiler_inputs"></a>additional_objc_compiler_inputs | Additional files that are referenced using `$(location ...)` in attributes that support location expansion. | `[]` |
10891091
| <a id="mixed_language_library-always_include_developer_search_paths"></a>always_include_developer_search_paths | If `True`, the developer framework search paths will be added to the swift compilation command. This enables a Swift module to access `XCTest` without having to mark the target as `testonly = True`. | `False` |
10901092
| <a id="mixed_language_library-alwayslink"></a>alwayslink | If true, any binary that depends (directly or indirectly) on this library will link in all the object files for the files listed in `clang_srcs` and `swift_srcs`, even if some contain no symbols referenced by the binary. This is useful if your code isn't explicitly called by code in the binary; for example, if you rely on runtime checks for protocol conformances added in extensions in the library but do not directly reference any other symbols in the object file that adds that conformance. | `False` |
10911093
| <a id="mixed_language_library-clang_copts"></a>clang_copts | The compiler flags for the clang library. These will only be used for the clang library. If you want them to affect the swift library as well, you need to pass them with `-Xcc` in `swift_copts`. | `[]` |

mixed_language/mixed_language_library.bzl

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ load("//swift:swift_library.bzl", "swift_library")
3636
def mixed_language_library(
3737
*,
3838
name,
39+
additional_objc_compiler_inputs = [],
3940
always_include_developer_search_paths = False,
4041
alwayslink = False,
4142
clang_copts = [],
@@ -72,6 +73,9 @@ def mixed_language_library(
7273
7374
Args:
7475
name: The name of the target.
76+
additional_objc_compiler_inputs: Additional files that are referenced
77+
using `$(location ...)` in attributes that support location
78+
expansion.
7579
always_include_developer_search_paths: If `True`, the developer
7680
framework search paths will be added to the swift compilation
7781
command. This enables a Swift module to access `XCTest` without
@@ -360,7 +364,7 @@ a mixed language Swift library, use a clang only library rule like \
360364
name = clang_library_name,
361365
srcs = clang_srcs,
362366
alwayslink = alwayslink,
363-
hdrs = adjusted_hdrs,
367+
hdrs = adjusted_hdrs + additional_objc_compiler_inputs,
364368
non_arc_srcs = non_arc_srcs,
365369
# `internal_swift_interop_name` isn't needed here because
366370
# `_mixed_language_library` will explciitly set the module name. We set

0 commit comments

Comments
 (0)