Android C++/Gradle/NDK: what flags should I pass to cppFlags, cFlags or arguments?

I see here a typical example of Gradle file for a NDK project.

Nevertheless, I wonder what are the rules to know where to put the different flags:

    // Passes optional arguments to CMake.
       arguments "-DANDROID_ARM_NEON=TRUE", "-DANDROID_TOOLCHAIN=clang"
    
    // Sets a flag to enable format macro constants for the C compiler.
       cFlags "-D__STDC_FORMAT_MACROS"
    
   // Sets optional flags for the C++ compiler.
      cppFlags "-fexceptions", "-frtti"

For example, why "-fexceptions", "-frtti" are in ‘cppFlags’ and not in ‘arguments’ ? What are the rules to decide and the influence on compilation/app runtime/performance?

Thanks.

Source: Windows Questions C++

LEAVE A COMMENT