gpt4 book ai didi

android - 将架构信息从 gradlew 命令传递到 cmake

转载 作者:行者123 更新时间:2023-12-04 15:46:36 25 4
gpt4 key购买 nike

我有一个支持 4 种不同架构的 android 应用程序,即 armeabi-v7aarm64-v8ax86x86_64。我不希望为每个构建的 Android 构建这些架构中的每一个。我想通过 gradlew 命令将架构信息作为参数传递,以便跳过剩余架构的构建。我知道 -DANDROID_ABI 标志作为参数传递给 cmake 可以解决问题,但不确定如何通过 gradlew 命令将其作为参数传递?

defaultConfig {
minSdkVersion 21
targetSdkVersion 26

externalNativeBuild {
cmake {
cppFlags "-frtti -fexceptions"
arguments "-DANDROID_ABI=<<requested arch to built>>"
}
}
}

换句话说,如何将此信息从 gradlew 命令传递到 cmake?

最佳答案

技巧可以像下面这样:

android {   
...
defaultConfig {
externalNativeBuild {
cmake {
...

if (project.hasProperty("armeabi-v7a")) {
abiFilters 'armeabi-v7a'
} else if (project.hasProperty("arm64-v8a")) {
abiFilters 'arm64-v8a'
} else if (project.hasProperty("x86")) {
abiFilters 'x86'
} else if (project.hasProperty("x86_64")) {
abiFilters 'x86_64'
} else {
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
}
...
}
}
}
}

在命令行中,您可以执行以下操作,例如只构建 abi armeabi-v7a

./gradlew externalNativeBuild -Parmeabi-v7a

关于android - 将架构信息从 gradlew 命令传递到 cmake,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55479984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com