Как установить глобальный флаг компиляции в gn, чтобы он появлялся в файлах ниндзя?

Как добавить такие вещи, как -O2 или обычай -DSOMETHING поэтому они появляются в cflags а также defines файлов *.ninja?

Перекомпилируем это:

https://webrtc.org/native-code/development/

Это изменило систему сборки. Теперь первый шаг сборки:

gn gen out/Default --args='is_debug=false'

Опираясь на Ubuntu, нацеливаясь на себя.

Где его можно добавить в файлы *.gn или *.gni?

1 ответ

К сожалению, нет прямого пути от «аргументов» к вызову вашего компилятора. Поскольку GN поддерживает несколько параллельных наборов инструментов, неясно, к какому из них вы хотите применить это, должно ли оно применяться к компилятору C, компилятору C++, компоновщику и т. д.

Это требует, по крайней мере, некоторой координации между вашими «аргументами» GN и любой цепочкой инструментов, к которой вы хотите применить это.

Итак, если в вашем BUILDCONFIG.gn у вас есть:

      declare_args() {
  cl_cflags = ""
}

А затем позже в наборе инструментов у вас есть:

      toolchain("my_toolchain") {
  tool("cc") {
    ...
    command = "cc ... ${cl_cflags}"
  }
}

Затем вызов ./gn gen out/Default --args='cl_cflags="-DFOO"'будут испускать файлы Ninja, которые -DFOOдобавляется к каждому вызову компилятора C.

Обратите внимание, что вам нужно добавить это вручную для каждой цепочки инструментов, и что нет возможности отключить это в одноразовом сценарии, потому что GN не «знает» об этом (это не configтак далее).

Другие вопросы по тегам