kexi: add mariadb(mysql) / postgres support + prepare for later marble
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
This commit is contained in:
@@ -0,0 +1,200 @@
|
||||
From 3280c5ec9940f329dc75b2b8d9a52285b20209f0 Mon Sep 17 00:00:00 2001
|
||||
From: Johannes Zarl-Zierl <johannes@zarl-zierl.at>
|
||||
Date: Wed, 5 May 2021 00:09:49 +0200
|
||||
Subject: [PATCH] Use plain Marble package instead of KexiMarble
|
||||
|
||||
Marble has shipped with a MarbleConfig.cmake file since ~2016. Kexi
|
||||
already depends on KF5 versions that are much newer than that.
|
||||
|
||||
Upstream-Status: Backport[https://invent.kde.org/office/kexi/-/commit/3280c5ec9940f329dc75b2b8d9a52285b20209f0]
|
||||
---
|
||||
CMakeLists.txt | 8 +-
|
||||
cmake/modules/FindKexiMarble.cmake | 115 ------------------
|
||||
src/plugins/forms/widgets/CMakeLists.txt | 2 +-
|
||||
.../forms/widgets/mapbrowser/CMakeLists.txt | 3 +-
|
||||
4 files changed, 5 insertions(+), 123 deletions(-)
|
||||
delete mode 100644 cmake/modules/FindKexiMarble.cmake
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 82ebc70..17181b5 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -199,16 +199,14 @@ endif()
|
||||
## Test for marble
|
||||
##
|
||||
set(MARBLE_MIN_VERSION "0.19.2")
|
||||
-find_package(KexiMarble ${MARBLE_MIN_VERSION})
|
||||
-set_package_properties(KexiMarble PROPERTIES
|
||||
+find_package(Marble ${MARBLE_MIN_VERSION} CONFIG)
|
||||
+set_package_properties(Marble PROPERTIES
|
||||
DESCRIPTION "KDE World Globe Widget library"
|
||||
URL "https://marble.kde.org"
|
||||
TYPE RECOMMENDED
|
||||
PURPOSE "Required by Kexi form map widget"
|
||||
)
|
||||
-if(NOT MARBLE_FOUND)
|
||||
- set(MARBLE_INCLUDE_DIR "")
|
||||
-else()
|
||||
+if(Marble_FOUND)
|
||||
set(HAVE_MARBLE TRUE)
|
||||
endif()
|
||||
set_package_properties(GLIB2 PROPERTIES TYPE RECOMMENDED PURPOSE "${_REQUIRED_BY_MDB}")
|
||||
diff --git a/cmake/modules/FindKexiMarble.cmake b/cmake/modules/FindKexiMarble.cmake
|
||||
deleted file mode 100644
|
||||
index 4ec1c5195..000000000
|
||||
--- a/cmake/modules/FindKexiMarble.cmake
|
||||
+++ /dev/null
|
||||
@@ -1,115 +0,0 @@
|
||||
-# - Try to find the Marble Library
|
||||
-# Once done this will define
|
||||
-#
|
||||
-# MARBLE_FOUND - system has Marble
|
||||
-# MARBLE_INCLUDE_DIR - the Marble include directory
|
||||
-# MARBLE_LIBRARIES - Libraries needed to use Marble
|
||||
-# MARBLE_VERSION - This contains combined MAJOR.MINOR.PATCH version (eg. 0.19.2);
|
||||
-# Can be missing if version could not be found
|
||||
-#
|
||||
-# Versions mapping can be found at: https://marble.kde.org/changelog.php
|
||||
-#
|
||||
-# Redistribution and use is allowed according to the terms of the BSD license.
|
||||
-# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
|
||||
-#
|
||||
-
|
||||
-#=============================================================================
|
||||
-# Copyright 2006-2009 Kitware, Inc.
|
||||
-# Copyright 2006 Alexander Neundorf <neundorf@kde.org>
|
||||
-# Copyright 2009-2011 Mathieu Malaterre <mathieu.malaterre@gmail.com>
|
||||
-#
|
||||
-# Distributed under the OSI-approved BSD License (the "License");
|
||||
-# see accompanying file Copyright.txt for details.
|
||||
-#
|
||||
-# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
-# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
-# See the License for more information.
|
||||
-#=============================================================================
|
||||
-
|
||||
-function(from_hex HEX DEC)
|
||||
- string(TOUPPER "${HEX}" HEX)
|
||||
- set(_res 0)
|
||||
- string(LENGTH "${HEX}" _strlen)
|
||||
-
|
||||
- while (_strlen GREATER 0)
|
||||
- math(EXPR _res "${_res} * 16")
|
||||
- string(SUBSTRING "${HEX}" 0 1 NIBBLE)
|
||||
- string(SUBSTRING "${HEX}" 1 -1 HEX)
|
||||
- if (NIBBLE STREQUAL "A")
|
||||
- math(EXPR _res "${_res} + 10")
|
||||
- elseif (NIBBLE STREQUAL "B")
|
||||
- math(EXPR _res "${_res} + 11")
|
||||
- elseif (NIBBLE STREQUAL "C")
|
||||
- math(EXPR _res "${_res} + 12")
|
||||
- elseif (NIBBLE STREQUAL "D")
|
||||
- math(EXPR _res "${_res} + 13")
|
||||
- elseif (NIBBLE STREQUAL "E")
|
||||
- math(EXPR _res "${_res} + 14")
|
||||
- elseif (NIBBLE STREQUAL "F")
|
||||
- math(EXPR _res "${_res} + 15")
|
||||
- else()
|
||||
- math(EXPR _res "${_res} + ${NIBBLE}")
|
||||
- endif()
|
||||
-
|
||||
- string(LENGTH "${HEX}" _strlen)
|
||||
- endwhile()
|
||||
-
|
||||
- set(${DEC} ${_res} PARENT_SCOPE)
|
||||
-endfunction()
|
||||
-
|
||||
-if ( MARBLE_INCLUDE_DIR AND MARBLE_GLOBAL_HEADER AND MARBLE_LIBRARIES )
|
||||
- # in cache already
|
||||
- set( MARBLE_FIND_QUIETLY TRUE )
|
||||
-endif ()
|
||||
-
|
||||
-find_path( MARBLE_INCLUDE_DIR NAMES marble/MarbleMap.h PATH_SUFFIXES marble)
|
||||
-find_file( MARBLE_GLOBAL_HEADER NAMES marble/MarbleGlobal.h PATH_SUFFIXES marble)
|
||||
-find_library( MARBLE_LIBRARIES NAMES marblewidget-qt5 )
|
||||
-
|
||||
-if(MARBLE_GLOBAL_HEADER)
|
||||
- file(STRINGS ${MARBLE_GLOBAL_HEADER}
|
||||
- marble_version_line
|
||||
- REGEX "^#define[\t ]+MARBLE_VERSION[\t ]+0x([0-9a-fA-F])+.*")
|
||||
-
|
||||
- string(REGEX REPLACE
|
||||
- "^.*MARBLE_VERSION[\t ]+0x([0-9a-fA-F][0-9a-fA-F])([0-9a-fA-F][0-9a-fA-F])([0-9a-fA-F][0-9a-fA-F]).*$"
|
||||
- "\\1;\\2;\\3" marble_version_list "${marble_version_line}")
|
||||
-
|
||||
- list(GET marble_version_list 0 MARBLE_VERSION_MAJOR)
|
||||
- from_hex("${MARBLE_VERSION_MAJOR}" MARBLE_VERSION_MAJOR)
|
||||
-
|
||||
- list(GET marble_version_list 1 MARBLE_VERSION_MINOR)
|
||||
- from_hex("${MARBLE_VERSION_MINOR}" MARBLE_VERSION_MINOR)
|
||||
-
|
||||
- list(GET marble_version_list 2 MARBLE_VERSION_PATCH)
|
||||
- from_hex("${MARBLE_VERSION_PATCH}" MARBLE_VERSION_PATCH)
|
||||
-
|
||||
- set(MARBLE_VERSION "${MARBLE_VERSION_MAJOR}.${MARBLE_VERSION_MINOR}.${MARBLE_VERSION_PATCH}" CACHE STRING "Found Marble version")
|
||||
-endif()
|
||||
-
|
||||
-include( FindPackageHandleStandardArgs )
|
||||
-
|
||||
-if(MARBLE_VERSION)
|
||||
- if(DEFINED MARBLE_MIN_VERSION AND ${MARBLE_VERSION} VERSION_LESS ${MARBLE_MIN_VERSION})
|
||||
- set(MARBLE_FOUND FALSE)
|
||||
- unset(MARBLE_INCLUDE_DIR)
|
||||
- unset(MARBLE_LIBRARIES)
|
||||
- else()
|
||||
- find_package_handle_standard_args( Marble
|
||||
- REQUIRED_VARS
|
||||
- MARBLE_INCLUDE_DIR
|
||||
- MARBLE_LIBRARIES
|
||||
- VERSION_VAR
|
||||
- MARBLE_VERSION
|
||||
- FAIL_MESSAGE
|
||||
- "Could not find Marble"
|
||||
- )
|
||||
- endif()
|
||||
-else()
|
||||
- find_package_handle_standard_args( marble
|
||||
- DEFAULT_MSG
|
||||
- MARBLE_INCLUDE_DIR
|
||||
- MARBLE_LIBRARIES )
|
||||
-endif()
|
||||
-
|
||||
-mark_as_advanced(MARBLE_GLOBAL_HEADER MARBLE_VERSION_MAJOR MARBLE_VERSION_MINOR MARBLE_VERSION_PATCH)
|
||||
diff --git a/src/plugins/forms/widgets/CMakeLists.txt b/src/plugins/forms/widgets/CMakeLists.txt
|
||||
index 107d578a8..109341fe0 100644
|
||||
--- a/src/plugins/forms/widgets/CMakeLists.txt
|
||||
+++ b/src/plugins/forms/widgets/CMakeLists.txt
|
||||
@@ -11,7 +11,7 @@ endmacro()
|
||||
# the main widgets plugin
|
||||
add_subdirectory(main)
|
||||
|
||||
-if(MARBLE_FOUND)
|
||||
+if(Marble_FOUND)
|
||||
#TODO add_subdirectory(mapbrowser)
|
||||
endif()
|
||||
|
||||
diff --git a/src/plugins/forms/widgets/mapbrowser/CMakeLists.txt b/src/plugins/forms/widgets/mapbrowser/CMakeLists.txt
|
||||
index 3ff7f4fc8..f5be7fd02 100644
|
||||
--- a/src/plugins/forms/widgets/mapbrowser/CMakeLists.txt
|
||||
+++ b/src/plugins/forms/widgets/mapbrowser/CMakeLists.txt
|
||||
@@ -1,7 +1,6 @@
|
||||
include_directories(
|
||||
${CMAKE_SOURCE_DIR}/src/formeditor
|
||||
${CMAKE_SOURCE_DIR}/src/core
|
||||
- ${MARBLE_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
set(kexiforms_mapwidgetplugin_SRCS
|
||||
@@ -20,8 +19,8 @@ target_link_libraries(kexiforms_mapwidgetplugin
|
||||
kexiextendedwidgets
|
||||
kexiformutils
|
||||
kexidataviewcommon
|
||||
- ${MARBLE_LIBRARIES}
|
||||
|
||||
+ Marble
|
||||
Qt5::Xml
|
||||
)
|
||||
|
||||
--
|
||||
2.31.1
|
||||
|
||||
@@ -33,7 +33,8 @@ DEPENDS += " \
|
||||
kcompletion \
|
||||
kio \
|
||||
ktexteditor \
|
||||
marble \
|
||||
mariadb \
|
||||
postgresql \
|
||||
"
|
||||
|
||||
SRC_URI = " \
|
||||
@@ -42,6 +43,7 @@ SRC_URI = " \
|
||||
file://0002-Add-missing-include-to-fix-build-with-Qt-5.11.patch \
|
||||
file://0003-Fix-build-with-Qt-5.13.patch \
|
||||
file://0004-Set-extern-C-after-including-common-headers.patch \
|
||||
file://0005-Use-plain-Marble-package-instead-of-KexiMarble.patch \
|
||||
"
|
||||
SRC_URI[sha256sum] = "7a813f9ea815a09c1e733d0e7dc879c64eee85f075389e87e6aab99cf0c1c1ff"
|
||||
|
||||
@@ -56,13 +58,9 @@ FILES:${PN} += " \
|
||||
|
||||
RDEPENDS:${PN} += "breeze-icons-binres"
|
||||
|
||||
# REVISIT
|
||||
# REVISIT (try marble again once 3.3.x is out)
|
||||
#-- The following RECOMMENDED packages have not been found:
|
||||
#
|
||||
# * KexiMarble (required version >= 0.19.2), KDE World Globe Widget library, <https://marble.kde.org>
|
||||
# Required by Kexi form map widget
|
||||
# * MySQL, MySQL Client Library (libmysqlclient), <http://www.mysql.com>
|
||||
# Required by Kexi MySQL migration driver
|
||||
# * PostgreSQL, C API to PostgreSQL (libpq), <http://www.postgresql.org>
|
||||
# Required by Kexi PostgreSQL migration driver
|
||||
|
||||
|
||||
Reference in New Issue
Block a user