我对 gyp 完全陌生,所以请原谅对这个主题的任何无知——我正在尝试将一个使用 gyp 的项目合并到由 make 生成的更大环境中。有问题的 .gyp 文件有一个 C 文件的 -L 选项,它指向一个硬编码的目录。我想将其更改为指向基于父项目的 makefile 中设置的变量的目录。
在构建项目之前,我可以使用 sed 搜索和替换字符串,但这看起来很混乱。我想知道是否可以从 gyp 文件中访问环境变量?
问问题
1908 次
2 回答
5
是的,您可以使用 shell 命令,例如:
...
'include_dirs': [
'<!(echo %OPENSSL_DIR%)/include',
'<!(echo %BOOST_DIR%)',
'<!(echo %SQLITE_DIR%)',
],
...
(此语法适用于 Windows,适用于 Linux$
在 env vars 中使用,如echo $OPENSSL_DIR
)。
于 2015-09-17T10:44:40.153 回答
4
对于跨平台定义,使用“条件”指令
'include_dirs': [
...
],
'conditions': [
['OS=="win"', {
'include_dirs': [
'<!(echo %OPENSSL_DIR%)/include',
'<!(echo %BOOST_DIR%)',
'<!(echo %SQLITE_DIR%)'
]
}],
['OS!="win"', {
'include_dirs': [
'<!(echo $OPENSSL_DIR)/include',
'<!(echo $BOOST_DIR)',
'<!(echo $SQLITE_DIR)'
]
}]
]
于 2017-04-25T18:12:11.853 回答