Aller au contenu principal

Comment compiler OsmAndMapCreator et les outils

Compiler OsmAndMapCreator

  1. Tout d'abord, configurez l'environnement de développement.
  2. Gradle (ligne de commande) :
    • Compilez avec la ligne de commande
    cd tools/java-tools && ../gradlew build
    • OsmAndMapCreator.zip sera produit avec tous les scripts à l'intérieur. Note : le projet android est nécessaire pour construire les outils (il utilise le projet OsmAnd-java).
  3. Eclipse :
    • Préconfigurez les projets Eclipse
    cd tools/java-tools && ../gradlew cleanEclipse eclipse
    • Dans Eclipse, 'Import' - 'Existing projects in workspace', sélectionnez les dossiers 'OsmAnd-java', 'OsmAndMapCreatorutilities', 'OsmAndMapCreator', 'OsmAndServer', 'OsmAndServerUtilties'. Note : ne sélectionnez pas le dossier supérieur java-tools et sélectionnez plutôt les projets spécifiés ci-dessus.
  4. IntelliJ IDEA
    • 'File' > 'New' > 'Project from existing sources...' et naviguez jusqu'à java-tools
    • Select 'Import project from existing model' and pick 'gradle' from the list
  5. Classes principales à exécuter depuis l'IDE :
    • net.osmand.MainUtilities - représente utilities.sh et mène à toutes les utilités possibles.
    • net.osmand.obf.BinaryInspector - utilitaire inspector.sh pour lire les fichiers OBF et donne des informations à leur sujet.
    • net.osmand.obf.preparation.IndexCreator - raccourci pour générer un fichier obf.
    • net.osmand.swing.OsmExtractionUI - OsmAndMapCreator

Compiler la bibliothèque de rendu native pour OsmAndMapCreator

La bibliothèque de rendu native peut être utilisée pour tester le rendu hors ligne ou le routage natif hors ligne. Elle est très utile pour déboguer et tester un style de rendu ou une configuration de routage.

  1. Tout d'abord, configurez l'environnement de développement, voir environnement de développement.
  2. Téléchargez les dépendances externes
cd core-legacy/externals
./configure.sh
  1. Spécifiez JAVA_HOME globalement via $PATH ou en ligne de commande
export JAVA_HOME=<>
  1. Choisissez une cible spécifique pour l'OS et compilez une version spécifique 'debug', 'release' ou '' (par défaut). Exemple :
cd core-legacy/targets
./intel-darwin.sh release # macOs release
./amd64-linux-clang.sh debug # linux debug - default
cd ....baked # like intel-darwin-intel-darwin-clang-release.baked or amd64-linux-amd64-clang-release.baked
make -j4
  1. Les binaires seront disponibles dans core-legacy/binaries/. Exemple :
  core-legacy/binaries/darwin/intel/Debug/libosmand.dylib

Dépannage

  • Fichiers manquants externals/libjpeg-turbo/jconfigint.h.in does not exist. Si vous rencontrez que libjpeg-turbo n'a pas pu compiler
targets/.cmake/../../externals/skia/upstream.patched/third_party/externals/libjpeg-turbo/jconfigint.h.in does not exist.

Vous pouvez trouver les fichiers ici et les placer dans le dossier spécifié 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

Compiler la version core qt pour OsmAndMapCreator

  1. Tout d'abord, configurez l'environnement de développement.
  2. Préparez la construction (cmake) pour une cible spécifique. Exemple clang / linux :
   alias clang='clang -std=c++11'
build/amd64-linux-clang.sh release
  1. Compilez la version release de la bibliothèque
    (cd "baked/amd64-linux-clang-release.make" && make -j4)