Перейти до основного вмісту

Як скомпілювати OsmAndMapCreator та інструменти

Скомпілювати OsmAndMapCreator

  1. Спочатку налаштуйте середовище розробки.
  2. Gradle (командний рядок):
    • Компіляція за допомогою командного рядка
    cd tools/java-tools && ../gradlew build
    • OsmAndMapCreator.zip буде створено з усіма скриптами всередині Примітка: для створення інструментів потрібен проект Android (він використовує проект OsmAnd-java).
  3. Eclipse:
    • Попередньо налаштуйте проекти Eclipse
    cd tools/java-tools && ../gradlew cleanEclipse eclipse
    • В Eclipse 'Import' - 'Existing projects in workspace' виберіть папки 'OsmAnd-java', 'OsmAndMapCreatorutilities', 'OsmAndMapCreator', 'OsmAndServer', 'OsmAndServerUtilties'. Примітка: не вибирайте верхню папку java-tools, а замість цього виберіть зазначені вище проекти.
  4. IntelliJ IDEA
    • 'File' > 'New' > 'Project from existing sources...' та перейдіть до java-tools
    • Виберіть 'Import project from existing model' та виберіть 'gradle' зі списку
  5. Основні класи для виконання з IDE:
    • net.osmand.MainUtilities - представляє utilities.sh та веде до всіх можливих утиліт.
    • net.osmand.obf.BinaryInspector - утиліта inspector.sh для читання файлів OBF та надання інформації про них.
    • net.osmand.obf.preparation.IndexCreator - ярлик для створення файлу obf.
    • net.osmand.swing.OsmExtractionUI - OsmAndMapCreator

Скомпілювати бібліотеку нативного рендерингу для OsmAndMapCreator

Бібліотека нативного рендерингу може бути використана для тестування офлайн-рендерингу або офлайн-нативної маршрутизації. Вона дуже корисна для налагодження та тестування стилю рендерингу або конфігурації маршрутизації.

  1. Спочатку налаштуйте середовище розробки, див. середовище розробки.
  2. Завантажте зовнішні залежності
cd core-legacy/externals
./configure.sh
  1. Вкажіть JAVA_HOME глобально через $PATH або в командному рядку
export JAVA_HOME=<>
  1. Виберіть конкретну ціль для ОС та скомпілюйте конкретну версію 'debug', 'release' або '' (за замовчуванням). Приклад
cd core-legacy/targets
./intel-darwin.sh release # macOs release
./amd64-linux-clang.sh debug # linux debug - default
cd ....baked # наприклад intel-darwin-intel-darwin-clang-release.baked або amd64-linux-amd64-clang-release.baked
make -j4
  1. Бінарні файли будуть доступні за адресою core-legacy/binaries/. Приклад:
  core-legacy/binaries/darwin/intel/Debug/libosmand.dylib

Вирішення проблем

  • Відсутні файли externals/libjpeg-turbo/jconfigint.h.in не існує. Якщо ви виявили, що libjpeg-turbo не може скомпілюватися
targets/.cmake/../../externals/skia/upstream.patched/third_party/externals/libjpeg-turbo/jconfigint.h.in does not exist.

Ви можете знайти файли тут і помістити їх у вказану папку https://github.com/osmandapp/OsmAnd-core/blob/legacy_core/externals/jpeg/jconfig.h https://github.com/osmandapp/OsmAnd-core/blob/legacy_core/externals/jpeg/jconfigint.h

Скомпілювати версію ядра Qt для OsmAndMapCreator

  1. Спочатку налаштуйте середовище розробки.
  2. Підготуйте збірку (cmake) для конкретної цілі. Приклад clang / linux:
   alias clang='clang -std=c++11'
build/amd64-linux-clang.sh release
  1. Скомпілюйте бібліотеку випуску
    (cd "baked/amd64-linux-clang-release.make" && make -j4)