Skip to content

CarCode/Cocoa-OCPN

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

No packages published