规则
objc_import
查看规则源代码objc_import(name, deps, hdrs, alwayslink, archives, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, includes, restricted_to, sdk_dylibs, sdk_frameworks, sdk_includes, tags, target_compatible_with, testonly, textual_hdrs, toolchains, visibility, weak_sdk_frameworks)
此规则以
.a 文件的形式封装了已编译的静态库。它还允许使用相同的
属性导出标头和资源,这些属性受 objc_library 支持。
实参
| 属性 | |
|---|---|
name |
名称;必需 此目标的唯一名称。 |
deps
|
此目标依赖的目标列表。 |
hdrs
|
此库发布的 C、C++、Objective-C 和 Objective-C++ 标头文件列表
供依赖规则中的来源包含。
这些标头描述了库的公共接口,并且可供此规则或依赖规则中的来源包含。不打算让此库的客户端包含的标头 应改为列在 srcs 属性中。 如果启用了模块,这些标头将与来源分开编译。 |
alwayslink
|
布尔值;默认值为 srcs 和 non_arc_srcs 中列出的文件的所有对象文件,即使某些文件不包含二进制文件引用的
符号也是如此。
如果您的代码未被二进制文件中的代码显式调用(例如,如果您的代码注册以接收某些服务提供的回调),则此功能非常有用。 |
archives
|
标签列表;必需 提供给依赖此目标的 Objective-C 目标的.a 文件列表。
|
includes
|
字符串列表;默认值为 #include/#import 搜索路径列表。
这是为了支持未在其
语句中指定整个工作区路径的第三方库和开源库。
#import/#include
这些路径是相对于软件包目录进行解释的,除了实际的客户端根目录之外,还包括
genfiles 和 bin 根目录(例如 与 COPTS 不同,这些标志是为此规则 及其依赖的每个规则添加的。(注意:不是它依赖的规则!)请务必 小心,因为这可能会产生深远的影响。如有疑问,请改为将 “ -iquote”标志添加到COPTS。 |
sdk_dylibs
|
字符串列表;默认值为 |
sdk_frameworks
|
字符串列表;默认值为 链接顶级 Apple 二进制文件时,系统会链接该二进制文件的 传递依赖关系图中列出的所有 SDK 框架。 |
sdk_includes
|
字符串列表;默认值为 #include/#import 搜索路径列表,其中每个路径都相对于
$(SDKROOT)/usr/include。
|
textual_hdrs
|
此规则中的源文件或此库的用户作为标头包含的 C、C++、Objective-C 和 Objective-C++ 文件列表。与 hdrs 不同,这些文件不会与 来源分开编译。 |
weak_sdk_frameworks
|
字符串列表;默认值为 |
objc_library
查看规则源代码objc_library(name, deps, srcs, data, hdrs, alwayslink, compatible_with, conlyopts, copts, cxxopts, defines, deprecation, distribs, enable_modules, exec_compatible_with, exec_properties, features, implementation_deps, includes, linkopts, module_map, module_name, non_arc_srcs, pch, restricted_to, sdk_dylibs, sdk_frameworks, sdk_includes, stamp, tags, target_compatible_with, testonly, textual_hdrs, toolchains, visibility, weak_sdk_frameworks)
此规则会根据给定的 Objective-C 源文件生成静态库。
实参
| 属性 | |
|---|---|
name |
名称;必需 此目标的唯一名称。 |
deps
|
此目标依赖的目标列表。 |
srcs
|
C、C++、Objective-C 和 Objective-C++ 来源文件和标头 文件,和/或(`.s`、`.S` 或 `.asm`)汇编来源文件列表,这些文件经过处理后会创建 库目标。 这些是您签入的文件,以及任何生成的文件。 来源文件使用 Clang 编译为 .o 文件。此目标的 srcs 属性中的任何来源或标头都可以包含/导入标头文件 ,但 hdrs 中的标头或依赖此规则的任何目标都不能包含/导入标头文件 。此外,还可以将预编译的 .o 文件作为 srcs 提供。请务必确保提供的 .o 文件和构建的架构一致,以避免出现缺少符号链接器错误。 |
hdrs
|
此库发布的 C、C++、Objective-C 和 Objective-C++ 标头文件列表
供依赖规则中的来源包含。
这些标头描述了库的公共接口,并且可供此规则或依赖规则中的来源包含。不打算让此库的客户端包含的标头 应改为列在 srcs 属性中。 如果启用了模块,这些标头将与来源分开编译。 |
alwayslink
|
布尔值;默认值为 srcs 和 non_arc_srcs 中列出的文件的所有对象文件,即使某些文件不包含二进制文件引用的
符号也是如此。
如果您的代码未被二进制文件中的代码显式调用(例如,如果您的代码注册以接收某些服务提供的回调),则此功能非常有用。 |
conlyopts
|
字符串列表;默认值为 请注意,对于生成的 Xcode 项目,系统会解析 copts 中使用“-I”标志指定的目录路径,如果这些路径是相对路径,则会在其前面加上“$(WORKSPACE_ROOT)/”,并将其添加到关联的 Xcode 目标的标头搜索路径中。 |
copts
|
字符串列表;默认值为 请注意,对于生成的 Xcode 项目,系统会解析 copts 中使用“-I”标志指定的目录路径,如果这些路径是相对路径,则会在其前面加上“$(WORKSPACE_ROOT)/”,并将其添加到关联的 Xcode 目标的标头搜索路径中。 |
cxxopts
|
字符串列表;默认值为 请注意,对于生成的 Xcode 项目,系统会解析 copts 中使用“-I”标志指定的目录路径,如果这些路径是相对路径,则会在其前面加上“$(WORKSPACE_ROOT)/”,并将其添加到关联的 Xcode 目标的标头搜索路径中。 |
defines
|
字符串列表;默认值为 -D 标志。它们应采用 KEY=VALUE 或仅 KEY 的形式,不仅会传递给此目标的编译器(如 copts),还会传递给此目标的所有 objc_ 依赖项。受 "Make 变量" 替换和
Bourne shell 标记化的影响。
|
enable_modules
|
布尔值;默认值为 |
implementation_deps
|
库目标依赖的其他库的列表。与
deps 不同,这些库(及其所有
传递依赖项)的标头和 include 路径仅用于编译此库,而不用于依赖此库的库。使用 implementation_deps 指定的库仍会链接
到依赖此库的二进制目标中。
|
includes
|
字符串列表;默认值为 #include/#import 搜索路径列表。
这是为了支持未在其
语句中指定整个工作区路径的第三方库和开源库。
#import/#include
这些路径是相对于软件包目录进行解释的,除了实际的客户端根目录之外,还包括
genfiles 和 bin 根目录(例如 与 COPTS 不同,这些标志是为此规则 及其依赖的每个规则添加的。(注意:不是它依赖的规则!)请务必 小心,因为这可能会产生深远的影响。如有疑问,请改为将 “ -iquote”标志添加到COPTS。 |
linkopts
|
字符串列表;默认值为 |
module_map
|
标签;默认值为 |
module_name
|
字符串;默认值为 |
non_arc_srcs
|
经过处理后会创建不使用 ARC 的库目标的 Objective-C 文件列表。 此属性中的文件与那些在 srcs 属性中的文件非常相似,但编译时未启用 ARC。 |
pch
|
标签;默认值为 |
sdk_dylibs
|
字符串列表;默认值为 |
sdk_frameworks
|
字符串列表;默认值为 链接顶级 Apple 二进制文件时,系统会链接该二进制文件的 传递依赖关系图中列出的所有 SDK 框架。 |
sdk_includes
|
字符串列表;默认值为 #include/#import 搜索路径列表,其中每个路径都相对于
$(SDKROOT)/usr/include。
|
stamp
|
布尔值;默认值为 |
textual_hdrs
|
此规则中的源文件或此库的用户作为标头包含的 C、C++、Objective-C 和 Objective-C++ 文件列表。与 hdrs 不同,这些文件不会与 来源分开编译。 |
weak_sdk_frameworks
|
字符串列表;默认值为 |