我有一个带有基于cmake的构建脚本的跨平台库.由于现在可以使用cmake对
android的支持(
https://developer.android.com/studio/projects/add-native-code.html),我计划将ndk-build makefile移动到垃圾箱.
我测试了find_package(ZLIB required)
并且它运行良好,因为zlib头和库本身可用于NDK sysroot中的所有ABI.
所以,我可以为每个flavor或build类型的cmake cmdline添加任何自定义参数:
我测试了find_package(ZLIB required)
并且它运行良好,因为zlib头和库本身可用于NDK sysroot中的所有ABI.
所以,我可以为每个flavor或build类型的cmake cmdline添加任何自定义参数:
buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro' externalNativeBuild { cmake { arguments "-DMYLIB_ENABLE_PROGUARD=ON" } } } debug { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro' externalNativeBuild { cmake { arguments "-DMYLIB_ENABLE_PROGUARD=OFF" } } } }
我的问题是能够为每个ABI设置CMAKE_PREFIX_PATH以通过FindPackage查找外部静态/共享库.
一般来说,我可以在cmake脚本本身中将find_library和include_directories与${ANDROID_ABI}结合使用,但我已经有了多平台支持的工作脚本,我不想添加脏代码,因为有干净的方法( find_package CMAKE_PREFIX_PATH).
谢谢大家的时间!
解决方法
这不是我们目前支持的.我认为它应该是可能的.我打开b.android.com/225884来跟踪它.