2017-08-03 6 views
1

Dans le nouveau système de génération de ninja Android Studio NDK (v 2.3+), quel est le meilleur moyen de vider les options de ligne de commande gcc/clang?Android Studio NDK Construire les options de ligne de commande ninja gcc/clang

Actuellement, je suis d'insérer délibérément des déclarations de #error dans mon dossier C:

... 
#include <gperf.h> 

#error "Compiler, stop!" 

#define LOGI(...) \ 
    ((void)__android_log_print(ANDROID_LOG_INFO, "hell-libs::", __VA_ARGS__)) 

Alors que je peux obtenir la décharge de la ligne de commande suivante:

Build hello-libs arm64-v8a 
[1/2] Building CXX object CMakeFiles/hello-libs.dir/hello-libs.cpp.o 
FAILED: /Users/me/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ 
--target=aarch64-none-linux-android --gcc-toolchain=/Users/me/android-ndk/toolchains/aarch64-linux-android-4.9/prebuilt/darwin-x86_64 --sysroot=/Users/me/android-ndk/platforms/android-21/arch-arm64 
-Dhello_libs_EXPORTS -I/Users/me/src/opensource/android-ndk/hello-libs/app/src/main/cpp/../../../../distribution/gmath/include -I/Users/me/src/opensource/android-ndk/hello-libs/app/src/main/cpp/../../../../distribution/gperf/include 
-isystem /Users/me/android-ndk/sources/cxx-stl/gnu-libstdc++/4.9/include -isystem /Users/me/android-ndk/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include -isystem /Users/me/android-ndk/sources/cxx-stl/gnu-libstdc++/4.9/include/backward -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security -std=gnu++11 -O0 -fno-limit-debug-info -O0 -fno-limit-debug-info -fPIC -MD -MT CMakeFiles/hello-libs.dir/hello-libs.cpp.o -MF CMakeFiles/hello-libs.dir/hello-libs.cpp.o.d -o CMakeFiles/hello-libs.dir/hello-libs.cpp.o -c /Users/me/src/opensource/android-ndk/hello-libs/app/src/main/cpp/hello-libs.cpp 
/Users/me/src/opensource/android-ndk/hello-libs/app/src/main/cpp/hello-libs.cpp:24:2: error: "Compiler, stop!" 
#error "Compiler, stop!" 
^ 
1 error generated. 
ninja: build stopped: subcommand failed. 
:app:externalNativeBuildDebug FAILED 

Répondre

1

Selon cette CMake PR: https://github.com/Kitware/CMake/commit/ce935ebe50926bde199d86fbde4a78974a4043f9

Vous êtes censé pouvoir passer -DCMAKE_VERBOSE_MAKEFILE = ON pour obtenir Ninja -v, mais je n'ai jamais réussi à le faire fonctionner. Je ne sais pas pourquoi pour le moment.

La façon dont j'obtiens habituellement les drapeaux est d'ouvrir le fichier android_gradle_build.json qui est automatiquement généré par Android Studio/Gradle. Ce fichier a tous les indicateurs pour chaque fichier c/cpp pour l'ABI donné.