remove Marble from packaging and build scripts

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>

---
please note, that i have no way to test most of the scripts ATM.
This commit is contained in:
Lubomir I. Ivanov 2017-09-02 14:39:37 +03:00 committed by Dirk Hohndel
parent 4bb180b117
commit 2b40e15713
10 changed files with 15 additions and 143 deletions

View file

@ -18,14 +18,12 @@ MACRO_ENSURE_OUT_OF_SOURCE_BUILD(
option(LIBGIT2_FROM_PKGCONFIG "use pkg-config to retrieve libgit2" OFF)
option(LIBDC_FROM_PKGCONFIG "use pkg-config to retrieve libdivecomputer" OFF)
option(LIBGRANTLEE_FROM_PKGCONFIG "use pkg-config to retrieve grantlee" OFF)
option(LIBMARBLE_FROM_PKGCONFIG "use pkg-config to retrieve marble" OFF)
#Library Handling
option(FORCE_LIBSSH "force linking with libssh to workaround libgit2 bug" ON)
option(LIBGIT2_DYNAMIC "search for libgit2.so before libgit2.a" OFF)
#Options regarding disabling parts of subsurface.
option(NO_MARBLE "disable the marble widget" OFF)
option(NO_DOCS "disable the docs" OFF)
option(NO_PRINTING "disable the printing support" OFF)
option(NO_USERMANUAL "don't include a viewer for the user manual" OFF)
@ -111,7 +109,6 @@ include(cmake/Modules/pkgconfig_helper.cmake)
include(cmake/Modules/HandleFindGit2.cmake)
include(cmake/Modules/HandleFindLibDiveComputer.cmake)
if(${SUBSURFACE_TARGET_EXECUTABLE} MATCHES "DesktopExecutable")
include(cmake/Modules/HandleFindMarble.cmake)
include(cmake/Modules/HandleFindGrantlee.cmake)
include(cmake/Modules/HandleUserManual.cmake)
endif()
@ -391,10 +388,6 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
set(MACDEPLOY_ARGS "${EXTRA_MACDEPLOY_ARGS}-executable=${APP_BUNDLE_DIR}/Contents/MacOS/${SUBSURFACE_TARGET} -always-overwrite")
set(RESOURCEDIR ${CMAKE_BINARY_DIR}/${APP_BUNDLE_DIR}/Contents/Resources)
set(PLUGINDIR ${CMAKE_BINARY_DIR}/${APP_BUNDLE_DIR}/Contents/PlugIns)
if(NOT NO_MARBLE)
install(DIRECTORY marbledata/maps DESTINATION ${RESOURCEDIR}/data)
install(DIRECTORY marbledata/bitmaps DESTINATION ${RESOURCEDIR}/data)
endif()
install(DIRECTORY Documentation/images DESTINATION ${RESOURCEDIR}/share/Documentation)
install(FILES ${DOCFILES} DESTINATION ${RESOURCEDIR}/share/Documentation)
install(DIRECTORY theme DESTINATION ${RESOURCEDIR})
@ -407,10 +400,8 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
if((${SUBSURFACE_TARGET_EXECUTABLE} MATCHES "DesktopExecutable") AND (NOT NO_PRINTING))
install(DIRECTORY ${Grantlee5_DIR}/../../grantlee DESTINATION ${PLUGINDIR})
endif()
if(NO_MARBLE)
install(CODE "execute_process(COMMAND mkdir -p ${PLUGINDIR}/geoservices)")
install(CODE "execute_process(COMMAND cp ${_qt5Core_install_prefix}/plugins/geoservices/libqtgeoservices_googlemaps.dylib ${PLUGINDIR}/geoservices)")
endif()
install(CODE "execute_process(COMMAND mkdir -p ${PLUGINDIR}/geoservices)")
install(CODE "execute_process(COMMAND cp ${_qt5Core_install_prefix}/plugins/geoservices/libqtgeoservices_googlemaps.dylib ${PLUGINDIR}/geoservices)")
# this is a hack - but I don't know how else to find the macdeployqt program if it's not in the PATH
string(REPLACE moc macdeployqt MACDEPLOYQT ${QT_MOC_EXECUTABLE})
install(CODE "execute_process(COMMAND ${MACDEPLOYQT} ${APP_BUNDLE_DIR} ${MACDEPLOY_ARGS})")
@ -419,18 +410,6 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
install(CODE "execute_process(COMMAND cp -a ${_qt5Core_install_prefix}/qml/QtQuick.2 ${CMAKE_BINARY_DIR}/${APP_BUNDLE_DIR}/Contents/Resources/qml)")
install(CODE "execute_process(COMMAND cp -a ${_qt5Core_install_prefix}/qml/QtLocation ${CMAKE_BINARY_DIR}/${APP_BUNDLE_DIR}/Contents/Resources/qml)")
install(CODE "execute_process(COMMAND cp -a ${_qt5Core_install_prefix}/qml/QtPositioning ${CMAKE_BINARY_DIR}/${APP_BUNDLE_DIR}/Contents/Resources/qml)")
if(NOT NO_MARBLE)
# more hackery - this time for QtXml which is needed by libssrfmarblewidget
install(CODE "execute_process(COMMAND cp -a ${_qt5Core_install_prefix}/lib/QtXml.framework ${CMAKE_BINARY_DIR}/${APP_BUNDLE_DIR}/Contents/Frameworks)")
install(CODE "execute_process(COMMAND rm -rf ${CMAKE_BINARY_DIR}/${APP_BUNDLE_DIR}/Contents/Frameworks/QtXml.framework/Versions/5/Headers)")
install(CODE "execute_process(COMMAND rm -rf ${CMAKE_BINARY_DIR}/${APP_BUNDLE_DIR}/Contents/Frameworks/QtXml.framework/Headers)")
install(CODE "execute_process(COMMAND rm -rf ${CMAKE_BINARY_DIR}/${APP_BUNDLE_DIR}/Contents/Frameworks/QtXml.framework/QtXml.prl)")
install(CODE "execute_process(COMMAND rm -rf ${CMAKE_BINARY_DIR}/${APP_BUNDLE_DIR}/Contents/Frameworks/QtXml.framework/Versions/5/QtXml_debug)")
install(CODE "execute_process(COMMAND rm -rf ${CMAKE_BINARY_DIR}/${APP_BUNDLE_DIR}/Contents/Frameworks/QtXml.framework/QtXml_debug)")
install(CODE "execute_process(COMMAND rm -rf ${CMAKE_BINARY_DIR}/${APP_BUNDLE_DIR}/Contents/Frameworks/QtXml.framework/QtXml_debug.prl)")
install(CODE "execute_process(COMMAND install_name_tool -id @executable_path/../Frameworks/QtXml ${CMAKE_BINARY_DIR}/${APP_BUNDLE_DIR}/Contents/Frameworks/QtXml.framework/QtXml)")
install(CODE "execute_process(COMMAND install_name_tool -change @rpath/QtCore.framework/Versions/5/QtCore @executable_path/../Frameworks/QtCore.framework/QtCore ${CMAKE_BINARY_DIR}/${APP_BUNDLE_DIR}/Contents/Frameworks/QtXml.framework/QtXml)")
endif()
install(CODE "message(STATUS \"two ERRORS here about libmysqlclient and libpq not found are harmless\")")
elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
# Windows bundling rules
@ -439,10 +418,6 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
# "make install", copies everything into a staging area
# "make installer", uses makensis to create an installer executable
set(WINDOWSSTAGING ${CMAKE_BINARY_DIR}/staging)
if(NOT NO_MARBLE)
install(DIRECTORY marbledata/maps DESTINATION ${WINDOWSSTAGING}/data)
install(DIRECTORY marbledata/bitmaps DESTINATION ${WINDOWSSTAGING}/data)
endif()
install(DIRECTORY Documentation/images DESTINATION ${WINDOWSSTAGING}/Documentation)
install(FILES ${DOCFILES} DESTINATION ${WINDOWSSTAGING}/Documentation)
install(DIRECTORY theme DESTINATION ${WINDOWSSTAGING})
@ -477,22 +452,17 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
DEPENDS fake_install
)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux")
if(NOT NO_MARBLE)
install(DIRECTORY marbledata/maps DESTINATION share/subsurface/data)
install(DIRECTORY marbledata/bitmaps DESTINATION share/subsurface/data)
# the syntax is odd, but this searches for libqtgeoservices_googlemaps.so
# in the filesystem below our install-root
# different Linux flavors put the plugin in different directories
file(GLOB_RECURSE GOOGLEMAPS ${CMAKE_SOURCE_DIR}/../install-root/libqtgeoservices_googlemaps.so)
if ("${GOOGLEMAPS}" STREQUAL "")
message(STATUS "Cannot find libqtgeoservices_googlemaps.so")
else()
# the syntax is odd, but this searches for libqtgeoservices_googlemaps.so
# in the filesystem below our install-root
# different Linux flavors put the plugin in different directories
file(GLOB_RECURSE GOOGLEMAPS ${CMAKE_SOURCE_DIR}/../install-root/libqtgeoservices_googlemaps.so)
if ("${GOOGLEMAPS}" STREQUAL "")
message(STATUS "Cannot find libqtgeoservices_googlemaps.so")
else()
add_custom_target(link_googlemaps_plugin ALL COMMAND
rm -rf ${CMAKE_BINARY_DIR}/geoservices &&
mkdir -p ${CMAKE_BINARY_DIR}/geoservices &&
ln -sf ${GOOGLEMAPS} ${CMAKE_BINARY_DIR}/geoservices)
endif()
add_custom_target(link_googlemaps_plugin ALL COMMAND
rm -rf ${CMAKE_BINARY_DIR}/geoservices &&
mkdir -p ${CMAKE_BINARY_DIR}/geoservices &&
ln -sf ${GOOGLEMAPS} ${CMAKE_BINARY_DIR}/geoservices)
endif()
install(FILES subsurface.debug DESTINATION bin)
install(FILES subsurface.desktop DESTINATION share/applications)
@ -503,12 +473,6 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux")
install(DIRECTORY printing_templates DESTINATION share/subsurface)
install(FILES ${TRANSLATIONS} DESTINATION share/subsurface/translations)
install(TARGETS ${SUBSURFACE_TARGET} DESTINATION bin)
if(DEFINED LIBMARBLEDEVEL)
install(
CODE "file(GLOB SSRFMARBLE_SHLIBS \"${LIBMARBLEDEVEL}/lib/libssrfmarblewidget.so*\")"
CODE "file(INSTALL \${SSRFMARBLE_SHLIBS} DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)"
)
endif()
endif()
if (MAKE_TESTS)

View file

@ -66,7 +66,6 @@ set(SUBSURFACE_INTERFACE
diveplanner.cpp
diveshareexportdialog.cpp
downloadfromdivecomputer.cpp
globe.cpp
kmessagewidget.cpp
mainwindow.cpp
mapwidget.cpp

View file

@ -84,7 +84,7 @@ Recommends: qt5-qttranslations
BuildRoot: %{_tmppath}/subsurface%{version}-build
%description
This is the official Subsurface build, including our own custom libdivecomputer and libssrfmarblewidget
This is the official Subsurface build, including our own custom libdivecomputer
%prep
%setup -q
@ -103,27 +103,14 @@ mkdir -p install-root
.. ; \
make %{?_smp_mflags} ; \
make install)
(mkdir marble-build ; cd marble-build ; \
cmake -DCMAKE_INSTALL_PREFIX=$RPM_BUILD_DIR/install-root \
-DQTONLY=ON -DQT5BUILD=ON \
-DBUILD_MARBLE_APPS=OFF -DBUILD_MARBLE_EXAMPLES=OFF \
-DBUILD_MARBLE_TESTS=OFF -DBUILD_MARBLE_TOOLS=OFF \
-DBUILD_TESTING=OFF -DWITH_DESIGNER_PLUGIN=OFF \
-DBUILD_WITH_DBUS=OFF ../marble-source \
-DCMAKE_C_FLAGS:STRING="%optflags" \
-DCMAKE_CXX_FLAGS:STRING="%optflags" ; \
make %{?_smp_mflags} ; \
cd src/lib/marble ; make install ; )
(mkdir subsurface-build ; cd subsurface-build ; \
cmake -DCMAKE_BUILD_TYPE=Release \
-DLRELEASE=lrelease-qt5 \
-DCMAKE_INSTALL_PREFIX=%{buildroot}/usr \
-DLIBDIVECOMPUTER_INCLUDE_DIR=$RPM_BUILD_DIR/install-root/include \
-DLIBGIT2_INCLUDE_DIR=$RPM_BUILD_DIR/install-root/include \
-DMARBLE_INCLUDE_DIR=$RPM_BUILD_DIR/install-root/include \
-DLIBDIVECOMPUTER_LIBRARIES=$RPM_BUILD_DIR/install-root/lib/libdivecomputer.a \
-DLIBGIT2_LIBRARIES=$RPM_BUILD_DIR/install-root/lib/libgit2.a \
-DMARBLE_LIBRARIES=$RPM_BUILD_DIR/install-root/lib/libssrfmarblewidget.so \
-DUSE_LIBGIT23_API=ON \
-DCMAKE_C_FLAGS:STRING="%optflags" \
-DCMAKE_CXX_FLAGS:STRING="%optflags" \
@ -157,7 +144,6 @@ desktop-file-install --dir=%{buildroot}/%{_datadir}/applications subsurface.desk
%{_datadir}/applications/subsurface.desktop
%{_datadir}/icons/hicolor/*/apps/subsurface-icon.*
%{_datadir}/subsurface/
%{_libdir}/libssrfmarblewidget.so*
%changelog

View file

@ -384,7 +384,6 @@ cmake $MOBILE_CMAKE \
-DFORCE_LIBSSH=OFF \
-DLIBDC_FROM_PKGCONFIG=ON \
-DLIBGIT2_FROM_PKGCONFIG=ON \
-DNO_MARBLE=ON \
-DNO_PRINTING=ON \
-DNO_USERMANUAL=ON \
-DFBSUPPORT=OFF \

View file

@ -51,14 +51,6 @@ for i in ${RPATH}; do
install_name_tool -change @rpath/$i @executable_path/../Frameworks/$i ${EXECUTABLE}
done
# no more Marble
# # and now replace @rpath references in libssrfmarblewidget
# MARBLELIB=$(ls Subsurface.app/Contents/Frameworks/libssrfmarblewidget*dylib)
# RPATH=$(otool -L ${MARBLELIB} | grep rpath | cut -d\ -f1 | tr -d "\t" | cut -b 8- )
# for i in ${RPATH}; do
# install_name_tool -change @rpath/$i @executable_path/../Frameworks/$i ${MARBLELIB}
# done
# next deal with libGrantlee
LIBG=$(ls Subsurface.app/Contents/Frameworks/libGrantlee_Templates*dylib)
for i in QtScript.framework/Versions/5/QtScript QtCore.framework/Versions/5/QtCore ; do

View file

@ -13,7 +13,6 @@ override_dh_auto_clean:
(cd libdivecomputer ; make clean || true)
make clean || true
rm -rf libgit2/build
rm -rf marble-build
rm -f ssrf-version.h
rm -f subsurface
rm -f Makefile
@ -23,16 +22,6 @@ override_dh_auto_configure:
(mkdir libgit2/build ; cd libgit2/build ; \
cmake -DBUILD_SHARED_LIBS=OFF -DBUILD_CLAR=OFF -DBUILD_EXAMPLES=OFF .. ; \
sed -i 's/.so$/.a/' CMakeCache.txt ; make -j8 )
(mkdir marble-build ; cd marble-build ; \
cmake -DQTONLY=ON -DQT5BUILD=ON \
-DBUILD_MARBLE_APPS=OFF -DBUILD_MARBLE_EXAMPLES=OFF \
-DBUILD_MARBLE_TESTS=OFF -DBUILD_MARBLE_TOOLS=OFF \
-DBUILD_TESTING=OFF -DWITH_DESIGNER_PLUGIN=OFF \
-DBUILD_WITH_DBUS=OFF ../marble-source ; \
make -j8 ; \
ln -s src/lib/marble lib ; \
mkdir include ; cd include ; for i in `find ../../marble-source -name \*.h` ; do ln -s $$i . ; done ; \
ln -s . marble )
(mkdir subsurface-build ; cd subsurface-build ; \
cmake -DCMAKE_BUILD_TYPE=Release \
-DPREFER_GIT_FROMSOURCE=1 \
@ -40,8 +29,6 @@ override_dh_auto_configure:
-DLIBGIT2_LIBRARIES=$$(pwd)/../libgit2/build/libgit2.a \
-DLIBDIVECOMPUTER_INCLUDE_DIR=$$(pwd)/../libdivecomputer/include \
-DLIBDIVECOMPUTER_LIBRARIES=$$(pwd)/../libdivecomputer/src/.libs/libdivecomputer.a \
-DMARBLE_INCLUDE_DIR=$$(pwd)/../marble-build/include \
-DMARBLE_LIBRARIES=$$(pwd)/../marble-build/lib/libssrfmarblewidget.so \
$$(pwd)/.. ; )
override_dh_installchangelogs:

View file

@ -38,7 +38,7 @@ if [[ ! -d subsurface_$VERSION ]]; then
#
(cd subsurface ; tar cf - . ) | (cd subsurface_$VERSION ; tar xf - )
cd subsurface_$VERSION;
rm -rf .git libdivecomputer/.git libgit2/.git marble-source/.git
rm -rf .git libdivecomputer/.git libgit2/.git
echo $GITVERSION > .gitversion
echo $LIBDCREVISION > libdivecomputer/revision
# dh_make --email dirk@hohndel.org -c gpl2 --createorig --single --yes -p subsurface_$VERSION

View file

@ -31,7 +31,6 @@ if [[ $1 == "Qt5-64" ]] ; then
QMAKE_MOC=/usr/x86_64-w64-mingw32/bin/qt5/moc \
QMAKE_UIC=/usr/x86_64-w64-mingw32/bin/qt5/uic \
QMAKE_RCC=/usr/x86_64-w64-mingw32/bin/qt5/rcc \
LIBMARBLEDEVEL=../marble \
LIBGIT2DEVEL=../libgit2 CONFIG+=libgit21-api \
QMAKE_LIBDIR+=../openssl \
CONFIG+=win64target \
@ -47,7 +46,6 @@ elif [[ $1 == "Qt5" ]] ; then
QMAKE_UIC=/usr/i686-w64-mingw32/bin/qt5/uic \
QMAKE_RCC=/usr/i686-w64-mingw32/bin/qt5/rcc \
LIBDCDEVEL=../libdivecomputer \
LIBMARBLEDEVEL=../marble \
LIBGIT2DEVEL=../libgit2 CONFIG+=libgit21-api \
$BASEDIR/../../subsurface.pro
@ -62,7 +60,6 @@ elif [[ $1 == "Qt5debug" ]] ; then
QMAKE_CFLAGS_RELEASE='$$QMAKE_CFLAGS_DEBUG -O0 -g' \
QMAKE_CXXFLAGS_RELEASE='$$QMAKE_CXXFLAGS_DEBUG -O0 -g' \
LIBDCDEVEL=../libdivecomputer \
LIBMARBLEDEVEL=../marble \
LIBGIT2DEVEL=../libgit2 CONFIG+=libgit21-api \
V=1 \
$BASEDIR/../../subsurface.pro
@ -71,7 +68,6 @@ else
mingw32-qmake-qt4 \
CROSS_PATH=/usr/i686-w64-mingw32/sys-root/mingw \
LIBMARBLEDEVEL=../marble \
LIBGIT2DEVEL=../libgit2 CONFIG+=libgit21-api \
$BASEDIR/../../subsurface.pro
fi

View file

@ -331,7 +331,7 @@ i686-w64-mingw32.shared-cmake -DCMAKE_TOOLCHAIN_FILE="$BASEDIR"/"$MXEDIR"/usr/i6
-DMAKENSIS=i686-w64-mingw32.shared-makensis \
-DLIBDIVECOMPUTER_INCLUDE_DIR="$BASEDIR"/"$MXEDIR"/usr/i686-w64-mingw32.shared/include \
-DLIBDIVECOMPUTER_LIBRARIES="$BASEDIR"/"$MXEDIR"/usr/i686-w64-mingw32.shared/lib/libdivecomputer.dll.a \
-DNO_MARBLE=ON -DMAKE_TESTS=OFF \
-DMAKE_TESTS=OFF \
"$BASEDIR"/subsurface
make $JOBS "$@"

View file

@ -3,7 +3,6 @@
# this should be run from the src directory, the layout is supposed to
# look like this:
#.../src/subsurface
# /marble-source
# /libdivecomputer
#
# the script will build these three libraries from source, even if
@ -37,11 +36,6 @@ while [[ $# -gt 0 ]] ; do
# is still available on Linux distros)
BUILD_WITH_WEBKIT="1"
;;
-build-with-marble)
# by default we build with QtLocation based maps
# in order to use the old maps, you need to enable this option but also have webkit (see previous option)
BUILD_WITH_MARBLE="1"
;;
-mobile)
# we are building Subsurface-mobile
BUILD_MOBILE="1"
@ -397,51 +391,6 @@ else
EXTRA_OPTS="-DNO_USERMANUAL=ON -DFBSUPPORT=OFF"
fi
# build libssrfmarblewidget
if [ "$BUILD_WITH_MARBLE" = "1" ]; then
EXTRA_OPTS="-DMARBLE_INCLUDE_DIR=$INSTALL_ROOT/include \
-DMARBLE_LIBRARIES=$INSTALL_ROOT/lib/libssrfmarblewidget.$SH_LIB_EXT \
-DNO_MARBLE=OFF $EXTRA_OPTS"
if [ ! -d marble-source ] ; then
if [[ $1 = local ]] ; then
git clone $SRC/../marble-source marble-source
else
git clone -b Subsurface-branch https://github.com/Subsurface-divelog/marble.git marble-source
fi
fi
cd marble-source
git pull --rebase
if ! git checkout Subsurface-branch ; then
echo "can't check out the Subsurface-branch branch of marble -- giving up"
exit 1
fi
mkdir -p build
cd build
cmake $OLDER_MAC_CMAKE -DCMAKE_BUILD_TYPE=Release -DQTONLY=TRUE -DQT5BUILD=ON \
-DCMAKE_INSTALL_PREFIX=$INSTALL_ROOT \
-DBUILD_MARBLE_TESTS=NO \
-DWITH_DESIGNER_PLUGIN=NO \
-DBUILD_MARBLE_APPS=NO \
$SRC/marble-source
cd src/lib/marble
make -j4
make install
if [ $PLATFORM = Darwin ] ; then
# in order for macdeployqt to do its job correctly, we need the full path in the dylib ID
cd $INSTALL_ROOT/lib
NAME=$(otool -L libssrfmarblewidget.dylib | grep -v : | head -1 | cut -f1 -d\ | tr -d '\t' | cut -f3 -d/ )
echo $NAME | grep / > /dev/null 2>&1
if [ $? -eq 1 ] ; then
install_name_tool -id "$INSTALL_ROOT/lib/$NAME" "$INSTALL_ROOT/lib/$NAME"
fi
fi
else
EXTRA_OPTS="-DNO_MARBLE=ON $EXTRA_OPTS"
fi
if [ "$BUILDGRANTLEE" = "1" ] ; then
# build grantlee
PRINTING="-DNO_PRINTING=OFF"