规则
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
|
标签列表;默认值为 这些头文件描述了库的公共接口,并将可供此规则或依赖规则中的来源包含。不应由此库的客户端包含的头文件应改为列在 srcs 属性中。 如果启用模块,这些资源将与源代码分开编译。 |
alwayslink
|
布尔值;默认值为 srcs 和 non_arc_srcs 中列出的文件的所有对象文件,即使其中一些文件不包含二进制文件引用的符号也是如此。如果二进制文件中的代码未明确调用您的代码(例如,您的代码注册接收某些服务提供的回调),此方法非常有用。
|
archives
|
标签列表;必需 提供给依赖于此目标的 Objective-C 目标的.a 文件的列表。
|
includes
|
字符串列表;默认值为 #include/#import 搜索路径的列表。
这是为了支持未在 #import/#include 语句中指定完整工作区路径的第三方和开源库。
这些路径相对于软件包目录进行解析,除了实际客户端根目录之外,还包含 genfiles 和 bin 根目录(例如 与 COPTS 不同,这些标志会为此规则以及依赖于它的每个规则添加。(注意:不是它依赖的规则!)请务必谨慎,因为这可能会产生深远影响。如果不确定,请改为向 COPTS 添加“-iquote”标志。 |
sdk_dylibs
|
字符串列表;默认值为 |
sdk_frameworks
|
字符串列表;默认值为 链接顶级 Apple 二进制文件时,该二进制文件的传递依赖项图中列出的所有 SDK 框架都会被链接。 |
sdk_includes
|
字符串列表;默认值为 #include/#import 搜索路径的列表,其中每个路径都相对于 $(SDKROOT)/usr/include 。
|
textual_hdrs
|
标签列表;默认值为 |
weak_sdk_frameworks
|
字符串列表;默认值为 |
objc_library
查看规则源代码objc_library(name, deps, srcs, data, hdrs, alwayslink, compatible_with, copts, 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
|
标签列表;默认值为 |
hdrs
|
标签列表;默认值为 这些头文件描述了库的公共接口,并将可供此规则或依赖规则中的来源包含。不应由此库的客户端包含的头文件应改为列在 srcs 属性中。 如果启用模块,这些资源将与源代码分开编译。 |
alwayslink
|
布尔值;默认值为 srcs 和 non_arc_srcs 中列出的文件的所有对象文件,即使其中一些文件不包含二进制文件引用的符号也是如此。如果二进制文件中的代码未明确调用您的代码(例如,您的代码注册接收某些服务提供的回调),此方法非常有用。
|
copts
|
字符串列表;默认值为 请注意,对于生成的 Xcode 项目,系统会解析在 copts 中使用“-I”标志指定的目录路径,如果这些路径是相对路径,则会在其前面附加“$(WORKSPACE_ROOT)/”,并将其添加到关联的 Xcode 目标的头文件搜索路径。 |
defines
|
字符串列表;默认值为 -D 标志。它们应采用 KEY=VALUE 或 KEY 格式,并且不仅会传递给此目标的编译器(就像 copts 一样),还会传递给此目标的所有 objc_ 依赖项。会受到 “Make 变量”替换和 Bourne shell 令牌化的影响。
|
enable_modules
|
布尔值;默认值为 |
implementation_deps
|
标签列表;默认值为 deps 不同,这些库的头文件和包含路径(以及它们的所有传递依赖项)仅用于编译此库,而非依赖于此库的库。使用 implementation_deps 指定的库仍会在依赖于此库的二进制目标中关联。
|
includes
|
字符串列表;默认值为 #include/#import 搜索路径的列表。
这是为了支持未在 #import/#include 语句中指定完整工作区路径的第三方和开源库。
这些路径相对于软件包目录进行解析,除了实际客户端根目录之外,还包含 genfiles 和 bin 根目录(例如 与 COPTS 不同,这些标志会为此规则以及依赖于它的每个规则添加。(注意:不是它依赖的规则!)请务必谨慎,因为这可能会产生深远影响。如果不确定,请改为向 COPTS 添加“-iquote”标志。 |
linkopts
|
字符串列表;默认值为 |
module_map
|
标签;默认值为 |
module_name
|
字符串;默认值为 |
non_arc_srcs
|
标签列表;默认值为 |
pch
|
标签;默认值为 |
sdk_dylibs
|
字符串列表;默认值为 |
sdk_frameworks
|
字符串列表;默认值为 链接顶级 Apple 二进制文件时,该二进制文件的传递依赖项图中列出的所有 SDK 框架都会被链接。 |
sdk_includes
|
字符串列表;默认值为 #include/#import 搜索路径的列表,其中每个路径都相对于 $(SDKROOT)/usr/include 。
|
stamp
|
布尔值;默认值为 |
textual_hdrs
|
标签列表;默认值为 |
weak_sdk_frameworks
|
字符串列表;默认值为 |