在构建 Android 应用程序时禁用 CMake 目标

Disabling a CMake target when building Android app

本文关键字:CMake 目标 构建 Android 应用程序      更新时间:2023-10-16

我有一个使用本机代码的Android应用程序C++该代码是使用CMake构建的。在项目的 CMakeList 中,使用 add_subdirectory() 添加一个库。这个库有很多目标,其中一些不能针对Android平台编译(它们在Android上产生编译错误(。但是,我的Android应用程序不会链接到任何这些目标,因此根本不需要构建它们。但Android Studio还是试图构建它们。

我的问题是是否可以以某种方式在Android Studio中禁用这些目标。我可以告诉 Android Studio 不要构建这些目标吗?

谷歌已经想到了这一点:你可以选择要构建的目标。下面的示例是链接的最小版本;它只构建libexample-one

android {
    defaultConfig {
        externalNativeBuild {
            cmake {
                // Note that  Gradle packages only shared libraries into your APK.
                targets "libexample-one"
            }
        }
    }
}

或者,您可以破解库的 CMakeLists.txt以从自动构建中排除有问题的目标。