Мне нужно передать аргумент -j
ниндзя при создании приложения для Android с помощью gradle. (в Windows)
Зачем мне это нужно? - У нас есть огромные унифицированные файлы C++, которые требуют много памяти для компиляции. В настоящее время у меня недостаточно памяти (~ 10 ГБ свободно), чтобы скомпилировать их параллельно на 8 ядрах. Таким образом, clang терпит неудачу, когда заканчивается память.
Я вижу, что Gradle запускает cmake
с ключом --build
, поэтому я попытался добавить туда свой аргумент -j1
. Но кажется, что поле arguments
используется только для генерации cmake, потому что оно не влияет на командную строку, переданную в cmake на этапе сборки.
externalNativeBuild {
cmake {
cFlags "..."
cppFlags "..."
arguments "... -- -j1"
}
}
Единственный способ, который я вижу сейчас, это заменить ninja
какой-нибудь оболочкой, чтобы передать оттуда -j
. Но это последние варианты, которые я хотел бы использовать. Цените любые идеи о том, как достичь этого действительного пути.