-
Notifications
You must be signed in to change notification settings - Fork 3
CarCode/Cocoa-OCPN
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
---------------------------------------------------------------------- 1. Overview ---------------------------------------------------------------------- a. Opencpn was built with the following objectives in mind. i. Intended use as primary navigation interface for vessels with full-time helm-visible navigational suites. Other tools may be better for offline route planning, tide and current prediction, online logging, etc. ii. Quick startup and shutdown. iii. Those and only those toolbar buttons really needed for daily operation. iv. Portability, thus wxWidgets core components. Currently tested and in production use on W98, XP, OS X, and Linux. v. Conventional ( i.e. popular and modern ) chart format support. In the real world, this means BSB format raster charts, and S57ENC format vector charts. And, of course, opencpn is all GPL'ed (or equivalent) Open Source code. Personal Note: Opencpn is in primary daily use as the navigation package aboard M/V Dyad, a 48 ft trawler yacht cruising from Newfoundland to the Bahamas yearly. ---------------------------------------------------------------------- 2. Eigene Bemerkungen ---------------------------------------------------------------------- Warum überhaupt diese eigene OpenCPN Version? Zunächst gab es jahrelang überhaupt keine Version für Mac OS X. Es war mühsam aufgrund früherer Versuche den Quellcode für OS X zu kompilieren. Die daraus gewonnenen Erkenntnisse wollten die Programmierer von OpenCPN zunächst nicht übernehmen. Erst später wurde dann erkannt, daß z.B. nur neuere Versionen von wxWidgets für Mac OS X verwendet werden können und daß z.B. eine Steuerung über Menüs doch nicht so schlecht ist. Viele Texte im Quellcode waren nicht übersetzbar und das Hilfesystem wie auch andere Funktionen entsprachen nicht dem bei Apple gewohnten Umfeld. Weitere Abweichungen zum Original Code sind: a. Diese Version von OCPN ist eine rein deutsche Version für Mac OS X (jetzt macOS) Catalina (10.15). Es soll soweit wie möglich das macOS Betriebssystem unterstützt werden, einschl. Mac Menüs, Mac Hilfe usw. Nur noch Mojave und Catalina werden unterstützt, ältere Versionen nicht mehr. Weder Big Sur noch Macs mit M1 Chip sind bisher getestet. Vermutlich wird es für neuere Versionen von macOS in absehbarer Zeit überhaupt keine OpenCPN Version mehr geben können, da die Grafik- Bibliothek OpenGL von Apple bald nicht mehr unterstützt wird. b. Diese Version basiert auf Release-Version von wxWidgets 3.2.2 mit entsprechenden dylibs vom 10. Februar 2023. Die Einbindung der Libs als statisch wurde verworfen, da damit das Gesamt-Paket unnötig aufgebläht werden würde. c. In einem weiteren Schritt wurde mit Veröffentlichung einer Binär-Version von OCPN für Mac ein automatischer Update-Service mit Sparkle eingeführt. d. Nicht alle Plugins laufen bisher problemlos. Einige wurden noch nicht compiliert, andere haben noch Fehler. e. Außer dem o.g. Problem, wegen der Plugins nur die dynamischen Libraries von wxWidgets zu verwenden, hat das Plugin-Konzept noch weitere Nachteile offenbart: Zur Laufzeit werden die verschiedenen Locale-Dateien von OCPN und den Plugins verbunden, so daß gleichartige Strings mit unterschiedlichen Übersetzungen zu Fehlern führen. f. Das von den OCPN Programmierern gewünschte Konzept, die Plugins als Stand-Alone zu compilieren, wurde wieder verlassen, da es zu größeren Plugin Dateien führt und nur Vorteile bietet, wenn Plugins mit verschiedenen OCPN Versionen laufen sollen. Außerdem wird es umständlicher, Code- Änderungen an mehreren Stellen nachzuhalten wie z.B. bei den wxJSON Dateien. Außerdem wurde das neue Konzept des OpenCPN Originals für Updates von Plugins nicht übernommen, da immer noch nicht ausgereift und sehr fehleranfällig. Diese eigene OpenCPN Version wird immer mit den Plugins zusammen geliefert, die einigermaßen gut funktionieren. Größte Änderung ist jedoch die Verwendung von Clang/LLVM mit Xcode statt der Befehlszeilen orientierten Cmake Version. Compiler: Xcode 12.4 Apple LLVM version 12.0.0 (clang-1200.32.28) Target: x86_64-apple-darwin19.6.0 SDK 10.15 Catalina Thread model: posix Neben den wxWidgets Bibliotheken sind einige Dritt-Programme erforderlich, die Homebrew zur Verfügung stellt. Dazu werden im Terminal Programm folgende Befehle der Reihe nach eingegeben: $ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" $ brew install cmake $ brew install gettext $ echo 'export PATH="/usr/local/opt/gettext/bin:$PATH"'>> ~/.bash_profile $ brew install tinyxml $ brew install cairo $ brew install libexif $ brew install xz libarchive wxWidgets Direktive: Sourcen holen von https://github.com/wxWidgets/wxWidgets.git branch master Ich verwende die SourceTree.app für Mac OS X. Im Sourcen-Tree neues Verzeichnis erstellen z.B. "build-cocoa-debug". Im Terminal in dies Verzeichnis wechseln und konfigurieren mit: ../configure --enable-debug --with-macosx-version-min=10.15 Dann Eingabe von: make und schließlich Eingabe von: sudo make install Die dylibs und Header werden installiert in: /usr/local/Lib/ bzw. /usr/local/include/wx-3.2 Um eine eigenständige OpenCPN-Version zu erhalten, müssen OpenCPN und die dylibs (im Contents/Frameworks/ Verzeichnis bzw. Contents/Plugins/ Verzeichnis) mit "install_name_tool -change" bearbeitet werden! Siehe batchwx.sh bzw. Xcode Scripts. wxCurl wurde auf diese Art ebenfalls als dynamische Library compiliert. HINWEIS: Große Dateien ( > 100 MB) nimmt GitHub nicht mehr ohne weiteres. Die Datei /data/gshhs/poly-f-1.dat mit ~172 MB muß daher separat geholt werden und nach /data/gshhs/ kopiert werden: https://topperdiek.de/dl/ocpn/poly-f-1.dat ----------------------------------------------------------------------- 10. Februar 2023
About
My privat OCPN version for Mac OSX Mojave + Catalina
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published