编译器对象 (compiler
)
该对象由 meson.get_compiler()
返回。它代表特定语言的编译器,允许您查询其属性。
返回值
编译器对象由以下函数和方法返回
这些编译器检查不会使用通过 add_*_arguments()
添加的编译器参数,也不会使用命令行上的 -Dlang_args
或环境中的 CFLAGS
/LDFLAGS
等。因此,您可以确信测试将完全独立,并且不会因为构建文件其他部分或用户添加的自定义标志而失败。
请注意,如果您有一个包含所有依赖项的单一前缀,您可能会发现将环境变量 C_INCLUDE_PATH
(用于 GCC/Clang)和 INCLUDE
(用于 MSVC)追加到环境变量,以及将 LIBRARY_PATH
(用于 GCC/Clang)和 LIB
(用于 MSVC)追加到环境变量,以扩展默认的包含路径和库搜索路径更轻松。
但是,在交叉编译时,GCC 会忽略这些变量。在这种情况下,您需要使用规格文件。请参见:http://www.mingw.org/wiki/SpecsFileHOWTO
编译器对象方法
compiler.alignment()
返回指定类型的对齐方式。对于类似 C 的语言,在原生编译时会隐式包含头文件 stddef.h
和 stdio.h
,在交叉编译时只包含 stddef.h
。
签名
# Returns the alignment of the specified type
int alignment(
str typename, # The name of the type to check
# Keyword arguments:
args : list[str] # Used to pass a list of compiler arguments
dependencies : dep | list[dep] # Additionally dependencies required for compiling and / or linking
prefix : str | list[str] # Used to add `#include`s and other things that are required
)
参数
方法 compiler.alignment()
接受以下位置参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
typename |
str |
要检查的类型的名称。 |
|
最后,compiler.alignment()
接受以下关键字参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
args |
list [str ] |
用于传递编译器参数列表。通常支持通过 这是因为可以通过 |
|
dependencies |
dep | list [dep ] |
另外,编译和/或链接所需的依赖项。 |
|
prefix |
str | list [str ] |
用于添加 |
|
compiler.check_header()
如果指定的头文件在指定的前缀、依赖项和参数下是“可用的”,则返回 true。
签名
(自 0.47.0 起)
# Returns true if the specified header is *usable*
bool check_header(
str header_name, # The header to check
# Keyword arguments:
args : list[str] # Used to pass a list of compiler arguments
dependencies : dep | list[dep] # Additionally dependencies required for compiling and / or linking
include_directories : inc | list[inc] # Extra directories for header searches
no_builtin_args : bool # When set to `true`, the compiler arguments controlled by built-in configuration options are not added
prefix : str | list[str] # Used to add `#include`s and other things that are required
required : bool | feature # When set to `true`, Meson will halt if the header check fails
)
参数
方法 compiler.check_header()
接受以下位置参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
header_name |
str |
要检查的头文件。 |
|
最后,compiler.check_header()
接受以下关键字参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
args |
list [str ] |
用于传递编译器参数列表。通常支持通过 这是因为可以通过 |
|
dependencies |
dep | list [dep ] |
另外,编译和/或链接所需的依赖项。 |
|
include_directories |
inc | list [inc ] |
头文件搜索的额外目录。 |
(自 0.38.0 起) |
no_builtin_args |
bool |
当设置为 |
|
prefix |
str | list [str ] |
用于添加 |
|
required |
bool | feature |
当设置为 |
(自 0.50.0 起)
|
compiler.cmd_array()
返回一个包含编译器命令的数组。
签名
list[str] cmd_array()
compiler.compiles()
如果代码编译成功,则返回 true。
签名
# Returns true if the code compiles
bool compiles(
str | file code, # The source code to check
# Keyword arguments:
args : list[str] # Used to pass a list of compiler arguments
dependencies : dep | list[dep] # Additionally dependencies required for compiling and / or linking
include_directories : inc | list[inc] # Extra directories for header searches
name : str # The name to use for printing a message about the compiler check
no_builtin_args : bool # When set to `true`, the compiler arguments controlled by built-in configuration options are not added
required : bool | feature # When set to `true`, Meson will halt if the check fails
werror : bool # When set to `true`, compiler warnings are treated as error
)
参数
方法 compiler.compiles()
接受以下位置参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
code |
str | file |
要检查的源代码。 如果传递字符串,则直接使用代码。如果传递 |
|
最后,compiler.compiles()
接受以下关键字参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
args |
list [str ] |
用于传递编译器参数列表。通常支持通过 这是因为可以通过 |
|
dependencies |
dep | list [dep ] |
另外,编译和/或链接所需的依赖项。 |
|
include_directories |
inc | list [inc ] |
头文件搜索的额外目录。 |
(自 0.38.0 起) |
name |
str |
用于打印有关编译器检查消息的名称。如果没有传递此关键字参数,则不会打印有关检查的消息。 |
|
no_builtin_args |
bool |
当设置为 |
|
required |
bool | feature |
当设置为 |
(自 1.5.0 起)
|
werror |
bool |
当设置为 |
(自 1.3.0 起)
|
compiler.compute_int()
计算给定表达式的值(例如 1 + 2
)。交叉编译时,这将使用迭代算法进行评估,您可以指定关键字参数 low
(默认为 -1024)、high
(默认为 1024)和 guess
来指定搜索的最大值和最小值以及要首先尝试的值。对于类似 C 的语言,在原生编译时会隐式包含头文件 stddef.h
和 stdio.h
,在交叉编译时只包含 stddef.h
。
签名
(自 0.40.0 起)
# Computes the value of the given expression
int compute_int(
str expr, # The expression to compute
# Keyword arguments:
args : list[str] # Used to pass a list of compiler arguments
dependencies : dep | list[dep] # Additionally dependencies required for compiling and / or linking
guess : int # The value to try first
high : int # The max value
include_directories : inc | list[inc] # Extra directories for header searches
low : int # The min value
no_builtin_args : bool # When set to `true`, the compiler arguments controlled by built-in configuration options are not added
prefix : str | list[str] # Used to add `#include`s and other things that are required
)
参数
方法 compiler.compute_int()
接受以下位置参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
expr |
str |
要计算的表达式。 |
|
最后,compiler.compute_int()
接受以下关键字参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
args |
list [str ] |
用于传递编译器参数列表。通常支持通过 这是因为可以通过 |
|
dependencies |
dep | list [dep ] |
另外,编译和/或链接所需的依赖项。 |
|
guess |
int |
要首先尝试的值。 |
|
high |
int |
最大值。 |
|
include_directories |
inc | list [inc ] |
头文件搜索的额外目录。 |
(自 0.38.0 起) |
low |
int |
最小值。 |
|
no_builtin_args |
bool |
当设置为 |
|
prefix |
str | list [str ] |
用于添加 |
|
compiler.find_library()
尝试查找位置参数中指定的库。
签名
# Tries to find the library specified in the positional argument
dep find_library(
str libname, # The library to find
# Keyword arguments:
dirs : list[str] # Additional directories to search in
disabler : bool # If `true`, this method will return a disabler
on a failed check.
has_headers : list[str] # List of headers that must be found as well
header_args : list[str] # When the `has_headers` kwarg is also used, this argument is passed to
header_dependencies : dep | list[dep] # When the `has_headers` kwarg is also used, this argument is passed to
header_include_directories : inc | list[inc] # When the `has_headers` kwarg is also used, this argument is passed to
header_no_builtin_args : bool # When the `has_headers` kwarg is also used, this argument is passed to
header_prefix : str # When the `has_headers` kwarg is also used, this argument is passed to
required : bool | feature # If set `true`, Meson will abort with an error if the library could not
static : bool # If `true`, the search is limited to static libraries only
)
参数
方法 compiler.find_library()
接受以下位置参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
libname |
str |
要查找的库。 |
|
最后,compiler.find_library()
接受以下关键字参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
dirs |
list [str ] |
要搜索的其他目录。 默认情况下,库将在系统库目录(例如 /usr/lib)中搜索。在这里指定更多目录会导致 Meson 也在这些目录以及系统目录中搜索。 |
|
disabler |
bool |
如果为 |
(自 0.49.0 起)
|
has_headers |
list [str ] |
必须找到的头文件列表。此检查等效于使用 当使用此关键字参数时, |
(自 0.50.0 起) |
header_args |
list [str ] |
当也使用 |
(自 0.51.0 起) |
header_dependencies |
dep | list [dep ] |
当也使用 |
(自 0.51.0 起) |
header_include_directories |
inc | list [inc ] |
当也使用 |
(自 0.51.0 起) |
header_no_builtin_args |
bool |
当也使用 |
(自 0.51.0 起)
|
header_prefix |
str |
当也使用 |
(自 0.51.0 起) |
required |
bool | feature |
如果设置为 当设置为 (自 0.47.0 起) |
|
static |
bool |
如果为 |
(自 0.51.0 起)
|
compiler.first_supported_argument()
给定一个字符串列表,返回一个包含第一个通过 compiler.has_argument()
测试的参数的单元素列表,如果没有任何参数通过测试,则返回一个空数组。
签名
(自 0.43.0 起)
# Given a list of strings, returns a single-element list containing the first
list[str] first_supported_argument(
str arg..., # The arguments to check
)
参数
该方法接受 0
到 infinity
个可变参数(arg...
)的类型为
。str
要检查的参数。
compiler.first_supported_link_argument()
给定一个字符串列表,返回第一个通过 compiler.has_link_argument()
测试的参数,如果没有任何参数通过测试,则返回一个空数组。
签名
(自 0.46.0 起)
# Given a list of strings, returns the first argument that passes the
list[str] first_supported_link_argument(
str arg..., # The link arguments to check
)
参数
该方法接受 0
到 infinity
个可变参数(arg...
)的类型为
。str
要检查的链接参数。
compiler.get_argument_syntax()
返回一个字符串,标识编译器接受的参数类型。可以是 gcc
、msvc
或未定义的字符串值。此方法用于识别不是 gcc 或 msvc 而是使用这两个编译器之一的相同参数语法的编译器,例如 clang 或 icc,尤其是在它们在不同的操作系统上使用不同的语法时。
签名
(自 0.49.0 起)
str get_argument_syntax()
compiler.get_define()
返回给定预处理器符号的值,以字符串形式表示,如果未定义,则返回空字符串。
(自 0.47.0 起) 此方法将连接字符串文字,就像编译器一样。例如 "a" "b"
将变为 "ab"
。
签名
(自 0.40.0 起)
# Returns the given preprocessor symbol's value
str get_define(
str definename, # The define to check
# Keyword arguments:
args : list[str] # Used to pass a list of compiler arguments
dependencies : dep | list[dep] # Additionally dependencies required for compiling and / or linking
include_directories : inc | list[inc] # Extra directories for header searches
no_builtin_args : bool # When set to `true`, the compiler arguments controlled by built-in configuration options are not added
prefix : str | list[str] # Used to add `#include`s and other things that are required
)
参数
方法 compiler.get_define()
接受以下位置参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
definename |
str |
要检查的宏定义。 |
|
最后,compiler.get_define()
接受以下关键字参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
args |
list [str ] |
用于传递编译器参数列表。通常支持通过 这是因为可以通过 |
|
dependencies |
dep | list [dep ] |
另外,编译和/或链接所需的依赖项。 |
|
include_directories |
inc | list [inc ] |
头文件搜索的额外目录。 |
(自 0.38.0 起) |
no_builtin_args |
bool |
当设置为 |
|
prefix |
str | list [str ] |
用于添加 |
|
compiler.get_id()
返回一个字符串,标识编译器。例如,gcc
、msvc
、以及更多。
签名
str get_id()
compiler.get_linker_id()
返回一个字符串,标识链接器。例如,ld.bfd
、link
、以及更多。
签名
(自 0.53.0 起)
str get_linker_id()
compiler.get_supported_arguments()
返回一个数组,其中只包含编译器支持的参数,就好像对它们分别调用了 compiler.has_argument()
一样。
签名
(自 0.43.0 起)
# Returns an array containing only the arguments supported by the compiler,
list[str] get_supported_arguments(
str arg..., # The arguments to check
# Keyword arguments:
checked : str # Supported values:
)
参数
该方法接受 0
到 infinity
个可变参数(arg...
)的类型为
。str
要检查的参数。
方法 compiler.get_supported_arguments()
接受以下关键字参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
checked |
str |
支持的值
|
(自 0.59.0)
|
compiler.get_supported_function_attributes()
返回一个数组,其中包含所有支持的 GCC 样式属性名称。等效于对每个属性分别调用 compiler.has_function_attribute()
。
签名
(自 0.48.0)
list[str] get_supported_function_attributes()
compiler.get_supported_link_arguments()
返回一个数组,其中仅包含编译器支持的参数,就像对每个参数分别调用 compiler.has_link_argument()
一样。
签名
(自 0.46.0 起)
# Returns an array containing only the arguments supported by the compiler,
list[str] get_supported_link_arguments(
str arg..., # The link arguments to check
)
参数
该方法接受 0
到 infinity
个可变参数(arg...
)的类型为
。str
要检查的链接参数。
compiler.has_argument()
如果编译器接受指定命令行参数,则返回 true
,即可以编译代码,不会出错或打印有关未知标志的警告。
签名
# Returns `true` if the compiler accepts the specified command line argument,
bool has_argument(
str argument, # The argument to check
# Keyword arguments:
required : bool | feature # When set to `true`, Meson will halt if the check fails
)
参数
方法 compiler.has_argument()
接受以下位置参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
argument |
str |
要检查的参数。 |
|
最后,compiler.has_argument()
接受以下关键字参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
required |
bool | feature |
当设置为 |
(自 1.3.0 起)
|
compiler.has_define()
如果给定的预处理器符号已定义,则返回 true。
签名
(自 1.3.0 起)
# Returns true if the given preprocessor symbol is *defined*
bool has_define(
str definename, # The define to check
# Keyword arguments:
args : list[str] # Used to pass a list of compiler arguments
dependencies : dep | list[dep] # Additionally dependencies required for compiling and / or linking
include_directories : inc | list[inc] # Extra directories for header searches
no_builtin_args : bool # When set to `true`, the compiler arguments controlled by built-in configuration options are not added
prefix : str | list[str] # Used to add `#include`s and other things that are required
)
参数
方法 compiler.has_define()
接受以下位置参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
definename |
str |
要检查的宏定义。 |
|
最后,compiler.has_define()
接受以下关键字参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
args |
list [str ] |
用于传递编译器参数列表。通常支持通过 这是因为可以通过 |
|
dependencies |
dep | list [dep ] |
另外,编译和/或链接所需的依赖项。 |
|
include_directories |
inc | list [inc ] |
头文件搜索的额外目录。 |
(自 0.38.0 起) |
no_builtin_args |
bool |
当设置为 |
|
prefix |
str | list [str ] |
用于添加 |
|
compiler.has_function()
如果给定函数由标准库或使用 args
关键字传递的库提供,则返回 true。
签名
# Returns true if the given function is provided
bool has_function(
str funcname, # The function to check
# Keyword arguments:
args : list[str] # Used to pass a list of compiler arguments
dependencies : dep | list[dep] # Additionally dependencies required for compiling and / or linking
include_directories : inc | list[inc] # Extra directories for header searches
no_builtin_args : bool # When set to `true`, the compiler arguments controlled by built-in configuration options are not added
prefix : str | list[str] # Used to add `#include`s and other things that are required
required : bool | feature # When set to `true`, Meson will halt if the check fails
)
参数
方法 compiler.has_function()
接受以下位置参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
funcname |
str |
要检查的函数。 |
|
最后,compiler.has_function()
接受以下关键字参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
args |
list [str ] |
用于传递编译器参数列表。通常支持通过 这是因为可以通过 |
|
dependencies |
dep | list [dep ] |
另外,编译和/或链接所需的依赖项。 |
|
include_directories |
inc | list [inc ] |
头文件搜索的额外目录。 |
(自 0.38.0 起) |
no_builtin_args |
bool |
当设置为 |
|
prefix |
str | list [str ] |
用于添加 |
|
required |
bool | feature |
当设置为 |
(自 1.3.0 起)
|
compiler.has_function_attribute()
如果编译器支持 GNU 样式 (__attribute__(...)
) name
,则返回 true
。这比手动编译检查更可取,因为它可能针对不支持此类属性的编译器进行了优化。此表 列出了所有支持的属性。
签名
(自 0.48.0)
# Returns `true` if the compiler supports the GNU style (`__attribute__(
bool has_function_attribute(
str name, # The attribute name to check
# Keyword arguments:
required : bool | feature # When set to `true`, Meson will halt if the check fails
)
参数
方法 compiler.has_function_attribute()
接受以下位置参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
name |
str |
要检查的属性名称。 |
|
最后,compiler.has_function_attribute()
接受以下关键字参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
required |
bool | feature |
当设置为 |
(自 1.3.0 起)
|
compiler.has_header()
如果指定标题以指定的前缀、依赖项和参数存在,则返回 true。
此方法比 compiler.check_header()
更快,因为它只进行预处理器检查。
签名
# Returns true if the specified header is *exists*
bool has_header(
str header_name, # The header to check
# Keyword arguments:
args : list[str] # Used to pass a list of compiler arguments
dependencies : dep | list[dep] # Additionally dependencies required for compiling and / or linking
include_directories : inc | list[inc] # Extra directories for header searches
no_builtin_args : bool # When set to `true`, the compiler arguments controlled by built-in configuration options are not added
prefix : str | list[str] # Used to add `#include`s and other things that are required
required : bool | feature # When set to `true`, Meson will halt if the header check fails
)
参数
方法 compiler.has_header()
接受以下位置参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
header_name |
str |
要检查的头文件。 |
|
最后,compiler.has_header()
接受以下关键字参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
args |
list [str ] |
用于传递编译器参数列表。通常支持通过 这是因为可以通过 |
|
dependencies |
dep | list [dep ] |
另外,编译和/或链接所需的依赖项。 |
|
include_directories |
inc | list [inc ] |
头文件搜索的额外目录。 |
(自 0.38.0 起) |
no_builtin_args |
bool |
当设置为 |
|
prefix |
str | list [str ] |
用于添加 |
|
required |
bool | feature |
当设置为 |
(自 0.50.0 起)
|
compiler.has_header_symbol()
检测指定标题中是否声明了特定符号。
此处的符号包括函数、变量、#define
、类型定义等。
签名
# Detects whether a particular symbol is declared in the specified header
bool has_header_symbol(
str header, # The header to check
str symbol, # The symbol to check
# Keyword arguments:
args : list[str] # Used to pass a list of compiler arguments
dependencies : dep | list[dep] # Additionally dependencies required for compiling and / or linking
include_directories : inc | list[inc] # Extra directories for header searches
no_builtin_args : bool # When set to `true`, the compiler arguments controlled by built-in configuration options are not added
prefix : str | list[str] # Used to add `#include`s and other things that are required
required : bool | feature # When set to `true`, Meson will halt if the header check fails
)
参数
方法 compiler.has_header_symbol()
接受以下位置参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
header |
str |
要检查的头文件。 |
|
symbol |
str |
要检查的符号。 |
|
最后,compiler.has_header_symbol()
接受以下关键字参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
args |
list [str ] |
用于传递编译器参数列表。通常支持通过 这是因为可以通过 |
|
dependencies |
dep | list [dep ] |
另外,编译和/或链接所需的依赖项。 |
|
include_directories |
inc | list [inc ] |
头文件搜索的额外目录。 |
(自 0.38.0 起) |
no_builtin_args |
bool |
当设置为 |
|
prefix |
str | list [str ] |
用于添加 |
|
required |
bool | feature |
当设置为 |
(自 0.50.0 起)
|
compiler.has_link_argument()
如果链接器接受指定的命令行参数,则返回 true
,即可以编译和链接代码,不会出错或打印有关未知标志的警告。链接参数将传递给编译器,因此通常应该具有 -Wl,
前缀。在 VisualStudio 上,将添加 /link
参数。
签名
(自 0.46.0 起)
# Returns `true` if the linker accepts the specified command line argument,
bool has_link_argument(
str argument, # The argument to check
# Keyword arguments:
required : bool | feature # When set to `true`, Meson will halt if the check fails
)
参数
方法 compiler.has_link_argument()
接受以下位置参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
argument |
str |
要检查的参数。 |
|
最后,compiler.has_link_argument()
接受以下关键字参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
required |
bool | feature |
当设置为 |
(自 1.3.0 起)
|
compiler.has_member()
如果类型具有指定的成员,则返回 true。
签名
# Returns true if the type has the specified member
bool has_member(
str typename, # The type to check
str membername, # The member to check
# Keyword arguments:
args : list[str] # Used to pass a list of compiler arguments
dependencies : dep | list[dep] # Additionally dependencies required for compiling and / or linking
include_directories : inc | list[inc] # Extra directories for header searches
no_builtin_args : bool # When set to `true`, the compiler arguments controlled by built-in configuration options are not added
prefix : str | list[str] # Used to add `#include`s and other things that are required
required : bool | feature # When set to `true`, Meson will halt if the check fails
)
参数
方法 compiler.has_member()
接受以下位置参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
typename |
str |
要检查的类型。 |
|
membername |
str |
要检查的成员。 |
|
最后,compiler.has_member()
接受以下关键字参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
args |
list [str ] |
用于传递编译器参数列表。通常支持通过 这是因为可以通过 |
|
dependencies |
dep | list [dep ] |
另外,编译和/或链接所需的依赖项。 |
|
include_directories |
inc | list [inc ] |
头文件搜索的额外目录。 |
(自 0.38.0 起) |
no_builtin_args |
bool |
当设置为 |
|
prefix |
str | list [str ] |
用于添加 |
|
required |
bool | feature |
当设置为 |
(自 1.3.0 起)
|
compiler.has_members()
如果类型具有所有指定的成员,则返回 true
。
签名
# Returns `true` if the type has *all* the specified members
bool has_members(
str typename, # The type to check
str member..., # The members to check
# Keyword arguments:
args : list[str] # Used to pass a list of compiler arguments
dependencies : dep | list[dep] # Additionally dependencies required for compiling and / or linking
include_directories : inc | list[inc] # Extra directories for header searches
no_builtin_args : bool # When set to `true`, the compiler arguments controlled by built-in configuration options are not added
prefix : str | list[str] # Used to add `#include`s and other things that are required
required : bool | feature # When set to `true`, Meson will halt if the check fails
)
参数
方法 compiler.has_members()
接受以下位置参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
typename |
str |
要检查的类型。 |
|
此外,该方法还接受 1
到 infinity
个可变参数 (member...
),类型为
。str
要检查的成员
最后,compiler.has_members()
接受以下关键字参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
args |
list [str ] |
用于传递编译器参数列表。通常支持通过 这是因为可以通过 |
|
dependencies |
dep | list [dep ] |
另外,编译和/或链接所需的依赖项。 |
|
include_directories |
inc | list [inc ] |
头文件搜索的额外目录。 |
(自 0.38.0 起) |
no_builtin_args |
bool |
当设置为 |
|
prefix |
str | list [str ] |
用于添加 |
|
required |
bool | feature |
当设置为 |
(自 1.3.0 起)
|
compiler.has_multi_arguments()
与 compiler.has_argument()
相同,但接受多个参数,并在单个编译调用中使用它们。
签名
(自 0.37.0)
# the same as compiler.has_argument()
but takes multiple arguments
bool has_multi_arguments(
str arg..., # The arguments to check
# Keyword arguments:
required : bool | feature # When set to `true`, Meson will halt if the check fails
)
参数
该方法接受 0
到 infinity
个可变参数(arg...
)的类型为
。str
要检查的参数。
方法 compiler.has_multi_arguments()
接受以下关键字参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
required |
bool | feature |
当设置为 |
(自 1.3.0 起)
|
compiler.has_multi_link_arguments()
与 compiler.has_link_argument()
相同,但接受多个参数,并在单个编译调用中使用它们。
签名
(自 0.46.0 起)
# the same as compiler.has_link_argument()
but takes multiple arguments
bool has_multi_link_arguments(
str arg..., # The link arguments to check
# Keyword arguments:
required : bool | feature # When set to `true`, Meson will halt if the check fails
)
参数
该方法接受 0
到 infinity
个可变参数(arg...
)的类型为
。str
要检查的链接参数。
方法 compiler.has_multi_link_arguments()
接受以下关键字参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
required |
bool | feature |
当设置为 |
(自 1.3.0 起)
|
compiler.has_type()
如果指定的标记是类型,则返回 true
。
签名
# Returns `true` if the specified token is a type
bool has_type(
str typename, # The type to check
# Keyword arguments:
args : list[str] # Used to pass a list of compiler arguments
dependencies : dep | list[dep] # Additionally dependencies required for compiling and / or linking
include_directories : inc | list[inc] # Extra directories for header searches
no_builtin_args : bool # When set to `true`, the compiler arguments controlled by built-in configuration options are not added
prefix : str | list[str] # Used to add `#include`s and other things that are required
required : bool | feature # When set to `true`, Meson will halt if the check fails
)
参数
方法 compiler.has_type()
接受以下位置参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
typename |
str |
要检查的类型。 |
|
最后,compiler.has_type()
接受以下关键字参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
args |
list [str ] |
用于传递编译器参数列表。通常支持通过 这是因为可以通过 |
|
dependencies |
dep | list [dep ] |
另外,编译和/或链接所需的依赖项。 |
|
include_directories |
inc | list [inc ] |
头文件搜索的额外目录。 |
(自 0.38.0 起) |
no_builtin_args |
bool |
当设置为 |
|
prefix |
str | list [str ] |
用于添加 |
|
required |
bool | feature |
当设置为 |
(自 1.3.0 起)
|
compiler.links()
如果代码编译并链接,则返回 true。
自 0.60.0,如果 file
对象的后缀与编译器对象的语言不匹配,则使用与后缀相对应的编译器来编译源代码,而使用 links
方法的目标来链接生成的 obj 文件。
签名
# Returns true if the code compiles and links
bool links(
str | file code, # The source code to check
# Keyword arguments:
args : list[str] # Used to pass a list of compiler arguments
dependencies : dep | list[dep] # Additionally dependencies required for compiling and / or linking
include_directories : inc | list[inc] # Extra directories for header searches
name : str # The name to use for printing a message about the compiler check
no_builtin_args : bool # When set to `true`, the compiler arguments controlled by built-in configuration options are not added
required : bool | feature # When set to `true`, Meson will halt if the check fails
werror : bool # When set to `true`, compiler warnings are treated as error
)
参数
方法 compiler.links()
接受以下位置参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
code |
str | file |
要检查的源代码。 如果传递字符串,则直接使用代码。如果传递 |
|
最后,compiler.links()
接受以下关键字参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
args |
list [str ] |
用于传递编译器参数列表。通常支持通过 这是因为可以通过 |
|
dependencies |
dep | list [dep ] |
另外,编译和/或链接所需的依赖项。 |
|
include_directories |
inc | list [inc ] |
头文件搜索的额外目录。 |
(自 0.38.0 起) |
name |
str |
用于打印有关编译器检查消息的名称。如果没有传递此关键字参数,则不会打印有关检查的消息。 |
|
no_builtin_args |
bool |
当设置为 |
|
required |
bool | feature |
当设置为 |
(自 1.5.0 起)
|
werror |
bool |
当设置为 |
(自 1.3.0 起)
|
compiler.preprocess()
预处理源文件列表,但不要编译它们。预处理器将接收与正常编译相同的参数(包含目录、定义等)。这包括例如使用 add_project_arguments()
添加的参数,或在命令行中使用 -Dc_args=-DFOO
添加的参数。
签名
(自 0.64.0)
# Preprocess a list of source files but do not compile them
list[custom_idx] preprocess(
str | file | custom_tgt | custom_idx | generated_list source..., # Input source to preprocess
# Keyword arguments:
compile_args : list[str] # Extra flags to pass to the preprocessor
dependencies : dep | list[dep] # Additionally dependencies required
depends : list[build_tgt | custom_tgt] # Specifies that this target depends on the specified
include_directories : inc | list[inc] # Extra directories for header searches
output : str # Template for name of preprocessed files: `@PLAINNAME@` is replaced by
)
参数
该方法接受 0
到 infinity
个可变参数 (source...
),类型为
。str
| file
| custom_tgt
| custom_idx
| generated_list
要预处理的输入源。支持以下类型
-
相对于当前源目录的字符串
-
file
对象,在任何前面的构建文件中定义 -
配置时生成器的返回值,例如
configure_file()
-
构建时生成器的返回值,例如
custom_target()
或generator.process()
方法
compiler.preprocess()
接受以下关键字参数名称 类型 描述 标签 compile_args
list
[str
]要传递给预处理器的额外标志
dependencies
dep
|list
[dep
]此外还需要的依赖项。
(自 1.1.0)
depends
list
[build_tgt
|custom_tgt
]指定此目标依赖于指定的 target(s)。在开始预处理输入之前,应先构建这些 target。
(自 1.4.0)
include_directories
inc
|list
[inc
]头文件搜索的额外目录。
(自 0.38.0 起)
output
str
预处理文件的名称模板:
@PLAINNAME@
将替换为源文件名,@BASENAME@
将替换为不带扩展名的源文件名。
compiler.run()
尝试编译并执行给定的代码片段。
签名
# Attempts to compile and execute the given code fragment
runresult run(
str | file code, # The source code to check
# Keyword arguments:
args : list[str] # Used to pass a list of compiler arguments
dependencies : dep | list[dep] # Additionally dependencies required for compiling and / or linking
include_directories : inc | list[inc] # Extra directories for header searches
name : str # The name to use for printing a message about the compiler check
no_builtin_args : bool # When set to `true`, the compiler arguments controlled by built-in configuration options are not added
required : bool | feature # When set to `true`, Meson will halt if the check fails
werror : bool # When set to `true`, compiler warnings are treated as error
)
参数
方法 compiler.run()
接受以下位置参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
code |
str | file |
要检查的源代码。 如果传递字符串,则直接使用代码。如果传递 |
|
最后,compiler.run()
接受以下关键字参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
args |
list [str ] |
用于传递编译器参数列表。通常支持通过 这是因为可以通过 |
|
dependencies |
dep | list [dep ] |
另外,编译和/或链接所需的依赖项。 |
|
include_directories |
inc | list [inc ] |
头文件搜索的额外目录。 |
(自 0.38.0 起) |
name |
str |
用于打印有关编译器检查消息的名称。如果没有传递此关键字参数,则不会打印有关检查的消息。 |
|
no_builtin_args |
bool |
当设置为 |
|
required |
bool | feature |
当设置为 |
(自 1.5.0 起)
|
werror |
bool |
当设置为 |
(自 1.3.0 起)
|
compiler.sizeof()
返回给定类型的大小(例如 'int'
),如果类型未知,则返回 -1。对于类 C 语言,隐式包含标头 stddef.h
和 stdio.h
以进行本机编译,在交叉编译时仅包含 stddef.h
。
签名
# returns the size of the given type (e
int sizeof(
str typename, # The type to compute
# Keyword arguments:
args : list[str] # Used to pass a list of compiler arguments
dependencies : dep | list[dep] # Additionally dependencies required for compiling and / or linking
include_directories : inc | list[inc] # Extra directories for header searches
no_builtin_args : bool # When set to `true`, the compiler arguments controlled by built-in configuration options are not added
prefix : str | list[str] # Used to add `#include`s and other things that are required
)
参数
方法 compiler.sizeof()
接受以下位置参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
typename |
str |
要计算的类型。 |
|
最后,compiler.sizeof()
接受以下关键字参数
名称 | 类型 | 描述 | 标签 |
---|---|---|---|
args |
list [str ] |
用于传递编译器参数列表。通常支持通过 这是因为可以通过 |
|
dependencies |
dep | list [dep ] |
另外,编译和/或链接所需的依赖项。 |
|
include_directories |
inc | list [inc ] |
头文件搜索的额外目录。 |
(自 0.38.0 起) |
no_builtin_args |
bool |
当设置为 |
|
prefix |
str | list [str ] |
用于添加 |
|
compiler.symbols_have_underscore_prefix()
如果 C 符号改编是使用一个下划线 (_
) 作为符号的前缀,则返回 true
。
签名
(自 0.37.0)
bool symbols_have_underscore_prefix()
compiler.version()
将编译器的版本号作为字符串返回。
签名
str version()
搜索结果为