which cmake will Android plugin use?

牧云@^-^@ 提交于 2020-01-16 05:09:08

问题


With Android Studio 3.3 I use native (C++) library, which I built with CMake. The Android plugin (v. 3.2.1) will choose the 'builtin' or 'external' cmake, depending on the configuration of externalNativeBuild, as documented at developer.android.com.

I want to add an extra custom task (install) that should use the same cmake version as the Android Plugin. But even with the 'builtin' cmake, it's not clear what the path is. I can find android.sdkDirectory, but even there I have today sdk\cmake\3.6.4111459 and sdk\cmake\3.10.2.4988404, and for some strange reason, some of my projects choose 3.6, while others use 3.10. This contradicts the official the release notes for Android Studio that "Gradle still uses version 3.6.0 by default", but well…

How can I decide which to use, without reimplementing the Android Plugin's obscure logic?

One workaround that may help, parse the first line of the generated file .externalNativeBuild/cmake/debug/armeabi-v7a/cmake_build_command.txt:

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

This still needs some adjustments, because the later versions of build tools will use .cxx instead of .externalNativeBuild; the build variant names may be different too.


回答1:


Android Studio will pick up the latest CMake version under sdk\cmake, but you can configure your particular version from

externalNativeBuild {
    cmake {
        ...
        version "cmake-version"
    }
}

And specify our custom CMake director as below inside local.properties

cmake.dir="path-to-cmake"

Or, you can choose NOT to upgrade your CMake from SDK Manager (just to delete the sdk\cmake\<version to delete> folder will be fine) so that you can stick to the CMake version your project is comfortable with.



来源:https://stackoverflow.com/questions/54619046/which-cmake-will-android-plugin-use

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!