pmos/main/mapbox-gl-qml/cmake.patch
2021-02-27 19:25:14 +01:00

125 lines
3.3 KiB
Diff

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