Code Monkey home page Code Monkey logo

cocoa-ocpn's Introduction

----------------------------------------------------------------------
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. CarCode's Own remarks.  (In English)
-------------------------------------------------- --------------------
Why this version OpenCPN at all?
  Initially, there was no version for Mac OS X for years.
  It was tedious to get the source code for OS X due to previous attempts
  to compile. The programmers wanted the knowledge gained from this
  from OpenCPN initially do not accept. Only later was it recognized
  that only newer versions of wxWidgets will work for Mac OS X,
  and that control via menus is not so bad. 
  Many text strings in the source code were not translatable and
  the help system as well as other functions did not correspond to
  Apple's familiar environment. Other deviations from the original code are:

   a. This version of OCPN is a purely German version for Mac OS X
    (now macOS) Mojave (10.14) and Catalina (10.15).
    The macOS operating system should be supported as far as possible,
    including Mac menus, Mac help, etc. Only Mojave and Catalina will be
    supported, older versions will no longer be supported. Neither Big Sur
    nor Macs with M1 chips have been tested so far.
    Presumably it will not work for newer versions of macOS anytime soon,
    because Apple's OpenGL library soon will no longer be supported. (Deprecated)

    b. This version is based on the release version of wxWidgets (3.1.5) with
    corresponding dylibs from March 8th 2021. The integration of the libs as
    Static was discarded, as this unnecessarily inflated the entire package.

    c. In a further step, a binary version of OCPN for Mac introduced an
    automatic update service with Sparkle (Mac Only).

    d. Not all plugins are running smoothly so far. Some haven't been
    compiled, others still have errors.

    e. Except for the above problems, because of the plugins, only the dynamic
    libraries of Using wxWidgets, the plugin concept has other disadvantages:
    At runtime, the various locale files from OCPN and connected to the
    plugins so that similar strings with different translations lead to errors.

    f. The concept desired by the OCPN programmers, the plugins as
    Compiled stand-alone was again abandoned as it became larger
    Plugin files and only offers advantages if plugins with different
    OCPN versions should run. It also becomes more cumbersome to code
    Keeping track of changes in several places, e.g. with the wxJSON Files.
    In addition, the new concept of the OpenCPN original for updates from
    Plugins not adopted because still not mature and very much error-prone.
    This OpenCPN version is always included with the plugins delivered together
    that work reasonably well.  The biggest change, however, is the use of
    Clang / LLVM with Xcode instead of the command line oriented 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

wxWidgets directive:
Get sources from https://github.com/wxWidgets/wxWidgets.git branch master
I use the SourceTree.app for Mac OS X.

Create a new directory in the source tree, e.g. "build-cocoa-debug".
Change to this directory in the terminal and configure with:

../configure --with-expat = builtin --enable-unicode --enable-shared --enable-debug --disable-compat28 --with-osx-cocoa --with-macosx-sdk = / Applications / Xcode .app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs / MacOSX.sdk --without-liblzma --with-zlib = builtin --with-libpng = builtin --with-libjpeg = builtin --without- libtiff CXXFLAGS = -stdlib = libc ++ OBJCXXFLAGS = -stdlib = libc ++ LDFLAGS = -stdlib = libc ++ CXX = clang ++ CC = clang

Then enter: make
and finally typing: sudo make install

The dylibs and headers are installed in: / usr / local / Lib /
or /usr/local/include/wx-3.1

To get a standalone OpenCPN version, OpenCPN and the
dylibs (in the Contents / Frameworks / directory or Contents / Plugins / directory)
can be edited with "install_name_tool -change"!
See batchwx.sh or Xcode Scripts.

wxCurl was also compiled as a dynamic library in this way.

NOTE:
GitHub no longer easily accepts large files (> 100 MB).
The file /data/gshhs/poly-f-1.dat with ~ 172 MB must therefore be fetched separately
and copied to / data / gshhs /:
https://topperdiek.de/dl/ocpn/poly-f-1.dat
-------------------------------------------------- ---------------------
March 10, 2021

cocoa-ocpn's People

Contributors

carcode avatar sbfreddie avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.