какой cmake будет использовать плагин Android? - PullRequest
0 голосов
/ 10 февраля 2019

В Android Studio 3.3 я использую нативную (C ++) библиотеку, которую я создал с помощью CMake.Плагин Android (v. 3.2.1) выберет «встроенный» или «внешний» cmake, в зависимости от конфигурации externalNativeBuild, как описано на developer.android.com .

Я хочу добавить дополнительную пользовательскую задачу (установить), которая должна использовать ту же версию cmake , что и плагин Android.Но даже с «встроенным» cmake не ясно, каков путь.Я могу найти android.sdkDirectory, но даже там у меня есть сегодня sdk\cmake\3.6.4111459 и sdk\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 голосов
/ 11 февраля 2019

Android Studio подберет последнюю версию CMake в sdk\cmake, но вы можете настроить свою конкретную версию из

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

и указать наш собственный директор CMake, как показано ниже внутри local.properties

cmake.dir="path-to-cmake"

Или, вы можете выбрать НЕ для обновления вашего CMake из SDK Manager (достаточно просто удалить папку sdk\cmake\<version to delete>), чтобы вы могли придерживатьсяCMake версия вашего проекта удобна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...