问题标签 [gn]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
621 浏览

ninja - 如何将 Google Crashpad 构建到共享(动态)库中?

问题总结

我正在尝试将Google Crashpad(Google Breakpad 的继任者)一个崩溃报告系统集成到一个动态链接到其所有外部库的软件套件中。我的问题是 Crashpad 的默认设置是构建为静态库 - 我需要动态构建它。

克隆 Crashpad 后,使用GN为构建生成.ninja文件。构建命令如下:

$ gn gen out/Default

上面的命令生成所有的 .ninja 文件。

(旁白)要生成 Visual Studio 解决方案文件 (.sln),可以使用以下生成命令:

$ gn gen out/Default --ide=vs

编译:

$ ninja -C out/Default

我试过的

  1. 这个 StackOverflow Question回答了同样的问题,建议您可以简单地修改输出的 .ninja 文件的链接标志(/MT 更改为 /MD)。但是,对所有输出文件进行 grepping 显示不存在此类标志。

  2. Backtrace 集成指南有一个链接,指向预建的动态(共享)crashpad。但是,他们似乎使用 Visual Studio 2017 构建了这些库,使用的工具集 (v141) 比我可以使用的更新。我需要重新构建 Crashpad 以进行动态链接,并使用 Visual Studio 2015 (v140)。

0 投票
1 回答
1837 浏览

chromium - gn 脚本使用错误的 Python 版本运行(“需要类似字节的对象,而不是 'str'”)

在 macOS(Catalina 10.15)上构建 Chromium 或 libwebrtc 时gn,我从 Python 构建脚本中收到关于bytesstr. 例如:

当我将有问题的 Python 脚本编辑为 时print(sys.version),它显示它正在运行 Python 3,即使脚本应该在.vpython.

如何配置gn以使用适当的 Python 版本运行这些脚本?

0 投票
1 回答
217 浏览

build - 无法构建 Skia 模块 (SkPlainTextEditor)

我正在尝试构建 Skia 的modules/skplaintexteditor

https://chromium.googlesource.com/skia/+/master/modules/skplaintexteditor/


我已按照README.md中的说明进行操作:

前两个命令正在运行,但 ninja 构建失败:

Skia 本身构建良好(即,如果我没有editor在命令中指定目标ninja)。


这里缺少什么?我该如何构建skplaintexteditor

0 投票
1 回答
414 浏览

clang - 如何配置 GN(Google 的 generate-ninja)/Ninja 以使用不同的 clang 工具链

我正在使用GNNinja构建 Chromium 项目,但遇到以下错误:

原因是它使用了项目附带的预建 clang 工具,但是我在 CentOS 7 上并且 glibc 的固定版本是GLIBC_2.17,而且我确实有一个不需要的单独的 clang 工具GLIBC_2.18,问题是我该怎么做配置GN还是ninja不使用项目附带的预建clang?

0 投票
1 回答
345 浏览

flutter - 使用 GN 构建系统,如何将 cflag 设置为目标中的特定源文件

我使用 'sources = []' 将几个源文件添加到目标。根据这个线程https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/tpZ0q6cDTQk,我可以使用 'config += or -=' 来更改编译器标志。但是这些标志适用于所有来源。

如何添加/删除 cflag 并应用于其中一个源文件?

0 投票
2 回答
954 浏览

python - 使用 Ninja 和 Skia 构建错误。即使文件存在也无法找到 icudtl.dat

有谁知道我为什么会收到这个错误?

我查找了该文件,它位于 third_party/externals/icu/common/icudtl.dat

我用 fetch 克隆了skia

我的 args.gn 是

0 投票
0 回答
219 浏览

java - 如何将 .jar 添加到 Android Chromium/Chrome 构建

我的 Linux 机器上有来自 Google git 存储库的 Chromium/Chrome 浏览器源代码。我可以构建一个 APK 并将其成功安装到我的设备上。我的问题是:如何将预构建的 .jar 包含到 APK 构建中?我正在尝试将 org.xbill.dns_2.1.7.jar 包含到 APK 中。

我尝试在 /chromium/src/third_party/android_deps/libs/ 中创建一个子目录并将 .jar 放入其中。但是当我构建项目时,它不包括在内。. .

在简单的步骤中,我需要做什么?

0 投票
1 回答
258 浏览

gn - 如何在 GN 中导入第三方库?

我的一个项目是由 gn+ninja 构建的。我想使用平面缓冲区https://github.com/dvidelabs/flatcc,但它是用 cmake 编写的。

因为我的项目应该建立在旧的 red hat 6 上,所以没有合适的 cmake 版本来构建 flatcc。将它作为我项目子目录的一部分导入并使用 gn 构建的更好方法是什么?

0 投票
1 回答
118 浏览

gn - Fuchsia OS 构建命令:fx set --with,产生:Include not allowed

fuchsia/examples/intl/tz_version_parrot/main.cc使用fxl::CommandLineFromArgcArgv()

Fuchsia > Guides > fx 工作流程展示了使用fx set --with

我修改了 hello world 示例以使用fxl::CommandLineFromArgcArgv()

这会产生错误。原来的作品很好:

什么不见​​了?

0 投票
1 回答
192 浏览

gn - 如何构建树外 Fuchsia OS 程序

在安装和构建 Fuchsia OS 之后,我可以将示例 hello world 程序中的字符串从“Hello, World!\n”修改为“Hello, Fuchsia!\n”。然后我构建并执行生成预期字符串“Hello, Fuchsia!”的代码。使用:

这对于理解如何更改 Fuchsia “分布”的一部分是很好的。如何在紫红色树之外创建自己的程序?我假设在创建在 Fuchsia OS 上运行的程序时通常会这样做,以便可以干净地管理源代码。