mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-01-19 04:52:12 +01:00
Merged in filnet/librepilot/filnet/LP-30_3rdparty_build_scripts (pull request #50)
LP-30 added build scripts for osg (including windows dependencies), osgearth and marble
This commit is contained in:
commit
ac76fc768f
2
make/3rdparty/3rdparty.mk
vendored
Normal file
2
make/3rdparty/3rdparty.mk
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
-include $(ROOT_DIR)/make/3rdparty/osgearth/osgearth.mk
|
||||
-include $(ROOT_DIR)/make/3rdparty/marble/marble.mk
|
13
make/3rdparty/marble/googlesat.patch
vendored
Normal file
13
make/3rdparty/marble/googlesat.patch
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git a/googlesat.dgml b/googlesat.dgml
|
||||
index 6e9fbd3..42f5e72 100644
|
||||
--- a/googlesat.dgml
|
||||
+++ b/googlesat.dgml
|
||||
@@ -26,7 +26,7 @@
|
||||
<sourcedir format="JPG"> earth/googlesat </sourcedir>
|
||||
<storageLayout levelZeroColumns="1" levelZeroRows="1" maximumTileLevel="20" mode="Custom" />
|
||||
<projection name="Mercator" />
|
||||
- <downloadUrl protocol="http" host="khm.google.com" path="/kh/v=113&hl=de&x={x}&s=&y={y}&z={zoomLevel}&s=Ga" />
|
||||
+ <downloadUrl protocol="http" host="khm.google.com" path="/kh/v=184&hl=de&x={x}&s=&y={y}&z={zoomLevel}&s=Ga" />
|
||||
</texture>
|
||||
<texture name="streets" expire="604800" >
|
||||
<sourcedir format="PNG"> earth/googlesat/streets </sourcedir>
|
13
make/3rdparty/marble/marble-15.08.1.patch
vendored
Normal file
13
make/3rdparty/marble/marble-15.08.1.patch
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git a/src/apps/marble-qt/QtMainWindow.cpp b/src/apps/marble-qt/QtMainWindow.cpp
|
||||
index da9f44f..b3f4ee3 100644
|
||||
--- a/src/apps/marble-qt/QtMainWindow.cpp
|
||||
+++ b/src/apps/marble-qt/QtMainWindow.cpp
|
||||
@@ -432,7 +432,7 @@ void MainWindow::createActions()
|
||||
void MainWindow::createMenus( const QList<QAction*> &panelActions )
|
||||
{
|
||||
#ifdef Q_OS_WIN
|
||||
- m_downloadAction.setEnabled( false );
|
||||
+ m_downloadAction->setEnabled( false );
|
||||
#endif
|
||||
|
||||
m_fileMenu = menuBar()->addMenu(tr("&File"));
|
166
make/3rdparty/marble/marble.mk
vendored
Normal file
166
make/3rdparty/marble/marble.mk
vendored
Normal file
@ -0,0 +1,166 @@
|
||||
################################
|
||||
# Targets to build Marble
|
||||
#
|
||||
################################
|
||||
# Linux prerequisites
|
||||
################################
|
||||
#
|
||||
#
|
||||
################################
|
||||
# Windows prerequisites
|
||||
################################
|
||||
#
|
||||
#
|
||||
################################
|
||||
# Building
|
||||
################################
|
||||
#
|
||||
# $ make all_marble
|
||||
#
|
||||
################################
|
||||
|
||||
# TODO should be discovered
|
||||
QT_VERSION := 5.4.1
|
||||
|
||||
MARBLE_NAME_PREFIX :=
|
||||
MARBLE_NAME_SUFIX := -qt-$(QT_VERSION)
|
||||
|
||||
################################
|
||||
#
|
||||
# Marble
|
||||
#
|
||||
################################
|
||||
|
||||
MARBLE_VERSION := 15.08.1
|
||||
MARBLE_GIT_BRANCH := v$(MARBLE_VERSION)
|
||||
|
||||
MARBLE_BASE_NAME := marble-$(MARBLE_VERSION)
|
||||
MARBLE_BUILD_CONF := Release
|
||||
|
||||
ifeq ($(UNAME), Linux)
|
||||
ifeq ($(ARCH), x86_64)
|
||||
MARBLE_NAME := $(MARBLE_BASE_NAME)-linux-x64
|
||||
else
|
||||
MARBLE_NAME := $(MARBLE_BASE_NAME)-linux-x86
|
||||
endif
|
||||
MARBLE_DATA_BASE_DIR := share/marble/data
|
||||
MARBLE_CMAKE_GENERATOR := "Unix Makefiles"
|
||||
# for some reason Qt is not added to the path in make/tools.mk
|
||||
MARBLE_BUILD_PATH := $(QT_SDK_PREFIX)/bin:$(PATH)
|
||||
else ifeq ($(UNAME), Darwin)
|
||||
MARBLE_NAME := $(MARBLE_BASE_NAME)-clang_64
|
||||
MARBLE_DATA_BASE_DIR := share/marble/data
|
||||
MARBLE_CMAKE_GENERATOR := "Unix Makefiles"
|
||||
# for some reason Qt is not added to the path in make/tools.mk
|
||||
MARBLE_BUILD_PATH := $(QT_SDK_PREFIX)/bin:$(PATH)
|
||||
else ifeq ($(UNAME), Windows)
|
||||
MARBLE_NAME := $(MARBLE_BASE_NAME)-$(QT_SDK_ARCH)
|
||||
MARBLE_DATA_BASE_DIR := data
|
||||
MARBLE_CMAKE_GENERATOR := "MinGW Makefiles"
|
||||
# CMake is quite picky about its PATH and will complain if sh.exe is found in it
|
||||
MARBLE_BUILD_PATH := "$(TOOLS_DIR)/bin;$(QT_SDK_PREFIX)/bin;$(MINGW_DIR)/bin;$$SYSTEMROOT/System32"
|
||||
endif
|
||||
|
||||
MARBLE_NAME := $(MARBLE_NAME_PREFIX)$(MARBLE_NAME)$(MARBLE_NAME_SUFIX)
|
||||
MARBLE_SRC_DIR := $(ROOT_DIR)/3rdparty/marble
|
||||
MARBLE_BUILD_DIR := $(BUILD_DIR)/3rdparty/$(MARBLE_NAME)
|
||||
MARBLE_INSTALL_DIR := $(BUILD_DIR)/3rdparty/install/$(MARBLE_NAME)
|
||||
MARBLE_DATA_DIR := $(MARBLE_INSTALL_DIR)/$(MARBLE_DATA_BASE_DIR)
|
||||
MARBLE_PATCH_FILE := $(ROOT_DIR)/make/3rdparty/marble/marble-$(MARBLE_VERSION).patch
|
||||
|
||||
GOOGLE_SAT_PATCH_FILE := $(ROOT_DIR)/make/3rdparty/marble/googlesat.patch
|
||||
|
||||
.PHONY: marble
|
||||
marble:
|
||||
@$(ECHO) "Building marble $(call toprel, $(MARBLE_SRC_DIR)) into $(call toprel, $(MARBLE_BUILD_DIR))"
|
||||
$(V1) $(MKDIR) -p $(MARBLE_BUILD_DIR)
|
||||
$(V1) ( $(CD) $(MARBLE_BUILD_DIR) && \
|
||||
PATH=$(MARBLE_BUILD_PATH) && \
|
||||
$(CMAKE) -Wno-dev -G $(MARBLE_CMAKE_GENERATOR) -DCMAKE_BUILD_TYPE=$(MARBLE_BUILD_CONF) \
|
||||
-DQTONLY=1 -DQT5BUILD=1 -DWITH_DESIGNER_PLUGIN=0 \
|
||||
-DCMAKE_INSTALL_PREFIX=$(MARBLE_INSTALL_DIR) $(MARBLE_SRC_DIR) && \
|
||||
$(MAKE) && \
|
||||
$(MAKE) install ; \
|
||||
)
|
||||
@$(ECHO) "Copying restricted maps to $(call toprel, $(MARBLE_DATA_DIR))"
|
||||
@$(ECHO) "Copying Google Maps"
|
||||
$(V1) $(MKDIR) -p $(MARBLE_DATA_DIR)/maps/earth/googlemaps
|
||||
$(V1) $(CP) $(MARBLE_SRC_DIR)/googlemaps/googlemaps.dgml $(MARBLE_DATA_DIR)/maps/earth/googlemaps/
|
||||
$(V1) $(CP) $(MARBLE_SRC_DIR)/googlemaps/preview.png $(MARBLE_DATA_DIR)/maps/earth/googlemaps/
|
||||
$(V1) $(CP) -R $(MARBLE_SRC_DIR)/googlemaps/0 $(MARBLE_DATA_DIR)/maps/earth/googlemaps/
|
||||
@$(ECHO) "Copying Google Sat"
|
||||
$(V1) $(MKDIR) -p $(MARBLE_DATA_DIR)/maps/earth/googlesat
|
||||
$(V1) $(CP) $(MARBLE_SRC_DIR)/googlesat/googlesat.dgml $(MARBLE_DATA_DIR)/maps/earth/googlesat/
|
||||
$(V1) $(CP) $(MARBLE_SRC_DIR)/googlesat/preview.png $(MARBLE_DATA_DIR)/maps/earth/googlesat/
|
||||
$(V1) $(CP) -R $(MARBLE_SRC_DIR)/googlesat/0 $(MARBLE_DATA_DIR)/maps/earth/googlesat/
|
||||
$(V1) $(CP) -R $(MARBLE_SRC_DIR)/googlesat/streets $(MARBLE_DATA_DIR)/maps/earth/googlesat/
|
||||
|
||||
.PHONY: package_marble
|
||||
package_marble:
|
||||
@$(ECHO) "Packaging $(call toprel, $(MARBLE_INSTALL_DIR)) into $(notdir $(MARBLE_INSTALL_DIR)).tar"
|
||||
#$(V1) $(CP) $(ROOT_DIR)/make/3rdparty/marble/LibrePilotReadme.txt $(MARBLE_INSTALL_DIR)/
|
||||
$(V1) ( \
|
||||
$(CD) $(MARBLE_INSTALL_DIR)/.. && \
|
||||
$(TAR) cf $(notdir $(MARBLE_INSTALL_DIR)).tar $(notdir $(MARBLE_INSTALL_DIR)) && \
|
||||
$(ZIP) -f $(notdir $(MARBLE_INSTALL_DIR)).tar && \
|
||||
$(call MD5_GEN_TEMPLATE,$(notdir $(MARBLE_INSTALL_DIR)).tar.gz) ; \
|
||||
)
|
||||
|
||||
.NOTPARALLEL:
|
||||
.PHONY: prepare_marble
|
||||
prepare_marble: clone_marble
|
||||
|
||||
.PHONY: clone_marble
|
||||
clone_marble:
|
||||
$(V1) if [ ! -d "$(MARBLE_SRC_DIR)" ]; then \
|
||||
$(ECHO) "Cloning marble..." ; \
|
||||
$(GIT) clone --no-checkout git://anongit.kde.org/marble $(MARBLE_SRC_DIR) ; \
|
||||
fi
|
||||
@$(ECHO) "Fetching marble..."
|
||||
$(V1) ( $(CD) $(MARBLE_SRC_DIR) && $(GIT) fetch ; )
|
||||
@$(ECHO) "Checking out marble $(MARBLE_GIT_BRANCH)"
|
||||
$(V1) ( $(CD) $(MARBLE_SRC_DIR) && $(GIT) fetch --tags ; )
|
||||
$(V1) ( $(CD) $(MARBLE_SRC_DIR) && $(GIT) checkout --quiet --force $(MARBLE_GIT_BRANCH) ; )
|
||||
$(V1) if [ -e $(MARBLE_PATCH_FILE) ]; then \
|
||||
$(ECHO) "Patching marble..." ; \
|
||||
( $(CD) $(MARBLE_SRC_DIR) && $(GIT) apply $(MARBLE_PATCH_FILE) ; ) \
|
||||
fi
|
||||
|
||||
$(V1) if [ ! -d "$(MARBLE_SRC_DIR)/googlemaps" ]; then \
|
||||
$(ECHO) "Cloning googlemaps to $(call toprel, $(MARBLE_SRC_DIR)/googlemaps)" ; \
|
||||
$(GIT) clone https://gitlab.com/marble-restricted-maps/googlemaps.git $(MARBLE_SRC_DIR)/googlemaps ; \
|
||||
fi
|
||||
@$(ECHO) "Fetching googlemaps..."
|
||||
$(V1) ( $(CD) $(MARBLE_SRC_DIR)/googlemaps && $(GIT) fetch ; )
|
||||
@$(ECHO) "Checking out googlemaps"
|
||||
$(V1) ( $(CD) $(MARBLE_SRC_DIR)/googlemaps && $(GIT) checkout --quiet --force master ; )
|
||||
|
||||
$(V1) if [ ! -d "$(MARBLE_SRC_DIR)/googlesat" ]; then \
|
||||
$(ECHO) "Cloning googlesat to $(call toprel, $(MARBLE_SRC_DIR)/googlesat)" ; \
|
||||
$(GIT) clone https://gitlab.com/marble-restricted-maps/googlesat.git $(MARBLE_SRC_DIR)/googlesat ; \
|
||||
fi
|
||||
@$(ECHO) "Fetching googlesat..."
|
||||
$(V1) ( $(CD) $(MARBLE_SRC_DIR)/googlesat && $(GIT) fetch ; )
|
||||
@$(ECHO) "Checking out googlesat"
|
||||
$(V1) ( $(CD) $(MARBLE_SRC_DIR)/googlesat && $(GIT) checkout --quiet --force master ; )
|
||||
$(V1) if [ -e $(GOOGLE_SAT_PATCH_FILE) ]; then \
|
||||
$(ECHO) "Patching google sat..." ; \
|
||||
( $(CD) $(MARBLE_SRC_DIR)/googlesat && $(GIT) apply $(GOOGLE_SAT_PATCH_FILE) ; ) \
|
||||
fi
|
||||
|
||||
.PHONY: clean_marble
|
||||
clean_marble:
|
||||
@$(ECHO) $(MSG_CLEANING) $(call toprel, $(MARBLE_BUILD_DIR))
|
||||
$(V1) [ ! -d "$(MARBLE_BUILD_DIR)" ] || $(RM) -r "$(MARBLE_BUILD_DIR)"
|
||||
@$(ECHO) $(MSG_CLEANING) $(call toprel, $(MARBLE_INSTALL_DIR))
|
||||
$(V1) [ ! -d "$(MARBLE_INSTALL_DIR)" ] || $(RM) -r "$(MARBLE_INSTALL_DIR)"
|
||||
|
||||
.PHONY: clean_all_marble
|
||||
clean_all_marble: clean_marble
|
||||
@$(ECHO) $(MSG_CLEANING) $(call toprel, $(MARBLE_SRC_DIR))
|
||||
$(V1) [ ! -d "$(MARBLE_SRC_DIR)" ] || $(RM) -r "$(MARBLE_SRC_DIR)"
|
||||
|
||||
.NOTPARALLEL:
|
||||
.PHONY: all_marble
|
||||
all_marble: prepare_marble marble package_marble
|
||||
|
54
make/3rdparty/osgearth/README.TXT
vendored
Normal file
54
make/3rdparty/osgearth/README.TXT
vendored
Normal file
@ -0,0 +1,54 @@
|
||||
This document describes how to build osg and osgEarth.
|
||||
|
||||
Building osgEarth requires:
|
||||
* osgEarth (http://osgearth.org/)
|
||||
* OpenSceneGraph (http://www.openscenegraph.org/)
|
||||
* GDAL (http://www.gdal.org/)
|
||||
* zlib, png, etc...
|
||||
|
||||
Make sure all LibrePilot SDKs are up to date as the osgEarth build relies on them.
|
||||
|
||||
More details can be found in osgearth.mk.
|
||||
|
||||
|
||||
Linux prerequisites
|
||||
----------------------------------
|
||||
|
||||
$ sudo apt-get install libzip-dev libpng-dev lipjpeg-dev libtiff5-dev libcurl4-openssl-dev
|
||||
$ sudo apt-get install libgeos++-dev libgdal-dev
|
||||
|
||||
Alternative (not tested recently but could work):
|
||||
$ sudo apt-get build-dep openscenegraph
|
||||
|
||||
Tested with:
|
||||
|
||||
$ curl --version
|
||||
curl 7.35.0 (i686-pc-linux-gnu) libcurl/7.35.0 OpenSSL/1.0.1f zlib/1.2.8 libidn/1.28 librtmp/2.3
|
||||
|
||||
$ gdal-config --version
|
||||
1.10.1
|
||||
|
||||
|
||||
OSX prerequisites
|
||||
----------------------------------
|
||||
|
||||
brew install cmake
|
||||
brew install gdal
|
||||
|
||||
Windows prerequisites
|
||||
----------------------------------
|
||||
|
||||
Windows requires many libraries to be build.
|
||||
See osg_win.sh for more details.
|
||||
|
||||
|
||||
Building
|
||||
----------------------------------
|
||||
|
||||
$ make all_osg
|
||||
|
||||
This will:
|
||||
- clone git repositories in ./3rdparty
|
||||
- build osg and osgEarth libraries in ./build/3rdparty
|
||||
- install osg in ./build/3rdparty/install
|
||||
- create distribution files (tar & md5) in ./build/3rdparty/install
|
48
make/3rdparty/osgearth/gdal_GNUmakefile_fix.patch
vendored
Normal file
48
make/3rdparty/osgearth/gdal_GNUmakefile_fix.patch
vendored
Normal file
@ -0,0 +1,48 @@
|
||||
Index: GNUmakefile
|
||||
===================================================================
|
||||
--- GNUmakefile (revision 22722)
|
||||
+++ GNUmakefile (copie de travail)
|
||||
@@ -1,13 +1,13 @@
|
||||
|
||||
include GDALmake.opt
|
||||
|
||||
-GDAL_OBJ = $(GDAL_ROOT)/frmts/o/*.o \
|
||||
- $(GDAL_ROOT)/gcore/*.o \
|
||||
- $(GDAL_ROOT)/port/*.o \
|
||||
- $(GDAL_ROOT)/alg/*.o
|
||||
+GDAL_OBJ = ./frmts/o/*.o \
|
||||
+ ./gcore/*.o \
|
||||
+ ./port/*.o \
|
||||
+ ./alg/*.o
|
||||
|
||||
ifeq ($(OGR_ENABLED),yes)
|
||||
-GDAL_OBJ += $(GDAL_ROOT)/ogr/ogrsf_frmts/o/*.o
|
||||
+GDAL_OBJ += ./ogr/ogrsf_frmts/o/*.o
|
||||
endif
|
||||
|
||||
include ./ogr/file.lst
|
||||
@@ -28,13 +28,8 @@
|
||||
$(LD_SHARED) $(GDAL_SLIB_SONAME) $(GDAL_OBJ) $(GDAL_LIBS) $(LDFLAGS) $(LIBS) \
|
||||
-o $(GDAL_SLIB)
|
||||
|
||||
-$(GDAL_LIB): $(GDAL_OBJ) GDALmake.opt
|
||||
- rm -f libgdal.a
|
||||
- $(AR) r $(GDAL_LIB) $(GDAL_OBJ)
|
||||
- $(RANLIB) $(GDAL_LIB)
|
||||
-
|
||||
-$(GDAL_SLIB): $(GDAL_OBJ) $(GDAL_LIB)
|
||||
- $(LD_SHARED) $(GDAL_SLIB_SONAME) $(GDAL_OBJ) $(GDAL_LIBS) $(LDFLAGS) $(LIBS) \
|
||||
+$(GDAL_SLIB): $(GDAL_OBJ)
|
||||
+ $(LD_SHARED) $(GDAL_SLIB_SONAME) $(GDAL_OBJ) $(LDFLAGS) $(LIBS) \
|
||||
-o $(GDAL_SLIB)
|
||||
|
||||
$(LIBGDAL): $(GDAL_OBJ:.o=.lo)
|
||||
@@ -47,7 +42,7 @@
|
||||
endif
|
||||
|
||||
check-lib: port-target core-target frmts-target ogr-target
|
||||
- $(MAKE) $(LIBGDAL-yes)
|
||||
+ $(MAKE) $(GDAL_SLIB)
|
||||
|
||||
port-target:
|
||||
(cd port; $(MAKE))
|
12
make/3rdparty/osgearth/osg-3.4.patch
vendored
Normal file
12
make/3rdparty/osgearth/osg-3.4.patch
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
|
||||
index 33edf57..d2ea025 100644
|
||||
--- a/src/CMakeLists.txt
|
||||
+++ b/src/CMakeLists.txt
|
||||
@@ -27,7 +27,6 @@ FOREACH( mylibfolder
|
||||
osgUI
|
||||
osgVolume
|
||||
osgWrappers/serializers
|
||||
- osgWrappers/deprecated-dotosg
|
||||
osgPlugins
|
||||
)
|
||||
|
388
make/3rdparty/osgearth/osg_win.sh
vendored
Normal file
388
make/3rdparty/osgearth/osg_win.sh
vendored
Normal file
@ -0,0 +1,388 @@
|
||||
#!/bin/sh -e
|
||||
################################################################################
|
||||
#
|
||||
# This script compiles OSG and OSGEarth dependencies (GDAL, GEOS, ...)
|
||||
#
|
||||
# Known to work with MSYS 1.0.11
|
||||
# A zip file is provided here http://librepilot.github.io/tools/MSYS-1.0.11.zip
|
||||
# This zip is based on the official http://downloads.sourceforge.net/mingw/MSYS-1.0.11.exe
|
||||
# It was generated by installing MSYS-1.0.11.exe and adding to it:
|
||||
# - http://gnuwin32.sourceforge.net/packages/wget.htm
|
||||
# - http://gnuwin32.sourceforge.net/packages/libintl.htm
|
||||
# - http://gnuwin32.sourceforge.net/packages/libiconv.htm
|
||||
# And finally zipping the resulting directory (minus Readme.txt)
|
||||
#
|
||||
# A good source for building with mingw :
|
||||
# http://www.gaia-gis.it/gaia-sins/mingw_how_to.html
|
||||
#
|
||||
# Sample command line to execute this script from a MS shell :
|
||||
# .\tools\msys\bin\sh --login -i -c /d/Projects/LibrePilot/make/3rdparty/osgearth/osg_win.sh
|
||||
#
|
||||
# Executing this script from git bash does not seem to work.
|
||||
#
|
||||
################################################################################
|
||||
|
||||
# turn -x on if DEBUG is set to a non-empty string
|
||||
[ -n "$DEBUG" ] && set -x
|
||||
|
||||
################################################################################
|
||||
# MinGW
|
||||
################################################################################
|
||||
|
||||
#MINGW_DIR=D:/Projects/LibrePilotTools/qt-5.4.1/Tools/mingw491_32
|
||||
if [ -z "$MINGW_DIR" ]; then
|
||||
echo MINGW_DIR not defined. Exiting...
|
||||
exit 1
|
||||
fi
|
||||
|
||||
umount /mingw || true
|
||||
mount $MINGW_DIR /mingw
|
||||
|
||||
################################################################################
|
||||
# Environment
|
||||
################################################################################
|
||||
|
||||
BASE_DIR=$(dirname $0)
|
||||
|
||||
WORK_DIR=$BASE_DIR
|
||||
ROOT_DIR=$BASE_DIR/../../..
|
||||
|
||||
DOWNLOAD_DIR=$ROOT_DIR/downloads/osg
|
||||
SOURCE_DIR=$ROOT_DIR/3rdparty/osg_dependencies
|
||||
BUILD_DIR=$ROOT_DIR/build/3rdparty/osg_dependencies
|
||||
|
||||
HOST=mingw32
|
||||
|
||||
DOWNLOAD_FILES=1
|
||||
|
||||
echo Root dir : $ROOT_DIR
|
||||
echo Work dir : $WORK_DIR
|
||||
echo Build dir : $BUILD_DIR
|
||||
echo MinGW dir : $MINGW_DIR
|
||||
|
||||
################################################################################
|
||||
# download sources
|
||||
################################################################################
|
||||
|
||||
if [ "$DOWNLOAD_FILES" -eq 1 ]; then
|
||||
|
||||
SRC_FILES="
|
||||
http://pkgconfig.freedesktop.org/releases/pkg-config-0.28.tar.gz
|
||||
http://zlib.net/zlib-1.2.8.tar.gz
|
||||
http://www.ijg.org/files/jpegsrc.v9a.tar.gz
|
||||
http://sourceforge.net/projects/libpng/files/libpng16/older-releases/1.6.16/libpng-1.6.16.tar.gz
|
||||
ftp://ftp.remotesensing.org/pub/libtiff/tiff-4.0.3.tar.gz
|
||||
http://sourceforge.net/projects/freetype/files/freetype2/2.5.3/freetype-2.5.3.tar.gz
|
||||
http://curl.haxx.se/download/curl-7.38.0.tar.gz
|
||||
http://download.osgeo.org/proj/proj-4.8.0.tar.gz
|
||||
http://download.osgeo.org/proj/proj-datumgrid-1.5.tar.gz
|
||||
http://download.osgeo.org/geos/geos-3.3.8.tar.bz2
|
||||
http://download.osgeo.org/gdal/1.10.1/gdal-1.10.1.tar.gz
|
||||
"
|
||||
|
||||
mkdir -p $DOWNLOAD_DIR/
|
||||
for f in $SRC_FILES
|
||||
do
|
||||
filename=$(basename "$f")
|
||||
if [ ! -f $DOWNLOAD_DIR/$filename ]; then
|
||||
echo "****************************************"
|
||||
echo "Downloading $filename"
|
||||
echo "****************************************"
|
||||
wget -P $DOWNLOAD_DIR/ $f
|
||||
fi
|
||||
done
|
||||
|
||||
fi
|
||||
|
||||
################################################################################
|
||||
# build all
|
||||
################################################################################
|
||||
|
||||
# list of libraries to build
|
||||
# other candidates include bzip2, libxml2, gif, geotiff, ssl, gl...
|
||||
BUILD_PKGCONFIG=1
|
||||
BUILD_ZLIB=1
|
||||
BUILD_LIBJPEG=1
|
||||
BUILD_LIBPNG=1
|
||||
BUILD_LIBTIFF=1
|
||||
BUILD_FREETYPE=1
|
||||
BUILD_OPENSSL=2
|
||||
BUILD_CURL=1
|
||||
BUILD_PROJ4=1
|
||||
BUILD_GEOS=1
|
||||
BUILD_GDAL=1
|
||||
|
||||
# TODO
|
||||
# libcurl needs to be built with and ssl support
|
||||
# gdal does not seem to link with shared proj4
|
||||
|
||||
# Clean src and build dirs
|
||||
rm -rf $SOURCE_DIR/*
|
||||
rm -rf $BUILD_DIR/*
|
||||
|
||||
mkdir -p $SOURCE_DIR/
|
||||
mkdir -p $BUILD_DIR/
|
||||
mkdir -p $BUILD_DIR/bin/
|
||||
mkdir -p $BUILD_DIR/include/
|
||||
mkdir -p $BUILD_DIR/lib/
|
||||
|
||||
# make sure all libraries see each others
|
||||
export PATH=$BUILD_DIR/bin:$PATH
|
||||
export CPATH=$BUILD_DIR/include
|
||||
export LIBRARY_PATH=$BUILD_DIR/lib
|
||||
export PKG_CONFIG_PATH=$BUILD_DIR/lib/pkgconfig
|
||||
|
||||
# compiler flags
|
||||
export CFLAGS=-O2
|
||||
export CXXFLAGS=-O2
|
||||
|
||||
################################################################################
|
||||
# pkg-config
|
||||
# required by libcurl, gdal, osg, osgearth
|
||||
################################################################################
|
||||
|
||||
if [ "$BUILD_PKGCONFIG" -eq 1 ]; then
|
||||
|
||||
echo "****************************************"
|
||||
echo "Building pkg-config..."
|
||||
echo "****************************************"
|
||||
|
||||
cd $SOURCE_DIR
|
||||
tar xzf $DOWNLOAD_DIR/pkg-config-0.28.tar.gz -C .
|
||||
cd pkg-config-0.28
|
||||
|
||||
./configure --prefix=$BUILD_DIR --build=$HOST \
|
||||
--with-internal-glib
|
||||
make
|
||||
make install
|
||||
|
||||
fi
|
||||
|
||||
################################################################################
|
||||
# ZLIB
|
||||
# required by libcurl, gdal, osg, osgearth
|
||||
################################################################################
|
||||
|
||||
if [ "$BUILD_ZLIB" -eq 1 ]; then
|
||||
|
||||
echo "****************************************"
|
||||
echo "Building zlib..."
|
||||
echo "****************************************"
|
||||
|
||||
cd $SOURCE_DIR
|
||||
tar xzf $DOWNLOAD_DIR/zlib-1.2.8.tar.gz -C .
|
||||
cd zlib-1.2.8
|
||||
|
||||
make -f win32/Makefile.gcc clean
|
||||
make -f win32/Makefile.gcc
|
||||
|
||||
cp -f zlib1.dll $BUILD_DIR/bin/
|
||||
cp -f zconf.h $BUILD_DIR/include/
|
||||
cp -f zlib.h $BUILD_DIR/include/
|
||||
cp -f libz.a $BUILD_DIR/lib/
|
||||
cp -f libz.dll.a $BUILD_DIR/lib/
|
||||
|
||||
fi
|
||||
|
||||
################################################################################
|
||||
# LIBJPEG
|
||||
# required by gdal, osg, osgearth
|
||||
################################################################################
|
||||
|
||||
if [ "$BUILD_LIBJPEG" -eq 1 ]; then
|
||||
|
||||
echo "****************************************"
|
||||
echo "Building libjpeg..."
|
||||
echo "****************************************"
|
||||
|
||||
cd $SOURCE_DIR
|
||||
tar xzf $DOWNLOAD_DIR/jpegsrc.v9a.tar.gz -C .
|
||||
cd jpeg-9a
|
||||
|
||||
./configure --prefix=$BUILD_DIR --build=$HOST
|
||||
make
|
||||
make install-strip
|
||||
|
||||
fi
|
||||
|
||||
################################################################################
|
||||
# LIBPNG
|
||||
# required by gdal, osg, osgearth
|
||||
################################################################################
|
||||
|
||||
if [ "$BUILD_LIBPNG" -eq 1 ]; then
|
||||
|
||||
echo "****************************************"
|
||||
echo "Building libpng..."
|
||||
echo "****************************************"
|
||||
|
||||
cd $SOURCE_DIR
|
||||
tar xzf $DOWNLOAD_DIR/libpng-1.6.16.tar.gz -C .
|
||||
cd libpng-1.6.16
|
||||
|
||||
./configure --prefix=$BUILD_DIR --build=$HOST
|
||||
make
|
||||
make install-strip
|
||||
|
||||
fi
|
||||
|
||||
################################################################################
|
||||
# LIBTIFF
|
||||
# reqires zlib
|
||||
# required by gdal, osg, osgearth
|
||||
################################################################################
|
||||
|
||||
if [ "$BUILD_LIBTIFF" -eq 1 ]; then
|
||||
|
||||
echo "****************************************"
|
||||
echo "Building libtiff..."
|
||||
echo "****************************************"
|
||||
|
||||
cd $SOURCE_DIR
|
||||
tar xzf $DOWNLOAD_DIR/tiff-4.0.3.tar.gz -C .
|
||||
cd tiff-4.0.3
|
||||
|
||||
./configure --prefix=$BUILD_DIR --build=$HOST
|
||||
make
|
||||
make install-strip
|
||||
|
||||
fi
|
||||
|
||||
################################################################################
|
||||
# FreeType
|
||||
################################################################################
|
||||
|
||||
if [ "$BUILD_FREETYPE" -eq 1 ]; then
|
||||
|
||||
echo "****************************************"
|
||||
echo "Building FreeType..."
|
||||
echo "****************************************"
|
||||
|
||||
cd $SOURCE_DIR
|
||||
tar xzf $DOWNLOAD_DIR/freetype-2.5.3.tar.gz -C .
|
||||
cd freetype-2.5.3
|
||||
|
||||
./configure --prefix=$BUILD_DIR
|
||||
make
|
||||
make install
|
||||
|
||||
fi
|
||||
|
||||
################################################################################
|
||||
# OpenSSL
|
||||
################################################################################
|
||||
|
||||
if [ "$BUILD_OPENSSL" -eq 1 ]; then
|
||||
|
||||
echo "****************************************"
|
||||
echo "Building OpenSSL..."
|
||||
echo "****************************************"
|
||||
|
||||
cd $SOURCE_DIR
|
||||
tar xzf $DOWNLOAD_DIR/curl-7.38.0.tar.gz -C .
|
||||
cd curl-7.38.0
|
||||
|
||||
./configure --prefix=$BUILD_DIR --build=$HOST
|
||||
make
|
||||
make install
|
||||
|
||||
fi
|
||||
|
||||
################################################################################
|
||||
# cURL
|
||||
# required by gdal, osgearth
|
||||
################################################################################
|
||||
|
||||
if [ "$BUILD_CURL" -eq 1 ]; then
|
||||
|
||||
echo "****************************************"
|
||||
echo "Building cURL..."
|
||||
echo "****************************************"
|
||||
|
||||
cd $SOURCE_DIR
|
||||
tar xzf $DOWNLOAD_DIR/curl-7.38.0.tar.gz -C .
|
||||
cd curl-7.38.0
|
||||
|
||||
./configure --prefix=$BUILD_DIR --build=$HOST \
|
||||
--enable-shared=yes --with-zlib=$BUILD_DIR
|
||||
make
|
||||
make install-strip
|
||||
|
||||
fi
|
||||
|
||||
################################################################################
|
||||
# PROJ.4
|
||||
# required by osgearth
|
||||
################################################################################
|
||||
|
||||
if [ "$BUILD_PROJ4" -eq 1 ]; then
|
||||
|
||||
echo "****************************************"
|
||||
echo "Building PROJ.4..."
|
||||
echo "****************************************"
|
||||
|
||||
cd $SOURCE_DIR
|
||||
tar -xzf $DOWNLOAD_DIR/proj-4.8.0.tar.gz -C .
|
||||
tar -xzf $DOWNLOAD_DIR/proj-datumgrid-1.5.tar.gz -C proj-4.8.0/nad/
|
||||
cd proj-4.8.0
|
||||
|
||||
./configure --prefix=$BUILD_DIR --build=$HOST \
|
||||
--enable-static=no --enable-shared=yes
|
||||
make
|
||||
make install
|
||||
|
||||
fi
|
||||
|
||||
################################################################################
|
||||
# GEOS
|
||||
# required by gdal
|
||||
################################################################################
|
||||
|
||||
if [ "$BUILD_GEOS" -eq 1 ]; then
|
||||
|
||||
echo "****************************************"
|
||||
echo "Building GEOS..."
|
||||
echo "****************************************"
|
||||
|
||||
cd $SOURCE_DIR
|
||||
tar xjf $DOWNLOAD_DIR/geos-3.3.8.tar.bz2 -C .
|
||||
cd geos-3.3.8
|
||||
|
||||
# TODO why --disable-inline?
|
||||
./configure --prefix=$BUILD_DIR --build=$HOST \
|
||||
--enable-static=no --enable-shared=yes --disable-inline
|
||||
make
|
||||
make install
|
||||
|
||||
fi
|
||||
|
||||
################################################################################
|
||||
# GDAL
|
||||
# requires zlib, libcurl, libpng, libjpeg, libtiff, geos
|
||||
# required by osgearth
|
||||
################################################################################
|
||||
|
||||
if [ "$BUILD_GDAL" -eq 1 ]; then
|
||||
|
||||
echo "****************************************"
|
||||
echo "Building GDAL..."
|
||||
echo "****************************************"
|
||||
|
||||
cd $SOURCE_DIR
|
||||
tar xzf $DOWNLOAD_DIR/gdal-1.10.1.tar.gz -C .
|
||||
cd gdal-1.10.1
|
||||
|
||||
# fix GNUmakefile as described here http://trac.osgeo.org/gdal/wiki/BuildingWithMinGW
|
||||
patch < $WORK_DIR/gdal_GNUmakefile_fix.patch
|
||||
|
||||
./configure --prefix=$BUILD_DIR --build=$HOST \
|
||||
--without-python --without-libtool \
|
||||
--with-xerces=no \
|
||||
--with-libz=$BUILD_DIR --with-curl=$BUILD_DIR \
|
||||
--with-png=$BUILD_DIR --with-jpeg=$BUILD_DIR --with-libtiff=$BUILD_DIR \
|
||||
--with-geos=$BUILD_DIR/bin/geos-config
|
||||
make
|
||||
make install
|
||||
|
||||
fi
|
||||
|
334
make/3rdparty/osgearth/osgearth.mk
vendored
Normal file
334
make/3rdparty/osgearth/osgearth.mk
vendored
Normal file
@ -0,0 +1,334 @@
|
||||
################################
|
||||
# Targets to build osg and osgearth
|
||||
#
|
||||
################################
|
||||
# Linux prerequisites
|
||||
################################
|
||||
#
|
||||
# Install development libraries for:
|
||||
# - zlib
|
||||
# - jpeg
|
||||
# - png
|
||||
# - tiff
|
||||
# - curl
|
||||
# - geos
|
||||
# - gdal
|
||||
#
|
||||
# $ sudo apt-get install libzip-dev libpng-dev lipjpeg-dev libtiff5-dev libcurl4-openssl-dev libgeos++-dev libgdal-dev
|
||||
#
|
||||
# Alternative (not tested)
|
||||
# $ sudo apt-get build-dep openscenegraph
|
||||
#
|
||||
# $ curl --version
|
||||
# curl 7.35.0 (i686-pc-linux-gnu) libcurl/7.35.0 OpenSSL/1.0.1f zlib/1.2.8 libidn/1.28 librtmp/2.3
|
||||
# Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smtp smtps telnet tftp
|
||||
# Features: AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP
|
||||
#
|
||||
# $ gdal-config --version
|
||||
# 1.10.1
|
||||
#
|
||||
# If using Qt 5.3.1, you'll need to workaround this issue : https://bugreports.qt-project.org/browse/QTBUG-39859
|
||||
# by editing the file : ./tool/qt-5.3.1/5.3/gcc/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake
|
||||
# and commenting out this line : _qt5gui_find_extra_libs(EGL "EGL" "" "/usr/include/libdrm")
|
||||
#
|
||||
################################
|
||||
# Windows prerequisites
|
||||
################################
|
||||
#
|
||||
# Windows versions of osg and osgearth require many additional libraries to be build
|
||||
# See osg_win.sh
|
||||
#
|
||||
################################
|
||||
# OSX prerequisites
|
||||
################################
|
||||
#
|
||||
# brew install cmake
|
||||
# brew install gdal
|
||||
#
|
||||
################################
|
||||
# Building
|
||||
################################
|
||||
#
|
||||
# $ make all_osg
|
||||
#
|
||||
# This will:
|
||||
# - clone the git repositories into the ./3rdparty directory
|
||||
# - build osg in the build directory, building steps are : cmake, make, make install
|
||||
# - intall osg in the build directory
|
||||
# - create distribution files in the build directory
|
||||
# - TODO: upload distribution files to the wiki download page
|
||||
#
|
||||
################################
|
||||
# Todo
|
||||
# - install osgearth in osg (a minor issue in the osgearth cmake file prevents it)
|
||||
# easy to fix then set INSTALL_TO_OSG_DIR=ON when running cmake on osgearth
|
||||
# - don't build osg deprecated code (if we don't use it...)
|
||||
# - add targets to upload distribution files to wiki.
|
||||
# - provide complete list of dependencies for osg and osgearth (current list is most probably incomplete as I already had some stuff installed)
|
||||
#
|
||||
################################
|
||||
|
||||
# TODO should be discovered
|
||||
QT_VERSION := 5.4.1
|
||||
|
||||
################################
|
||||
#
|
||||
# common stuff
|
||||
#
|
||||
################################
|
||||
|
||||
OSG_BUILD_CONF := Release
|
||||
|
||||
OSG_NAME_PREFIX :=
|
||||
OSG_NAME_SUFIX := -qt-$(QT_VERSION)
|
||||
|
||||
################################
|
||||
#
|
||||
# osg
|
||||
#
|
||||
################################
|
||||
|
||||
#OSG_VERSION := 0b63c8ffde
|
||||
#OSG_GIT_BRANCH := $(OSG_VERSION)
|
||||
#OSG_VERSION := 3.4.0-rc5
|
||||
#OSG_GIT_BRANCH := tags/OpenSceneGraph-$(OSG_VERSION)
|
||||
OSG_VERSION := 3.4
|
||||
OSG_GIT_BRANCH := OpenSceneGraph-$(OSG_VERSION)
|
||||
|
||||
OSG_BASE_NAME := osg-$(OSG_VERSION)
|
||||
|
||||
ifeq ($(UNAME), Linux)
|
||||
ifeq ($(ARCH), x86_64)
|
||||
OSG_NAME := $(OSG_BASE_NAME)-linux-x64
|
||||
else
|
||||
OSG_NAME := $(OSG_BASE_NAME)-linux-x86
|
||||
endif
|
||||
OSG_CMAKE_GENERATOR := "Unix Makefiles"
|
||||
OSG_WINDOWING_SYSTEM := "X11"
|
||||
# for some reason Qt is not added to the path in make/tools.mk
|
||||
OSG_BUILD_PATH := $(QT_SDK_PREFIX)/bin:$(PATH)
|
||||
else ifeq ($(UNAME), Darwin)
|
||||
OSG_NAME := $(OSG_BASE_NAME)-clang_64
|
||||
OSG_CMAKE_GENERATOR := "Unix Makefiles"
|
||||
OSG_WINDOWING_SYSTEM := "Cocoa"
|
||||
OSG_BUILD_PATH := $(QT_SDK_PREFIX)/bin:$(PATH)
|
||||
else ifeq ($(UNAME), Windows)
|
||||
OSG_NAME := $(OSG_BASE_NAME)-$(QT_SDK_ARCH)
|
||||
OSG_CMAKE_GENERATOR := "MinGW Makefiles"
|
||||
# CMake is quite picky about its PATH and will complain if sh.exe is found in it
|
||||
OSG_BUILD_PATH := $(MINGW_DIR)/bin:$(QT_SDK_PREFIX)/bin
|
||||
endif
|
||||
|
||||
OSG_NAME := $(OSG_NAME_PREFIX)$(OSG_NAME)$(OSG_NAME_SUFIX)
|
||||
OSG_SRC_DIR := $(ROOT_DIR)/3rdparty/osg
|
||||
OSG_BUILD_DIR := $(BUILD_DIR)/3rdparty/$(OSG_NAME)
|
||||
OSG_INSTALL_DIR := $(BUILD_DIR)/3rdparty/install/$(OSG_NAME)
|
||||
OSG_PATCH_FILE := $(ROOT_DIR)/make/3rdparty/osgearth/osg-$(OSG_VERSION).patch
|
||||
|
||||
.PHONY: osg
|
||||
osg:
|
||||
@$(ECHO) "Building osg $(call toprel, $(OSG_SRC_DIR)) into $(call toprel, $(OSG_BUILD_DIR))"
|
||||
$(V1) $(MKDIR) -p $(OSG_BUILD_DIR)
|
||||
$(V1) ( $(CD) $(OSG_BUILD_DIR) && \
|
||||
PATH=$(OSG_BUILD_PATH) && \
|
||||
$(CMAKE) -G $(OSG_CMAKE_GENERATOR) -DCMAKE_BUILD_TYPE=$(OSG_BUILD_CONF) \
|
||||
-DOSG_USE_QT=ON \
|
||||
-DBUILD_OSG_APPLICATIONS=ON \
|
||||
-DBUILD_OSG_EXAMPLES=OFF \
|
||||
-DBUILD_OPENTHREADS_WITH_QT=OFF \
|
||||
-DOSG_GL3_AVAILABLE=OFF \
|
||||
-DOSG_PLUGIN_SEARCH_INSTALL_DIR_FOR_PLUGINS=OFF \
|
||||
-DCMAKE_PREFIX_PATH=$(BUILD_DIR)/3rdparty/osg_dependencies \
|
||||
-DCMAKE_OSX_ARCHITECTURES="x86_64" \
|
||||
-DOSG_WINDOWING_SYSTEM=$(OSG_WINDOWING_SYSTEM) \
|
||||
-DCMAKE_INSTALL_NAME_DIR=@executable_path/../Plugins \
|
||||
-DCMAKE_INSTALL_PREFIX=$(OSG_INSTALL_DIR) $(OSG_SRC_DIR) && \
|
||||
$(MAKE) && \
|
||||
$(MAKE) install ; \
|
||||
)
|
||||
|
||||
.PHONY: package_osg
|
||||
package_osg:
|
||||
@$(ECHO) "Packaging $(call toprel, $(OSG_INSTALL_DIR)) into $(notdir $(OSG_INSTALL_DIR)).tar"
|
||||
#$(V1) $(CP) $(ROOT_DIR)/make/3rdparty/osgearth/LibrePilotReadme.txt $(OSG_INSTALL_DIR)/
|
||||
$(V1) ( \
|
||||
$(CD) $(OSG_INSTALL_DIR)/.. && \
|
||||
$(TAR) cf $(notdir $(OSG_INSTALL_DIR)).tar $(notdir $(OSG_INSTALL_DIR)) && \
|
||||
$(ZIP) -f $(notdir $(OSG_INSTALL_DIR)).tar && \
|
||||
$(call MD5_GEN_TEMPLATE,$(notdir $(OSG_INSTALL_DIR)).tar.gz) ; \
|
||||
)
|
||||
|
||||
.PHONY: install_win_osg
|
||||
install_win_osg:
|
||||
$(V1) $(CP) $(BUILD_DIR)/3rdparty/osg_dependencies/bin/*.dll $(OSG_INSTALL_DIR)/bin/
|
||||
$(V1) $(CP) $(BUILD_DIR)/3rdparty/osg_dependencies/lib/*.dll $(OSG_INSTALL_DIR)/bin/
|
||||
|
||||
.NOTPARALLEL:
|
||||
.PHONY: prepare_osg
|
||||
prepare_osg: clone_osg
|
||||
|
||||
.PHONY: clone_osg
|
||||
clone_osg:
|
||||
$(V1) if [ ! -d "$(OSG_SRC_DIR)" ]; then \
|
||||
$(ECHO) "Cloning osg..." ; \
|
||||
$(GIT) clone --no-checkout git://github.com/openscenegraph/osg.git $(OSG_SRC_DIR) ; \
|
||||
fi
|
||||
@$(ECHO) "Fetching osg..."
|
||||
$(V1) ( $(CD) $(OSG_SRC_DIR) && $(GIT) fetch ; )
|
||||
@$(ECHO) "Checking out osg $(OSG_GIT_BRANCH)"
|
||||
$(V1) ( $(CD) $(OSG_SRC_DIR) && $(GIT) fetch --tags ; )
|
||||
$(V1) ( $(CD) $(OSG_SRC_DIR) && $(GIT) checkout --quiet --force $(OSG_GIT_BRANCH) ; )
|
||||
$(V1) if [ -e $(OSG_PATCH_FILE) ]; then \
|
||||
$(ECHO) "Patching osg..." ; \
|
||||
( $(CD) $(OSG_SRC_DIR) && $(GIT) apply $(OSG_PATCH_FILE) ; ) \
|
||||
fi
|
||||
|
||||
.PHONY: clean_osg
|
||||
clean_osg:
|
||||
@$(ECHO) $(MSG_CLEANING) $(call toprel, $(OSG_BUILD_DIR))
|
||||
$(V1) [ ! -d "$(OSG_BUILD_DIR)" ] || $(RM) -r "$(OSG_BUILD_DIR)"
|
||||
@$(ECHO) $(MSG_CLEANING) $(call toprel, $(OSG_INSTALL_DIR))
|
||||
$(V1) [ ! -d "$(OSG_INSTALL_DIR)" ] || $(RM) -r "$(OSG_INSTALL_DIR)"
|
||||
|
||||
.PHONY: clean_all_osg
|
||||
clean_all_osg: clean_osg
|
||||
@$(ECHO) $(MSG_CLEANING) $(call toprel, $(OSG_SRC_DIR))
|
||||
$(V1) [ ! -d "$(OSG_SRC_DIR)" ] || $(RM) -r "$(OSG_SRC_DIR)"
|
||||
|
||||
|
||||
################################
|
||||
#
|
||||
# osgearth
|
||||
#
|
||||
################################
|
||||
# TODO
|
||||
# fix Debug build
|
||||
# add option to not build the applications (in Debug mode in particular)
|
||||
|
||||
#OSGEARTH_VERSION := 1873b3a9489
|
||||
#OSGEARTH_GIT_BRANCH := $(OSGEARTH_VERSION)
|
||||
OSGEARTH_VERSION := 2.7
|
||||
OSGEARTH_GIT_BRANCH := osgearth-$(OSGEARTH_VERSION)
|
||||
|
||||
OSGEARTH_BASE_NAME := osgearth-$(OSGEARTH_VERSION)
|
||||
OSGEARTH_BUILD_CONF := $(OSG_BUILD_CONF)
|
||||
|
||||
# osgearth cmake script calls the osgversion executable to find the osg version
|
||||
# this makes it necessary to have osg in the pathes (bin and lib) to make sure the correct one is found
|
||||
# ideally this should not be necessary
|
||||
ifeq ($(UNAME), Linux)
|
||||
ifeq ($(ARCH), x86_64)
|
||||
OSGEARTH_NAME := $(OSGEARTH_BASE_NAME)-linux-x64
|
||||
else
|
||||
OSGEARTH_NAME := $(OSGEARTH_BASE_NAME)-linux-x86
|
||||
endif
|
||||
OSGEARTH_CMAKE_GENERATOR := "Unix Makefiles"
|
||||
# for some reason Qt is not added to the path in make/tools.mk
|
||||
OSGEARTH_BUILD_PATH := $(QT_SDK_PREFIX)/bin:$(OSG_INSTALL_DIR)/bin:$(PATH)
|
||||
ifeq ($(ARCH), x86_64)
|
||||
OSGEARTH_LIB_PATH := $(OSG_INSTALL_DIR)/lib64
|
||||
else
|
||||
OSGEARTH_LIB_PATH := $(OSG_INSTALL_DIR)/lib
|
||||
endif
|
||||
else ifeq ($(UNAME), Darwin)
|
||||
OSGEARTH_NAME := $(OSGEARTH_BASE_NAME)-clang_64
|
||||
OSGEARTH_CMAKE_GENERATOR := "Unix Makefiles"
|
||||
OSG_WINDOWING_SYSTEM := "Cocoa"
|
||||
OSGEARTH_BUILD_PATH := $(QT_SDK_PREFIX)/bin:$(OSG_INSTALL_DIR)/bin:$(PATH)
|
||||
OSGEARTH_LIB_PATH := $(OSG_INSTALL_DIR)/lib
|
||||
else ifeq ($(UNAME), Windows)
|
||||
OSGEARTH_NAME := $(OSGEARTH_BASE_NAME)-$(QT_SDK_ARCH)
|
||||
OSGEARTH_CMAKE_GENERATOR := "MinGW Makefiles"
|
||||
# CMake is quite picky about its PATH and will complain if sh.exe is found in it
|
||||
OSGEARTH_BUILD_PATH := $(MINGW_DIR)/bin:$(QT_SDK_PREFIX)/bin:$(OSG_INSTALL_DIR)/bin
|
||||
OSGEARTH_LIB_PATH := $(OSG_INSTALL_DIR)/lib
|
||||
endif
|
||||
|
||||
OSGEARTH_NAME := $(OSG_NAME_PREFIX)$(OSGEARTH_NAME)$(OSG_NAME_SUFIX)
|
||||
OSGEARTH_SRC_DIR := $(ROOT_DIR)/3rdparty/osgearth
|
||||
OSGEARTH_BUILD_DIR := $(BUILD_DIR)/3rdparty/$(OSGEARTH_NAME)
|
||||
# osgearth will be installed into osg (there is an official option to do that but it seems broken on mingw)
|
||||
#OSGEARTH_INSTALL_DIR := $(BUILD_DIR)/3rdparty/install/$(OSGEARTH_NAME)
|
||||
OSGEARTH_INSTALL_DIR := $(OSG_INSTALL_DIR)
|
||||
OSGEARTH_PATCH_FILE := $(ROOT_DIR)/make/3rdparty/osgearth/osgearth-$(OSGEARTH_VERSION).patch
|
||||
|
||||
.PHONY: osgearth
|
||||
osgearth:
|
||||
@$(ECHO) "Building osgEarth $(call toprel, $(OSGEARTH_SRC_DIR)) into $(call toprel, $(OSGEARTH_BUILD_DIR))"
|
||||
$(V1) $(MKDIR) -p $(OSGEARTH_BUILD_DIR)
|
||||
$(V1) ( $(CD) $(OSGEARTH_BUILD_DIR) && \
|
||||
PATH=$(OSGEARTH_BUILD_PATH) && \
|
||||
LD_LIBRARY_PATH=$(OSGEARTH_LIB_PATH) && \
|
||||
export DYLD_LIBRARY_PATH=$(OSGEARTH_LIB_PATH) && \
|
||||
unset OSG_NOTIFY_LEVEL && \
|
||||
$(CMAKE) -G $(OSGEARTH_CMAKE_GENERATOR) -DCMAKE_BUILD_TYPE=$(OSGEARTH_BUILD_CONF) \
|
||||
-DOSGEARTH_USE_QT=ON \
|
||||
-DINSTALL_TO_OSG_DIR=OFF \
|
||||
-DOSG_DIR=$(OSG_INSTALL_DIR) \
|
||||
-DCMAKE_INCLUDE_PATH=$(OSG_INSTALL_DIR)/include \
|
||||
-DCMAKE_LIBRARY_PATH=$(OSG_INSTALL_DIR)/lib \
|
||||
-DCMAKE_PREFIX_PATH=$(BUILD_DIR)/3rdparty/osg_dependencies \
|
||||
-DCMAKE_OSX_ARCHITECTURES="x86_64" \
|
||||
-DOSG_WINDOWING_SYSTEM=$(OSG_WINDOWING_SYSTEM) \
|
||||
-DCMAKE_INSTALL_NAME_DIR=@executable_path/../Plugins \
|
||||
-DCMAKE_INSTALL_PREFIX=$(OSGEARTH_INSTALL_DIR) $(OSGEARTH_SRC_DIR) && \
|
||||
$(MAKE) && \
|
||||
$(MAKE) install ; \
|
||||
)
|
||||
|
||||
.PHONY: package_osgearth
|
||||
package_osgearth:
|
||||
@$(ECHO) "Packaging $(call toprel, $(OSGEARTH_INSTALL_DIR)) into $(notdir $(OSGEARTH_INSTALL_DIR)).tar"
|
||||
$(V1) ( \
|
||||
$(CD) $(OSGEARTH_INSTALL_DIR)/.. && \
|
||||
$(TAR) cf $(notdir $(OSGEARTH_INSTALL_DIR)).tar $(notdir $(OSGEARTH_INSTALL_DIR)) && \
|
||||
$(ZIP) -f $(notdir $(OSGEARTH_INSTALL_DIR)).tar && \
|
||||
$(call MD5_GEN_TEMPLATE,$(notdir $(OSGEARTH_INSTALL_DIR)).tar.gz) ; \
|
||||
)
|
||||
|
||||
.NOTPARALLEL:
|
||||
.PHONY: prepare_osgearth
|
||||
prepare_osgearth: clone_osgearth
|
||||
|
||||
.PHONY: clone_osgearth
|
||||
clone_osgearth:
|
||||
$(V1) if [ ! -d "$(OSGEARTH_SRC_DIR)" ]; then \
|
||||
$(ECHO) "Cloning osgearth..." ; \
|
||||
$(GIT) clone --no-checkout git://github.com/gwaldron/osgearth.git $(OSGEARTH_SRC_DIR) ; \
|
||||
fi
|
||||
@$(ECHO) "Fetching osgearth..."
|
||||
$(V1) ( $(CD) $(OSGEARTH_SRC_DIR) && $(GIT) fetch ; )
|
||||
@$(ECHO) "Checking out osgearth $(OSGEARTH_GIT_BRANCH)"
|
||||
$(V1) ( $(CD) $(OSGEARTH_SRC_DIR) && $(GIT) fetch --tags ; )
|
||||
$(V1) ( $(CD) $(OSGEARTH_SRC_DIR) && $(GIT) checkout --quiet --force $(OSGEARTH_GIT_BRANCH) ; )
|
||||
$(V1) if [ -f "$(OSGEARTH_PATCH_FILE)" ]; then \
|
||||
$(ECHO) "Patching osgearth..." ; \
|
||||
( $(CD) $(OSGEARTH_SRC_DIR) && $(GIT) apply $(OSGEARTH_PATCH_FILE) ; ) \
|
||||
fi
|
||||
|
||||
.PHONY: clean_osgearth
|
||||
clean_osgearth:
|
||||
@$(ECHO) $(MSG_CLEANING) $(call toprel, $(OSGEARTH_BUILD_DIR))
|
||||
$(V1) [ ! -d "$(OSGEARTH_BUILD_DIR)" ] || $(RM) -r "$(OSGEARTH_BUILD_DIR)"
|
||||
@$(ECHO) $(MSG_CLEANING) $(call toprel, $(OSGEARTH_INSTALL_DIR))
|
||||
$(V1) [ ! -d "$(OSGEARTH_INSTALL_DIR)" ] || $(RM) -r "$(OSGEARTH_INSTALL_DIR)"
|
||||
|
||||
.PHONY: clean_all_osgearth
|
||||
clean_all_osgearth: clean_osgearth
|
||||
@$(ECHO) $(MSG_CLEANING) $(call toprel, $(OSGEARTH_SRC_DIR))
|
||||
$(V1) [ ! -d "$(OSGEARTH_SRC_DIR)" ] || $(RM) -r "$(OSGEARTH_SRC_DIR)"
|
||||
|
||||
################################
|
||||
#
|
||||
# all
|
||||
#
|
||||
################################
|
||||
|
||||
.NOTPARALLEL:
|
||||
.PHONY: all_osg
|
||||
|
||||
ifeq ($(UNAME), Windows)
|
||||
all_osg: prepare_osg prepare_osgearth osg osgearth install_win_osg package_osg
|
||||
else
|
||||
all_osg: prepare_osg prepare_osgearth osg osgearth package_osg
|
||||
endif
|
Loading…
x
Reference in New Issue
Block a user