mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-30 22:20:21 +00:00
Use kirigami built in static mode
Now kirigami needs to be built with a C++ plugin. In cases of mobile operating systems such as iOS (and in a lesser measuse, Android) having a proper plugin loaded at runtime may be difficult, so statically link it together with all of its qml files compiled as a qresource inside the static library. Signed-off-by: Marco Martin <notmart@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
545c60a517
commit
24718adfc3
6 changed files with 40 additions and 50 deletions
|
@ -238,12 +238,16 @@ if(${SUBSURFACE_TARGET_EXECUTABLE} MATCHES "MobileExecutable")
|
||||||
else()
|
else()
|
||||||
add_executable(${SUBSURFACE_TARGET} MACOSX_BUNDLE WIN32 ${SUBSURFACE_PKG} ${MOBILE_SRC} ${SUBSURFACE_RESOURCES} ${MOBILE_RESOURCES})
|
add_executable(${SUBSURFACE_TARGET} MACOSX_BUNDLE WIN32 ${SUBSURFACE_PKG} ${MOBILE_SRC} ${SUBSURFACE_RESOURCES} ${MOBILE_RESOURCES})
|
||||||
endif()
|
endif()
|
||||||
|
ADD_LIBRARY(kirigami_static_library STATIC IMPORTED)
|
||||||
|
SET_TARGET_PROPERTIES(kirigami_static_library PROPERTIES
|
||||||
|
IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/mobile-widgets/qml/kirigami/build/src/libkirigamiplugin.a)
|
||||||
target_link_libraries(
|
target_link_libraries(
|
||||||
${SUBSURFACE_TARGET}
|
${SUBSURFACE_TARGET}
|
||||||
subsurface_profile
|
subsurface_profile
|
||||||
subsurface_models
|
subsurface_models
|
||||||
subsurface_corelib
|
subsurface_corelib
|
||||||
${SUBSURFACE_LINK_LIBRARIES}
|
${SUBSURFACE_LINK_LIBRARIES}
|
||||||
|
kirigami_static_library
|
||||||
)
|
)
|
||||||
elseif(${SUBSURFACE_TARGET_EXECUTABLE} MATCHES "DesktopExecutable")
|
elseif(${SUBSURFACE_TARGET_EXECUTABLE} MATCHES "DesktopExecutable")
|
||||||
set(SUBSURFACE_APP
|
set(SUBSURFACE_APP
|
||||||
|
|
|
@ -23,50 +23,18 @@
|
||||||
<file alias="menu-back.png">icons/menu-back.png</file>
|
<file alias="menu-back.png">icons/menu-back.png</file>
|
||||||
<file alias="nocloud.svg">icons/nocloud.svg</file>
|
<file alias="nocloud.svg">icons/nocloud.svg</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
<qresource prefix="/imports">
|
<qresource prefix="/">
|
||||||
<file alias="org/kde/kirigami/qmldir">kirigami/qmldir</file>
|
<file alias="icons/go-next.svg">kirigami/icons/go-next.svg</file>
|
||||||
<file alias="org/kde/kirigami/Action.qml">kirigami/Action.qml</file>
|
<file alias="icons/go-previous.svg">kirigami/icons/go-previous.svg</file>
|
||||||
<file alias="org/kde/kirigami/ApplicationWindow.qml">kirigami/ApplicationWindow.qml</file>
|
<file alias="icons/handle-left.svg">kirigami/icons/handle-left.svg</file>
|
||||||
<file alias="org/kde/kirigami/BasicListItem.qml">kirigami/BasicListItem.qml</file>
|
<file alias="icons/distribute-horizontal-x.svg">kirigami/icons/distribute-horizontal-x.svg</file>
|
||||||
<file alias="org/kde/kirigami/GlobalDrawer.qml">kirigami/GlobalDrawer.qml</file>
|
<file alias="icons/document-edit.svg">kirigami/icons/document-edit.svg</file>
|
||||||
<file alias="org/kde/kirigami/ContextDrawer.qml">kirigami/ContextDrawer.qml</file>
|
<file alias="icons/document-save.svg">kirigami/icons/document-save.svg</file>
|
||||||
<file alias="org/kde/kirigami/Page.qml">kirigami/Page.qml</file>
|
<file alias="icons/view-readermode.svg">kirigami/icons/view-readermode.svg</file>
|
||||||
<file alias="org/kde/kirigami/ScrollablePage.qml">kirigami/ScrollablePage.qml</file>
|
<file alias="icons/dialog-cancel.svg">kirigami/icons/dialog-cancel.svg</file>
|
||||||
<file alias="org/kde/kirigami/Icon.qml">kirigami/Icon.qml</file>
|
<file alias="icons/application-menu.svg">kirigami/icons/application-menu.svg</file>
|
||||||
<file alias="org/kde/kirigami/Heading.qml">kirigami/Heading.qml</file>
|
<file alias="icons/gps.svg">kirigami/icons/gps.svg</file>
|
||||||
<file alias="org/kde/kirigami/OverlaySheet.qml">kirigami/OverlaySheet.qml</file>
|
<file alias="icons/trash-empty.svg">kirigami/icons/trash-empty.svg</file>
|
||||||
<file alias="org/kde/kirigami/ApplicationHeader.qml">kirigami/ApplicationHeader.qml</file>
|
<file alias="icons/list-add.svg">kirigami/icons/list-add.svg</file>
|
||||||
<file alias="org/kde/kirigami/AbstractApplicationHeader.qml">kirigami/AbstractApplicationHeader.qml</file>
|
|
||||||
<file alias="org/kde/kirigami/AbstractApplicationWindow.qml">kirigami/AbstractApplicationWindow.qml</file>
|
|
||||||
<file alias="org/kde/kirigami/private/PageRow.qml">kirigami/private/PageRow.qml</file>
|
|
||||||
<file alias="org/kde/kirigami/Label.qml">kirigami/Label.qml</file>
|
|
||||||
<file alias="org/kde/kirigami/AbstractListItem.qml">kirigami/AbstractListItem.qml</file>
|
|
||||||
<file alias="org/kde/kirigami/SwipeListItem.qml">kirigami/SwipeListItem.qml</file>
|
|
||||||
<file alias="org/kde/kirigami/OverlayDrawer.qml">kirigami/OverlayDrawer.qml</file>
|
|
||||||
<file alias="org/kde/kirigami/Theme.qml">kirigami/Theme.qml</file>
|
|
||||||
<file alias="org/kde/kirigami/Units.qml">kirigami/Units.qml</file>
|
|
||||||
<file alias="org/kde/kirigami/private/AbstractDrawer.qml">kirigami/private/AbstractDrawer.qml</file>
|
|
||||||
<file alias="org/kde/kirigami/private/ActionButton.qml">kirigami/private/ActionButton.qml</file>
|
|
||||||
<file alias="org/kde/kirigami/private/BackButton.qml">kirigami/private/BackButton.qml</file>
|
|
||||||
<file alias="org/kde/kirigami/private/ContextIcon.qml">kirigami/private/ContextIcon.qml</file>
|
|
||||||
<file alias="org/kde/kirigami/private/CornerShadow.qml">kirigami/private/CornerShadow.qml</file>
|
|
||||||
<file alias="org/kde/kirigami/private/DefaultListItemBackground.qml">kirigami/private/DefaultListItemBackground.qml</file>
|
|
||||||
<file alias="org/kde/kirigami/private/EdgeShadow.qml">kirigami/private/EdgeShadow.qml</file>
|
|
||||||
<file alias="org/kde/kirigami/private/MenuIcon.qml">kirigami/private/MenuIcon.qml</file>
|
|
||||||
<file alias="org/kde/kirigami/private/PageActionPropertyGroup.qml">kirigami/private/PageActionPropertyGroup.qml</file>
|
|
||||||
<file alias="org/kde/kirigami/private/PassiveNotification.qml">kirigami/private/PassiveNotification.qml</file>
|
|
||||||
<file alias="org/kde/kirigami/private/RefreshableScrollView.qml">kirigami/private/RefreshableScrollView.qml</file>
|
|
||||||
<file alias="org/kde/kirigami/icons/go-next.svg">kirigami/icons/go-next.svg</file>
|
|
||||||
<file alias="org/kde/kirigami/icons/go-previous.svg">kirigami/icons/go-previous.svg</file>
|
|
||||||
<file alias="org/kde/kirigami/icons/handle-left.svg">kirigami/icons/handle-left.svg</file>
|
|
||||||
<file alias="org/kde/kirigami/icons/distribute-horizontal-x.svg">kirigami/icons/distribute-horizontal-x.svg</file>
|
|
||||||
<file alias="org/kde/kirigami/icons/document-edit.svg">kirigami/icons/document-edit.svg</file>
|
|
||||||
<file alias="org/kde/kirigami/icons/document-save.svg">kirigami/icons/document-save.svg</file>
|
|
||||||
<file alias="org/kde/kirigami/icons/view-readermode.svg">kirigami/icons/view-readermode.svg</file>
|
|
||||||
<file alias="org/kde/kirigami/icons/dialog-cancel.svg">kirigami/icons/dialog-cancel.svg</file>
|
|
||||||
<file alias="org/kde/kirigami/icons/application-menu.svg">kirigami/icons/application-menu.svg</file>
|
|
||||||
<file alias="org/kde/kirigami/icons/gps.svg">kirigami/icons/gps.svg</file>
|
|
||||||
<file alias="org/kde/kirigami/icons/trash-empty.svg">kirigami/icons/trash-empty.svg</file>
|
|
||||||
<file alias="org/kde/kirigami/icons/list-add.svg">kirigami/icons/list-add.svg</file>
|
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
|
|
|
@ -316,6 +316,13 @@ if [ "$SUBSURFACE_MOBILE" = "ON" ] ; then
|
||||||
pushd $SUBSURFACE_SOURCE
|
pushd $SUBSURFACE_SOURCE
|
||||||
bash ./scripts/mobilecomponents.sh
|
bash ./scripts/mobilecomponents.sh
|
||||||
popd
|
popd
|
||||||
|
|
||||||
|
cd $SUBSURFACE_SOURCE/mobile-widgets/qml/kirigami/
|
||||||
|
mkdir -p build
|
||||||
|
cd build
|
||||||
|
cmake .. -DSTATIC_LIBRARY=ON
|
||||||
|
make -j4
|
||||||
|
make install
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -z "$SUBSURFACE_MOBILE" ] ; then
|
if [ ! -z "$SUBSURFACE_MOBILE" ] ; then
|
||||||
|
|
|
@ -211,6 +211,9 @@ if [ "$BUILDGRANTLEE" = "1" ] ; then
|
||||||
make install
|
make install
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# finally, build Subsurface
|
# finally, build Subsurface
|
||||||
|
|
||||||
if [ $PLATFORM = Darwin ] ; then
|
if [ $PLATFORM = Darwin ] ; then
|
||||||
|
@ -229,6 +232,13 @@ for (( i=0 ; i < ${#BUILDS[@]} ; i++ )) ; do
|
||||||
if [ "$SUBSURFACE_EXECUTABLE" = "MobileExecutable" ] ; then
|
if [ "$SUBSURFACE_EXECUTABLE" = "MobileExecutable" ] ; then
|
||||||
cd $SRC/subsurface
|
cd $SRC/subsurface
|
||||||
bash ./scripts/mobilecomponents.sh
|
bash ./scripts/mobilecomponents.sh
|
||||||
|
|
||||||
|
cd $SRC/subsurface/mobile-widgets/qml/kirigami/
|
||||||
|
mkdir -p build
|
||||||
|
cd build
|
||||||
|
cmake .. -DSTATIC_LIBRARY=ON
|
||||||
|
make -j4
|
||||||
|
make install
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir -p $SRC/subsurface/$BUILDDIR
|
mkdir -p $SRC/subsurface/$BUILDDIR
|
||||||
|
|
|
@ -44,16 +44,12 @@ fi
|
||||||
|
|
||||||
# now copy the components and a couple of icons into plae
|
# now copy the components and a couple of icons into plae
|
||||||
MC=$SRC/subsurface/mobile-widgets/qml/kirigami
|
MC=$SRC/subsurface/mobile-widgets/qml/kirigami
|
||||||
PMMC=kirigami/src/qml
|
PMMC=kirigami
|
||||||
BREEZE=breeze-icons
|
BREEZE=breeze-icons
|
||||||
|
|
||||||
rm -rf $MC
|
rm -rf $MC
|
||||||
mkdir -p $MC/icons
|
mkdir -p $MC/icons
|
||||||
cp -R $PMMC/* $MC/
|
cp -R $PMMC/* $MC/
|
||||||
cp $PMMC/../fallbacktheme/*qml $MC/
|
|
||||||
|
|
||||||
# fix plugin requirement
|
|
||||||
sed -i -e 's/^plugin kirigamiplugin/# plugin kirigamiplugin/' $MC/qmldir
|
|
||||||
|
|
||||||
cp $BREEZE/icons/actions/24/dialog-cancel.svg $MC/icons
|
cp $BREEZE/icons/actions/24/dialog-cancel.svg $MC/icons
|
||||||
cp $BREEZE/icons/actions/24/distribute-horizontal-x.svg $MC/icons
|
cp $BREEZE/icons/actions/24/distribute-horizontal-x.svg $MC/icons
|
||||||
|
|
|
@ -21,6 +21,9 @@
|
||||||
#include "qt-models/gpslistmodel.h"
|
#include "qt-models/gpslistmodel.h"
|
||||||
#include "mobile-widgets/qmlprofile.h"
|
#include "mobile-widgets/qmlprofile.h"
|
||||||
|
|
||||||
|
#define KIRIGAMI_BUILD_TYPE_STATIC
|
||||||
|
#include "mobile-widgets/qml/kirigami/src/kirigamiplugin.h"
|
||||||
|
|
||||||
QObject *qqWindowObject = NULL;
|
QObject *qqWindowObject = NULL;
|
||||||
|
|
||||||
void init_ui()
|
void init_ui()
|
||||||
|
@ -32,7 +35,9 @@ void run_ui()
|
||||||
{
|
{
|
||||||
qmlRegisterType<QMLManager>("org.subsurfacedivelog.mobile", 1, 0, "QMLManager");
|
qmlRegisterType<QMLManager>("org.subsurfacedivelog.mobile", 1, 0, "QMLManager");
|
||||||
qmlRegisterType<QMLProfile>("org.subsurfacedivelog.mobile", 1, 0, "QMLProfile");
|
qmlRegisterType<QMLProfile>("org.subsurfacedivelog.mobile", 1, 0, "QMLProfile");
|
||||||
|
|
||||||
QQmlApplicationEngine engine;
|
QQmlApplicationEngine engine;
|
||||||
|
KirigamiPlugin::getInstance().registerTypes();
|
||||||
#if __APPLE__
|
#if __APPLE__
|
||||||
// when running the QML UI on a Mac the deployment of the QML Components seems
|
// when running the QML UI on a Mac the deployment of the QML Components seems
|
||||||
// to fail and the search path for the components is rather odd - simply the
|
// to fail and the search path for the components is rather odd - simply the
|
||||||
|
|
Loading…
Reference in a new issue