2017-04-16 9 views
3

Ant NDKプロジェクトをAnt/ndk-buildからGradle/CMakeに移行しようとしています。私はWindowsのコマンドラインからビルドしたいと思っています。私はAndroid Studioを使いたくありません。今はほとんど稼働してだが、そこに一つのことを解決するために、左だ、それは次のようである:私のCMakeFiles.txtGradleとCMakeを使ってAndroidビルドにリリースとデバッグのサブディレクトリを追加する

私はこのように私のプロジェクトに静的リンカライブラリが含まれているいくつかの他のディレクトリをインポートしています:

add_subdirectory("../foobar/src" "../foobar/obj/${ANDROID_ABI}") 

問題は、バイナリファイルのディレクトリを指定することです。私は既に${ANDROID_ABI}を使って、オブジェクトとライブラリファイルがアーキテクチャによって分離されていることを確認しています。しかし、これは十分ではありません.Gradleもデバッグとリリースのビルドを行い、上の行でデバッグとリリースのオブジェクトとライブラリファイルがまったく同じディレクトリに書き込まれます。これはGradleが私が言うたびに各静的ライブラリを再構築させます./gradlew build

どうすればこの問題を解決できますか? Gradle/CMakeが現在デバッグ用にビルドされているかリリース用にビルドされているかを教えてくれるCMakeLists.txtに変数がありますか?私はすでに次のことを試してみたが、それはうまくいきませんでした!そうBUILDMODEは常にReleaseになりますのGradleとAndroidのプラグインを構築する際に

IF(CMAKE_BUILD_TYPE MATCHES DEBUG) 
    set(BUILDMODE "Debug") 
ELSE() 
    set(BUILDMODE "Release") 
ENDIF() 

CMAKE_BUILD_TYPEは常に= DEBUGのようです。

私はこれについて数時間前から考えていましたが、かなりアイデアがありません...残念ながら、CMakeのadd_subdirectoryのバイナリファイルの引数を省略することもできないようです。

私は本当にここで何をすべきかわからないので、どんな助けも大歓迎です。

答えて

0

上流に明示的に設定されていない場合に設定することができます。

if (NOT CMAKE_BUILD_TYPE) 
SET(CMAKE_BUILD_TYPE Debug) 
endif() 
関連する問題