2017-07-26 5 views
0

J'utilise Android Studio 3.0 pour mon application NDK. Pour le code C++, j'utilise CMake as the external builder.Activer l'optimisation du compilateur pour la version de débogage d'Android Studio via Cmake

Cela fonctionne bien, je peux créer des binaires de débogage et de publication. Cependant, je voudrais activer les optimisations du compilateur (disons -O3) pour une partie du code C++ (le moteur physique), pas seulement pour la version release, mais aussi pour la version debug.

Donc créer la majeure partie de la construction de débogage tel quel, sans optimisation, mais je veux que l'une des cibles de la bibliothèque statique soit construite avec l'optimisation du compilateur activée.

Comment puis-je faire à ce sujet?

J'ai un CMakeLists pour une cible de bibliothèque statique qui est incluse en utilisant la directive add_subdirectory() dans le fichier CMakeLists de niveau supérieur.

Notez que je signale aux CMakeLists de haut niveau dans le fichier build.gradle de mon application comme ceci:

externalNativeBuild { 
    cmake { 
     path '../../Android/jni/CMakeLists.txt' 
    } 
} 

Répondre

2

Il se avère que vous pouvez utiliser la target_compile_options() macro dans votre CMakeLists.txt avec une spécification de configuration comme this:

target_compile_options(opende PRIVATE 
"$<$<CONFIG:RELEASE>:-O3>" 
"$<$<CONFIG:DEBUG>:-O3>" 
) 

Cette macro s'ajoute aux options de compilation existantes.