Android Studio Cmake曾经为所有构建变体构建一次
Android Studio CMake build once for all build variants
我有一个带有C 代码(JNI)的项目,并且有许多构建变体和组合。这些用于实现应用程序的不同品牌/风味(即颜色,样式,图标等)。
例如,可以为n个客户提供构建变体:
-
customerNDebug
-
customerNDebugproguard
-
customerNRelease
。
无论如何,每种产品味道。
的C/C 层是相同的通常 cmake 在Android Studio中为每个构建变体编译C代码。如果您具有构建变体,例如" debug
"answers" release
",这是有道理的,而所得代码实际上有所不同。但是,对于我拥有的构建变体,编译的输出始终相同。
目前使用项目中的外部工具完成了C/C 代码的汇编,我想在Android Studio中使用 cmake 进行编译,仅用于适当的IDE支持C/C 代码。因此,对我来说,一个构建就足够了。
是否可以告诉Android Studio仅构建C/C 代码一次,无论构建变体和口味如何?
默认情况下,Android Studio IDE与Cmake和Gradle一起将根据您的构建类型和口味生成一系列用externalNative<BuildVariant>Build
命名的本机构建任务。如果您想扭转这种行为,则某些解决方法如下:
- 创建一个仅构建本机代码的Android Studio模块项目,例如
shared-native
。 - 让您的其余模块取决于此项目。
对于此解决方案,您需要考虑以下几点:
- 将您的
.so
文件放入其他项目可以看到并链接的适当位置。 - 您只能在此
shared-native
模块项目中包括debug
和release
构建类型,以避免重新构建过多。或者,您可以简单地让其他项目取决于发布类型,以便将其仅构建曾经。
相关文章:
- 我是否需要在下一次转移时将所有权*转移回转移队列
- 使用仅使用一次的变量调用的复制构造函数.这可能是通过调用move构造函数进行编译器优化的情况吗
- 在C++中一次将矢量值写入多个文件
- 循环中的条件:为什么每次都调用strlen(),而vector.size()只调用一次
- 为什么 zlib 放气初始化调用一次不起作用?
- 在一次迭代中从 txt 文件中读取多行
- 为什么无论你输入什么,这"while(cin.get(str,3))"只运行一次?
- 在头文件和 cpp 文件中使用一次 #pragma 时出现结构重定义错误
- 有没有办法一次声明相同类型的多个对象,并通过一个表达式立即使用相同的右值初始化它们?
- 高级选择排序 - 在一次迭代中搜索两个元素
- 具有相同特征的两个对象是否只在内存中存储一次?无论定义它们的函数是什么,都是不同的
- 如何仅使用一次固定<<设置精度(2)?或者至少恢复到默认行为?
- 什么是仅调用一次并调用参数的控制台应用
- 如何在 Eclipse 中一次从多个源文件进行构建
- 如果初始化需要shared_from_this,如何在一次调用中构建一个类
- 如何一次在Visual Studio 2015和Visual Studio 2002中构建C 项目
- cmake-一次针对多个体系结构,而无需在构建之间进行手动清理
- Android Studio Cmake曾经为所有构建变体构建一次
- GNU make: Makefile一次构建多个.cpp文件
- 使用CMake只构建一次外部库