Android gradle向cmakeList.txt 自定义传参实现多model编译不同库

业务场景:针对多渠道每个Flavor下面可能使用编译不同模块的NativeLib,这里可以通过gradle构建是指定一些自定义参数传递给cmakeList.txt 在cmake这中进行控制。

gradle多渠道配置:
productFlavors {
        Flavor1 {
            ...
            ...
            externalNativeBuild {
                cmake {
                    arguments "-DFLAVOR_NAME=FB"
                    abiFilters  "armeabi","armeabi-v7a"
                }
            }
        }
        Flavor2 {
            ...
            ...
            externalNativeBuild {
                cmake {
                    arguments "-DFLAVOR_NAME=YH"
                    abiFilters  "armeabi","armeabi-v7a"
                }
            }
        }
}

这里指定自定义参数格式为: -D+name=value形式。如上,-DFLAVOR_NAME=YH

在CmakeList.txt中获取使用该参数:${FLAVOR_NAME}即可获取

如果是在cmake中的if条件语句中可直接使用,不需要加 ${},如:

一般使用获取:
#打印数据便于调试
MESSAGE("----FLAVOR_NAME="${FLAVOR_NAME}if中使用获取:
if (FLAVOR_NAME STREQUAL YH)
  MESSAGE("---FLAVOR_NAME STREQUAL MMT---haha-")
  .....
  .....接下来做不同的业务
endif()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值