2016-08-23 6 views
1

私はAndroidスタジオにプロデューサー、コンシューマー、そしてリビングの3つのプロジェクトがあります。Android ndk different cflags

Libは共有JNIライブラリです.Libは、動作が異なるようにいくつかの関数を定義し、使用方法によっては同じものを定義しています。たとえば:

void function() { 
#ifdef PRODUCER 
    printf("I'm a producer!\n"); 
#endif // PRODUCER 
#ifdef CONSUMER 
    printf("I'm a consumer!\n"); 
#endif // CONSUMER 
} 

私は基本的に2つの潜在的な風味を持っているのlibのための私のgradle.buildスクリプトが欲しい:プロデューサー&消費者は、コンパイルプロジェクト(「:LIB:プロデューサー」)のような他のプロジェクトで依存関係を指定しますプロジェクト( ':lib:consumer')のいずれかです。これらの異なるターゲットは、次のように異なるだけです:

android { 
    defaultConfig { 
     ndk { 
      cFlag "-DPRODUCER" // or -DCONSUMER 
     } 
    } 
} 

これは可能ですか?

答えて

1

Androidスタジオ2.2以降にアップグレードしてから、externalNativeBuildのCMakeを使用して複数のライブラリを生成するのが最善の方法です。