Изучаю возможности сборки Android-приложения через Gradle, после CMake возникают элементарные вопросы по конфигурации. Собственно, есть ли вообще этап конфигурации в Gradle, наподобие ./configure <options> или cmake <options>?
Вот тривиальный пример: Android-плагин хочет знать где лежит SDK, но делает это странным способом. Нужно либо указать путь к SDK в переменной окружения ANDROID_HOME, либо создать файл local.properties со строкой sdk.dir=<path/to/sdk>. Первый вариант не годится по очевидной причине, что для каждого приложения необходимо создавать враппер для вызова сборки, в котором будет указана переменная ANDROID_HOME для текущего пользователя. Второй вариант тоже не подходит, потому как local.properties должен лежать в директории с исходным кодом вместо директории сборки, если нужно собирать приложение с разными SDK, то неясно как между ними переключаться. Естественно ни враппер, ни local.properties в систему контроля версий не сохраняются, потому как содержат локальные пути.
В Gradle можно передать параметры сборки в командной строке, но по каким-то причинам Android-плагин игнорирует этот способ.
В CMake путь к SDK указался бы при конфигурации в командной строке (или нашёлся бы автоматически) и сохранился один раз в кеш, после чего сборка проекта проходит простым вызовом ninja без аргументов и ненужных врапперов.
Какой идеологически верный способ конфигурировать проект в Gradle? Есть ли вообще способ экспортировать переменные наружу, чтобы пользователь при сборке мог их переопределить?