Android插件将使用哪个cmake?

时间:2019-02-10 17:30:15

标签: android-studio cmake android-ndk

在Android Studio 3.3中,我使用了本机(C ++)库,该库是用CMake构建的。 Android插件(3.2.1版)将根据externalNativeBuild的配置选择'builtin'或'external'cmake,如developer.android.com所述。

我想添加一个额外的自定义任务(安装),该任务应使用与Android插件相同的 cmake 版本。但是即使使用“内置” cmake,也不清楚路径是什么。我可以找到android.sdkDirectory,但是即使今天我也有sdk\cmake\3.6.4111459sdk\cmake\3.10.2.4988404,由于某些奇怪的原因,我的一些项目选择了 3.6 ,而其他项目使用了 3.10 。这与Android Studio的官方发行说明相矛盾,该发行说明“ Gradle默认仍使用3.6.0版本” ,但是……

如何在不重新实现Android插件晦涩的逻辑的情况下决定使用哪个?

可能有用的一种解决方法是,解析生成的文件.externalNativeBuild/cmake/debug/armeabi-v7a/cmake_build_command.txt的第一行:

Executable : C:\local\Android\sdk\cmake\3.10.2.4988404\bin\cmake.exe

这仍然需要进行一些调整,因为更高版本的构建工具将使用.cxx而不是.externalNativeBuild;构建变体名称可能也不同。

1 个答案:

答案 0 :(得分:0)

Android Studio将在sdk\cmake下获取最新CMake版本,但是您可以通过

配置特定的版本
externalNativeBuild {
    cmake {
        ...
        version "cmake-version"
    }
}

并在local.properties内指定我们的自定义CMake导演

cmake.dir="path-to-cmake"

或者,您可以选择不要从SDK Manager升级CMake (只需删除sdk\cmake\<version to delete>文件夹就可以了),以便您可以坚持使用项目的CMake版本。舒服。