gpt4 book ai didi

google-chrome - 这个 gyp 语法是什么意思?

转载 作者:行者123 更新时间:2023-12-01 23:54:57 24 4
gpt4 key购买 nike

最近在翻chromium代码,发现有一段代码看不懂。文件位于 src/media/media.gyp 谁能用简单的英语解释一下这行的意思?

我不明白的行:

 '<!@(<(pkg-config) --cflags libpulse)',

代码:

['OS!="linux"', {
'sources!': [
'audio/cras/audio_manager_cras.cc',
'audio/cras/audio_manager_cras.h',
'audio/cras/cras_input.cc',
'audio/cras/cras_input.h',
'audio/cras/cras_unified.cc',
'audio/cras/cras_unified.h',
],
}],
['use_pulseaudio==1', {
'cflags': [
'<!@(<(pkg-config) --cflags libpulse)', # <- this line
],
'defines': [
'USE_PULSEAUDIO',
],
'conditions': [
['linux_link_pulseaudio==0', {
'defines': [
'DLOPEN_PULSEAUDIO',
],
'variables': {
'generate_stubs_script': '../tools/generate_stubs/generate_stubs.py',
'extra_header': 'audio/pulse/pulse_stub_header.fragment',
'sig_files': ['audio/pulse/pulse.sigs'],

最佳答案

参见 Command-Expansions in the gyp docs

<!@表示命令扩展

在命令扩展中,括号内的整个字符串被传递给系统的 shell。该命令的输出被分配给一个字符串值,如果使用 @ 字符,该字符串值随后可以在列表上下文中以与变量扩展相同的方式扩展。

例子:

{
'sources': [
'!(echo filename with space.cc)',
],
'libraries': [
'!@(pkg-config --libs-only-l apr-1)',
],
}

将扩展为

{
'sources': [
'filename with space.cc', # no @, expands into a single string
],
'libraries': [ # @ was used, so there's a separate list item for each lib
'-lapr-1',
'-lpthread',
],
}

关于google-chrome - 这个 gyp 语法是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24361735/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com