-
-
Notifications
You must be signed in to change notification settings - Fork 164
Compiling
Clone Marble using the lnm/1.1
branch from my repository clone here: https://github.com/albar965/marble/tree/lnm/1.1
All examples below are for release builds. Adapt the paths according to you file structure and used Qt version.
The Marble installation process is terribly broken for Windows and even more for macOS. You have to copy the include files and libraries manually.
cmake -DCMAKE_BUILD_TYPE=Release -DSTATIC_BUILD=TRUE -DQTONLY=TRUE -DBUILD_MARBLE_EXAMPLES=NO -DBUILD_INHIBIT_SCREENSAVER_PLUGIN=NO -DBUILD_MARBLE_APPS=NO -DBUILD_MARBLE_EXAMPLES=NO -DBUILD_MARBLE_TESTS=NO -DBUILD_MARBLE_TOOLS=NO -DBUILD_TESTING=NO -DBUILD_WITH_DBUS=NO -DMARBLE_EMPTY_MAPTHEME=YES -DMOBILE=NO -DWITH_DESIGNER_PLUGIN=NO -DWITH_Phonon=NO -DWITH_Qt5Location=NO -DWITH_Qt5Positioning=NO -DWITH_Qt5SerialPort=NO -DWITH_ZLIB=NO -DWITH_libgps=NO -DWITH_libshp=NO -DWITH_libwlocate=NO -DCMAKE_INSTALL_PREFIX=~/Programme/Marble-release -DEXEC_INSTALL_PREFIX=~/Programme/Marble-release -DCMAKE_PREFIX_PATH=$HOME/Qt/5.9.3/gcc_64 ../marble/
Then make -j2
and make install
.
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_MARBLE_EXAMPLES=NO -DBUILD_INHIBIT_SCREENSAVER_PLUGIN=NO -DBUILD_MARBLE_APPS=NO -DBUILD_MARBLE_EXAMPLES=NO -DBUILD_MARBLE_TESTS=NO -DBUILD_MARBLE_TOOLS=NO -DBUILD_TESTING=NO -DBUILD_WITH_DBUS=NO -DMARBLE_EMPTY_MAPTHEME=YES -DMOBILE=NO -DWITH_DESIGNER_PLUGIN=NO -DWITH_Phonon=NO -DWITH_Qt5Location=NO -DWITH_Qt5Positioning=NO -DWITH_Qt5SerialPort=NO -DWITH_ZLIB=NO -DWITH_libgps=NO -DWITH_libshp=NO -DWITH_libwlocate=NO -DCMAKE_PREFIX_PATH=$HOME/Qt/5.9.3/clang_64 -DCMAKE_INSTALL_PREFIX=~/Programme/Marble-release -DEXEC_INSTALL_PREFIX=~/Programme/Marble-release ../marble/
Then make -j2
and make install
.
cd C:\Projekte\build-marble-release
set PATH=%PATH%;C:\Qt\5.9.5\mingw53_32\bin;C:\Qt\Tools\mingw530_32\bin
cmake -Wno-dev -G "MinGW Makefiles" -DQTONLY=TRUE -DQT5BUILD=TRUE -DWITH_quazip=FALSE -DWITH_libshp=FALSE -DWITH_libgps=FALSE -DWITH_libwlocate=FALSE -DWITH_QtLocation=FALSE -DWITH_liblocation=FALSE -DCMAKE_INSTALL_PREFIX="C:\Projekte\Marble-release" -DCMAKE_BUILD_TYPE=Release ..\marble
mingw32-make -j2
mingw32-make install
Examples according to paths above. Adjust as needed.
Copy all header files (*.h
) from C:\Projekte\marble\src\lib\astro
and C:\Projekte\marble\src\lib\marble
including all files the sub-directories to C:\Projekte\Marble-release\include\astro
and C:\Projekte\Marble-release\include\marble
.
You have to flatten the directory hierarchy. Do not copy the sub-directory structure.
Furthermore, copy
C:\Projekte\build-marble-release\src\lib\astro\astrolib_export.h
and C:\Projekte\build-marble-release\src\lib\marble\marble_export.h
to C:\Projekte\Marble-release\include\astro
and C:\Projekte\Marble-release\include\marble
respectively.
Use the shell script below to finalize the installation. Adjust paths and debug/release as needed.
#!/bin/bash
mkdir ~/Programme/Marble-debug/include
mkdir ~/Programme/Marble-debug/include/astro
mkdir ~/Programme/Marble-debug/include/marble
mkdir ~/Programme/Marble-debug/lib
mkdir ~/Programme/Marble-debug/lib/plugins
for i in `find ~/Projekte/marble/src/lib/astro -name *.h` ; do cp -av $i ~/Programme/Marble-debug/include/astro ;done
for i in `find ~/Projekte/build-marble-debug/src/lib/astro -name *.h` ; do cp -av $i ~/Programme/Marble-debug/include/astro ;done
for i in `find ~/Projekte/marble/src/lib/marble -name *.h` ; do cp -v $i ~/Programme/Marble-debug/include/marble ;done
for i in `find ~/Projekte/build-marble-debug/src/lib/marble -name *.h` ; do cp -av $i ~/Programme/Marble-debug/include/marble ;done
for i in `find ~/Projekte/build-marble-debug/src/plugins -name *.so` ; do cp -av $i ~/Programme/Marble-debug/lib/plugins/ ;done
for i in `find ~/Projekte/build-marble-debug/src/lib/marble -name *.dylib` ; do cp -av $i ~/Programme/Marble-debug/lib/ ;done
Qt development packages of Core, Widgets, XML and SQL are needed with minimum version 5.6. GIT command line tools are required.
You need to install the FSX/P3D Simconnect libraries for the Windows build.
- Get and install Qt Creator from http://www.qt.io.
- Set a base directory for the builds in
Options
->Build & Run
: For exampleC:\Projects
- Clone atools GIT repository (git clone https://github.com/albar965/atools.git)
- Import atools into the Qt Creator workspace.
- Configure the project and enable shadow build for release or debug versions.
-- Clone atools from GIT to e.g.:
C:\Projects\atools
-- Use../build-%{CurrentProject:Name}-%{CurrentBuild:Type}
forDefault build directory
in the Qt Creator options dialog. -- For atools use the build directory of e.g.:C:\Projects\build-atools-release
- Adapt the
QT_BIN
,GIT_BIN
,SIMCONNECT
,INCLUDEPATH
andLIBS
variables inatools.pro
. - Set the build kit for atools and littlenavmap to MinGW 32bit.
- Run qmake from Qt Creator
- Build
Do not use the default shadow build directory names, this will break project dependencies.
The atools can be built using the mingw environment only.
Install Qt development packages. Version at least 5.6.
Create the build directories on the same level as the source directory atools
.
mkdir build-atools-release
cd build-atools-release
qmake ../atools/atools.pro CONFIG+=release
make
mkdir build-atools-debug
cd build-atools-debug
qmake ../atools/atools.pro CONFIG+=debug
make
This depends on the atools
library. Make sure you installed, configured and compiled all necessary
tools as described in https://github.com/albar965/atools/blob/master/BUILD.txt.
See the needed setup for Qt Creator there.
Qt development packages of Core, Widgets, XML and SQL are needed with minimum version 5.6. GIT command line tools are required. The marble widget is needed (see https://github.com/albar965/littlenavmap/wiki/Compiling#compile-marble).
- Clone atools GIT repository (git clone https://github.com/albar965/atools.git)
- Clone littlenavmap GIT repository (git clone https://github.com/albar965/littlenavmap.git) into the same directory as atools.
Get Marble from my repository which contains a few needed improvements:
https://github.com/albar965/marble.git
Build an install it according to the included instructions here
https://github.com/albar965/littlenavmap/wiki/Compiling#compile-marble .
Use branch lnm/1.1
for the Marble build.
- Get
Win32 OpenSSL v1.0.1u
from https://slproweb.com/products/Win32OpenSSL.html and install it. - Configure the projects and enable shadow build for release or debug versions.
- Clone littlenavmap from GIT to e.g.:
C:\Projects\littlenavmap
. Use the same base directory as foratools
. - For littlenavmap use the build directory of e.g.:
C:\Projects\build-littlenavmap-release
- Adapt the
QT_BIN
,GIT_BIN
,SIMCONNECT
and other variables inlittlenavmap.pro
. You should use the same values as foratools
. - Set the build kit for atools and littlenavmap to MinGW 32bit.
- Set a dependency to
atools
inProject Settings
for littlenavmap. - Run qmake from Qt Creator for all projects
- Build all projects from Qt Creator
Do not use the default shadow build directory names, this will break project dependencies.
Install Qt development packages. Version at least 5.6.
Build atools according to instructions in BUILD.txt.
Create all build directories on the same level as the source directories atools
and littlenavmap
.
To build the release version:
- mkdir build-littlenavmap-release
- cd build-littlenavmap-release
- qmake ../littlenavmap/littlenavmap.pro CONFIG+=release
- make
To build the debug version:
- mkdir build-littlenavmap-debug
- cd build-littlenavmap-debug
- qmake ../littlenavmap/littlenavmap.pro CONFIG+=debug
- make
Little Navmap has to be built using the mingw environment as Marble compiles only on the same.
Make sure to use the correct branches to avoid breaking dependencies. The branch master is the unstable development branch but all software should compile there.
For releases check the release/MAJOR.MINOR branches to get the correct dependencies. The atools branch is usually one MAJOR number ahead.
So Little Navmap branch release/1.2 should work well with atools release/2.2 for example.