Плагин DSL - в чем разница между использованием cppFlags и аргументами для установки параметров компилятора C / C ++? - PullRequest
0 голосов
/ 06 июня 2019

В соответствии с плагином Android DSL - ExternalNativeNdkBuildOptions существует два свойства " cppFlags " и " аргументы " объекта DSL " ExternalNativeNdkBuildOptions", что позволяет нам контролировать поведение компилятора C ++ (clang или gcc).Однако я обнаружил, что некоторые параметры компилятора могут быть установлены любым из них.Например, следующие две строки, кажется, делают то же самое:

cmake { cppFlags "-fexceptions", "-frtti" }
cmake { arguments "-DANDROID_CPP_FEATURES=exceptions rtti"}

Другой пример, когда мне нужно определить макрос, чтобы код C ++ мог определить, что он находится под сборкой DEBUG, яможно сделать одним из следующих способов:

debug {
    externalNativeBuild{
        cmake { cppFlags += "-DDEBUG_BUILD" }
        cmake { arguments += "-DDEBUG_BUILD" }
    }
    ...
}

Я не могу понять, в чем разница и почему дублирующие функции DSL функционируют в двух разных свойствах?Мне просто нужно подтвердить, правильно ли я понимаю их использование, спасибо.

...