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

时间:2019-07-12 13:16:33

标签: android c++ android-studio cmake

我有一个Android应用程序,该应用程序使用通过CMake构建的C ++本机代码。在项目的CMakeLists中,使用add_subdirectory()添加了一个库。该库有许多目标,其中一些目标无法在Android平台上编译(它们会在Android上产生编译错误)。但是,我的Android应用程序没有针对任何这些目标进行链接,因此根本不需要构建这些目标。但是Android Studio仍会尝试构建它们。

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

1 个答案:

答案 0 :(得分:2)

Google已经想到了这一点:您可以select which targets to build。 下面的示例是链接链接的最低版本。它只会生成libexample-one

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

或者,您可以修改库的CMakeLists.txt,以排除有问题的目标自动构建。