main/mapbox-gl-qml: switch to CMake (MR 1997)

This commit is contained in:
Bart Ribbers 2021-02-27 17:04:07 +01:00
parent 00fd796a2e
commit bddcea0851
No known key found for this signature in database
GPG key ID: 699D16185DAFAE61
2 changed files with 145 additions and 7 deletions

View file

@ -2,23 +2,37 @@
# Maintainer: Bart Ribbers <bribbers@disroot.org>
pkgname=mapbox-gl-qml
pkgver=1.7.5
pkgrel=0
pkgrel=1
pkgdesc="QML bindings for Mapbox"
url="https://github.com/rinigus/mapbox-gl-qml"
# armhf blocked by qt5-qtdeclarative
arch="all !armhf"
license="LGPL-3.0-only"
makedepends="qt5-qtbase-dev qt5-qtdeclarative-dev qt5-qtlocation-dev mapbox-gl-native-dev"
source="https://github.com/rinigus/mapbox-gl-qml/archive/$pkgver/mapbox-gl-qml-$pkgver.tar.gz"
makedepends="
cmake
curl-dev
mapbox-gl-native-dev
openssl-dev
qt5-qtbase-dev
qt5-qtdeclarative-dev
qt5-qtlocation-dev
"
source="https://github.com/rinigus/mapbox-gl-qml/archive/$pkgver/mapbox-gl-qml-$pkgver.tar.gz
cmake.patch
"
options="!check" # No tests
build() {
qmake-qt5
make
cmake -B build \
-DCMAKE_BUILD_TYPE=None \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib
cmake --build build
}
package() {
INSTALL_ROOT="$pkgdir" make install
DESTDIR="$pkgdir" cmake --install build
}
sha512sums="34be4fccc7790d1ccf619da9f368cde3466717a7b4c8479f53ba5885a5e889d18de50ccd02be91438e2c879406bd21f79a3d50677be03edac89d7f24cca96b17 mapbox-gl-qml-1.7.5.tar.gz"
sha512sums="34be4fccc7790d1ccf619da9f368cde3466717a7b4c8479f53ba5885a5e889d18de50ccd02be91438e2c879406bd21f79a3d50677be03edac89d7f24cca96b17 mapbox-gl-qml-1.7.5.tar.gz
83feae9c8f5ce59140fa928b202d113e175f6b281452344ea6982c29a592816d57d1e6ac4a7b57282a46102906df305f5b0aa5f921e1d5ef37fd5aad3b9ae9f9 cmake.patch"

View file

@ -0,0 +1,124 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..1dd2229
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,47 @@
+cmake_minimum_required(VERSION 3.6.0)
+
+project(mapbox-gl-qml
+ VERSION 1.7.6
+ DESCRIPTION "Unofficial Mapbox GL Native bindings for Qt QML")
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+option(USE_CURL_SSL "Use curl SSL" ON)
+
+include(FindPkgConfig)
+include(FeatureSummary)
+include(GNUInstallDirs)
+
+set(QT_MIN_VERSION "5.6.0")
+find_package(Qt5 ${QT_MIN_VERSION} COMPONENTS Gui Quick Positioning Sql REQUIRED)
+find_package(QMapboxGL REQUIRED)
+
+if(USE_CURL_SSL)
+ find_package(PkgConfig)
+ pkg_check_modules(CURL libcurl IMPORTED_TARGET)
+ pkg_check_modules(OPENSSL openssl IMPORTED_TARGET)
+
+ set_property(GLOBAL APPEND PROPERTY _CMAKE_libcurl_TYPE REQUIRED)
+ set_property(GLOBAL APPEND PROPERTY _CMAKE_openssl_TYPE REQUIRED)
+
+ if(CURL_FOUND)
+ set_property(GLOBAL APPEND PROPERTY PACKAGES_FOUND libcurl)
+ else()
+ set_property(GLOBAL APPEND PROPERTY PACKAGES_NOT_FOUND libcurl)
+ endif()
+
+ if(OPENSSL_FOUND)
+ set_property(GLOBAL APPEND PROPERTY PACKAGES_FOUND openssl)
+ else()
+ set_property(GLOBAL APPEND PROPERTY PACKAGES_NOT_FOUND openssl)
+ endif()
+endif()
+
+add_subdirectory(src)
+
+feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
+
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
new file mode 100644
index 0000000..2427510
--- /dev/null
+++ b/src/CMakeLists.txt
@@ -0,0 +1,53 @@
+### Sets QT_INSTALL_QML to the directory where QML Plugins should be installed
+function(FindQtInstallQml)
+ find_program(QMAKE NAMES qmake-qt5 qmake)
+ if(NOT QMAKE)
+ message(FATAL_ERROR "qmake not found")
+ endif()
+ execute_process(
+ COMMAND ${QMAKE} -query QT_INSTALL_QML
+ OUTPUT_VARIABLE PROC_RESULT
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ set(QT_INSTALL_QML ${PROC_RESULT} PARENT_SCOPE)
+endfunction()
+
+set(SRC
+ qquickitemmapboxgl.cpp
+ qsgmapboxglnode.cpp
+ qsgtextureplain.cpp
+ qmapboxsync.cpp
+ plugin/mapboxglextensionplugin.cpp)
+set(HEADERS
+ qmapboxsync_p.h
+ include/qsgmapboxglnode.h
+ include/qquickitemmapboxgl.h
+ include/qsgtextureplain.h
+ plugin/mapboxglextensionplugin.h)
+
+add_library(qmlmapboxplugin SHARED ${SRC} ${HEADERS})
+
+target_include_directories(qmlmapboxplugin PRIVATE include src)
+
+target_link_libraries(qmlmapboxplugin PRIVATE
+ Qt5::Gui
+ Qt5::Qml
+ Qt5::Quick
+ Qt5::Positioning
+ Qt5::Sql
+ qmapboxgl)
+
+if(USE_CURL_SSL)
+ add_definitions(-DUSE_CURL_SSL=1)
+ target_link_libraries(qmlmapboxplugin PRIVATE
+ PkgConfig::CURL
+ PkgConfig::OPENSSL)
+endif()
+
+FindQtInstallQml()
+
+install(FILES
+ plugin/MapboxMapGestureArea.qml
+ plugin/qmldir
+ DESTINATION ${QT_INSTALL_QML}/MapboxMap/)
+install(TARGETS qmlmapboxplugin DESTINATION ${QT_INSTALL_QML}/MapboxMap/)
diff --git a/include/qquickitemmapboxgl.h b/src/include/qquickitemmapboxgl.h
similarity index 100%
rename from include/qquickitemmapboxgl.h
rename to src/include/qquickitemmapboxgl.h
diff --git a/include/qsgmapboxglnode.h b/src/include/qsgmapboxglnode.h
similarity index 100%
rename from include/qsgmapboxglnode.h
rename to src/include/qsgmapboxglnode.h
diff --git a/include/qsgtextureplain.h b/src/include/qsgtextureplain.h
similarity index 100%
rename from include/qsgtextureplain.h
rename to src/include/qsgtextureplain.h