私のシナリオはとても簡単です。私はexternalNativeBuild
システムを使ってCMakeでコンパイルしたネイティブライブラリを持っています。これはアプリケーションのビルドにはうまくいきますが、マシンローカル(つまりエミュレータ以外の)ユニットテスト中に同じライブラリをロードしたいと思います。Gradle NDKビルドを使用してホストマシン用にコンパイルするにはどうすればよいですか?
次のものを含む既存のGradle NDKセットアップを使用している場合、これを再利用してホストオペレーティングシステム用のライブラリ(たとえばmacOS)をコンパイルする方法はありますか?
defaultConfig {
ndk {
abiFilters 'x86', 'x86_64', 'armeabi', 'armeabi-v7a', 'arm64-v8a'
}
externalNativeBuild {
cmake {
arguments '-DANDROID_TOOLCHAIN=clang', '-DANDROID_STL=c++_static'
}
}
}
externalNativeBuild {
cmake {
path 'CMakeLists.txt'
}
}
Androidを「ターゲット」しているかもしれませんが、私はマシンローカルバイナリを構築するためにバックを使用しています。ここでの質問は、同じことを達成するためにgradleツールチェーンを使う方法です。 – passy
はい、しかし、Androidのgradleサポートは_only_ Android用です(少なくともC++に関しては、Javaについて実際にはわかりません)。あなたがgradleの他のシステム用にC++をビルドしたいのであれば、別のビルドファイルを多かれ少なかれ作成することになるでしょう:https://docs.gradle.org/current/userguide/native_software.html –