Как установить глобальный флаг компиляции в 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
так далее).