[qt] Rename QMapboxGL to QMapLibreGL (#338)

* Rename QMapboxGL to QMapLibreGL

* Add missing QDebug includes

* Fix Qt CMake config

* Fix geojson warning

* Remove redundant OpenGL dependency

* Put everything under QMapLibreGL namespace

* Reorganise headers

Co-authored-by: Rinigus <rinigus.git@gmail.com>
This commit is contained in:
Tadej Novak
2022-07-03 20:30:46 +02:00
committed by GitHub
parent 7a40d4cbd3
commit 5b3d936521
66 changed files with 1740 additions and 1637 deletions

View File

@@ -7,25 +7,22 @@ set(MBGL_QT_VERSION_COMPATIBILITY 2.0.0)
message(STATUS "Version ${MBGL_QT_VERSION}")
option(MBGL_QT_LIBRARY_ONLY "Build only libraries" OFF)
option(MBGL_QT_STATIC "Build Mapbox GL Qt bindings staticly" OFF)
option(MBGL_QT_INSIDE_PLUGIN "Build qmapboxgl as OBJECT library, so it can be bundled into separate single plugin lib." OFF)
option(MBGL_WITH_QT_HEADLESS "Build Mapbox GL Qt with headless support" ON)
option(MBGL_QT_WITH_INTERNAL_SQLITE "Build Mapbox GL Qt bindings with internal sqlite" OFF)
option(MBGL_QT_STATIC "Build MapLibre GL Qt bindings staticly" OFF)
option(MBGL_QT_INSIDE_PLUGIN "Build QMapLibreGL as OBJECT library, so it can be bundled into separate single plugin lib." OFF)
option(MBGL_QT_WITH_HEADLESS "Build MapLibre GL Qt with headless support" ON)
option(MBGL_QT_WITH_INTERNAL_SQLITE "Build MapLibre GL Qt bindings with internal sqlite" OFF)
find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED)
find_package(Qt${QT_VERSION_MAJOR}
COMPONENTS Gui
Network
REQUIRED)
if (Qt6_FOUND)
find_package(Qt${QT_VERSION_MAJOR}OpenGLWidgets REQUIRED)
endif()
if(MBGL_WITH_QT_HEADLESS OR NOT MBGL_QT_LIBRARY_ONLY)
find_package(Qt${QT_VERSION_MAJOR}
COMPONENTS OpenGL
Widgets
REQUIRED)
if(NOT MBGL_QT_LIBRARY_ONLY)
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Widgets REQUIRED)
if (Qt6_FOUND)
find_package(Qt${QT_VERSION_MAJOR}OpenGLWidgets REQUIRED)
endif()
endif()
if(NOT MBGL_QT_WITH_INTERNAL_SQLITE)
@@ -36,7 +33,7 @@ else()
endif()
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
option(MBGL_QT_WITH_INTERNAL_ICU "Build Mapbox GL Qt bindings with internal ICU" OFF)
option(MBGL_QT_WITH_INTERNAL_ICU "Build MapLibre GL Qt bindings with internal ICU" OFF)
if(NOT MBGL_QT_WITH_INTERNAL_ICU)
find_package(ICU COMPONENTS uc REQUIRED)
else()
@@ -72,7 +69,7 @@ endif()
target_sources(
mbgl-core
PRIVATE
${PROJECT_SOURCE_DIR}/platform/$<IF:$<PLATFORM_ID:Linux>,default/src/mbgl/text/bidi.cpp,qt/src/bidi.cpp>
${PROJECT_SOURCE_DIR}/platform/$<IF:$<PLATFORM_ID:Linux>,default/src/mbgl/text/bidi.cpp,qt/src/mbgl/bidi.cpp>
${PROJECT_SOURCE_DIR}/platform/default/include/mbgl/gfx/headless_backend.hpp
${PROJECT_SOURCE_DIR}/platform/default/include/mbgl/gfx/headless_frontend.hpp
${PROJECT_SOURCE_DIR}/platform/default/include/mbgl/gl/headless_backend.hpp
@@ -94,43 +91,31 @@ target_sources(
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/offline_database.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/offline_download.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/online_file_source.cpp
${PROJECT_SOURCE_DIR}/platform/$<IF:$<BOOL:${MBGL_QT_WITH_INTERNAL_SQLITE}>,default/src/mbgl/storage/sqlite3.cpp,qt/src/sqlite3.cpp>
${PROJECT_SOURCE_DIR}/platform/$<IF:$<BOOL:${MBGL_QT_WITH_INTERNAL_SQLITE}>,default/src/mbgl/storage/sqlite3.cpp,qt/src/mbgl/sqlite3.cpp>
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/compression.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/monotonic_timer.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/async_task.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/async_task_impl.hpp
${PROJECT_SOURCE_DIR}/platform/qt/src/number_format.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/gl_functions.cpp
$<$<BOOL:${MBGL_PUBLIC_BUILD}>:${PROJECT_SOURCE_DIR}/platform/qt/src/http_file_source.cpp>
$<$<BOOL:${MBGL_PUBLIC_BUILD}>:${PROJECT_SOURCE_DIR}/platform/qt/src/http_file_source.hpp>
$<$<BOOL:${MBGL_PUBLIC_BUILD}>:${PROJECT_SOURCE_DIR}/platform/qt/src/http_request.cpp>
$<$<BOOL:${MBGL_PUBLIC_BUILD}>:${PROJECT_SOURCE_DIR}/platform/qt/src/http_request.hpp>
${PROJECT_SOURCE_DIR}/platform/qt/src/local_glyph_rasterizer.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/qt_image.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/qt_logging.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/run_loop.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/run_loop_impl.hpp
${PROJECT_SOURCE_DIR}/platform/qt/src/string_stdlib.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/thread.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/thread_local.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/timer.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/timer_impl.hpp
${PROJECT_SOURCE_DIR}/platform/qt/src/utf.cpp
$<$<BOOL:${MBGL_QT_WITH_HEADLESS}>:${PROJECT_SOURCE_DIR}/platform/qt/src/mbgl/headless_backend_qt.cpp>
${PROJECT_SOURCE_DIR}/platform/qt/src/mbgl/async_task.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/mbgl/async_task_impl.hpp
${PROJECT_SOURCE_DIR}/platform/qt/src/mbgl/gl_functions.cpp
$<$<BOOL:${MBGL_PUBLIC_BUILD}>:${PROJECT_SOURCE_DIR}/platform/qt/src/mbgl/http_file_source.cpp>
$<$<BOOL:${MBGL_PUBLIC_BUILD}>:${PROJECT_SOURCE_DIR}/platform/qt/src/mbgl/http_file_source.hpp>
$<$<BOOL:${MBGL_PUBLIC_BUILD}>:${PROJECT_SOURCE_DIR}/platform/qt/src/mbgl/http_request.cpp>
$<$<BOOL:${MBGL_PUBLIC_BUILD}>:${PROJECT_SOURCE_DIR}/platform/qt/src/mbgl/http_request.hpp>
${PROJECT_SOURCE_DIR}/platform/qt/src/mbgl/image.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/mbgl/number_format.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/mbgl/local_glyph_rasterizer.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/mbgl/logging_qt.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/mbgl/run_loop.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/mbgl/run_loop_impl.hpp
${PROJECT_SOURCE_DIR}/platform/qt/src/mbgl/string_stdlib.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/mbgl/thread.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/mbgl/thread_local.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/mbgl/timer.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/mbgl/timer_impl.hpp
${PROJECT_SOURCE_DIR}/platform/qt/src/mbgl/utf.cpp
)
if(MBGL_WITH_QT_HEADLESS OR NOT MBGL_QT_LIBRARY_ONLY)
target_sources(
mbgl-core
PRIVATE
${PROJECT_SOURCE_DIR}/platform/qt/src/headless_backend_qt.cpp
)
target_link_libraries(
mbgl-core
PRIVATE
Qt${QT_VERSION_MAJOR}::OpenGL
)
endif()
target_compile_definitions(
mbgl-core
PRIVATE QT_IMAGE_DECODERS
@@ -159,84 +144,100 @@ target_link_libraries(
mbgl-vendor-nunicode
)
set(qmapboxgl_headers
${PROJECT_SOURCE_DIR}/platform/qt/include/QMapbox
${PROJECT_SOURCE_DIR}/platform/qt/include/QMapboxGL
${PROJECT_SOURCE_DIR}/platform/qt/include/qmapbox.hpp
${PROJECT_SOURCE_DIR}/platform/qt/include/qmapboxgl.hpp
set(qmaplibregl_headers
${PROJECT_SOURCE_DIR}/platform/qt/include/QMapLibreGL/export.hpp
${PROJECT_SOURCE_DIR}/platform/qt/include/QMapLibreGL/map.hpp
${PROJECT_SOURCE_DIR}/platform/qt/include/QMapLibreGL/Map
${PROJECT_SOURCE_DIR}/platform/qt/include/QMapLibreGL/settings.hpp
${PROJECT_SOURCE_DIR}/platform/qt/include/QMapLibreGL/Settings
${PROJECT_SOURCE_DIR}/platform/qt/include/QMapLibreGL/types.hpp
${PROJECT_SOURCE_DIR}/platform/qt/include/QMapLibreGL/Types
${PROJECT_SOURCE_DIR}/platform/qt/include/QMapLibreGL/utils.hpp
${PROJECT_SOURCE_DIR}/platform/qt/include/QMapLibreGL/Utils
)
if (MBGL_QT_INSIDE_PLUGIN)
add_library(qmapboxgl OBJECT)
add_library(qmaplibregl OBJECT)
elseif(MBGL_QT_STATIC)
add_library(qmapboxgl STATIC)
add_library(qmaplibregl STATIC)
else()
add_library(qmapboxgl SHARED)
add_library(qmaplibregl SHARED)
endif()
target_sources(
qmapboxgl
qmaplibregl
PRIVATE
${qmapboxgl_headers}
${PROJECT_SOURCE_DIR}/platform/qt/src/qmapbox.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/qmapboxgl.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/qmapboxgl_map_observer.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/qmapboxgl_map_observer.hpp
${PROJECT_SOURCE_DIR}/platform/qt/src/qmapboxgl_map_renderer.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/qmapboxgl_map_renderer.hpp
${PROJECT_SOURCE_DIR}/platform/qt/src/qmapboxgl_p.hpp
${PROJECT_SOURCE_DIR}/platform/qt/src/qmapboxgl_renderer_backend.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/qmapboxgl_renderer_backend.hpp
${PROJECT_SOURCE_DIR}/platform/qt/src/qmapboxgl_scheduler.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/qmapboxgl_scheduler.hpp
${PROJECT_SOURCE_DIR}/platform/qt/src/qt_conversion.hpp
${PROJECT_SOURCE_DIR}/platform/qt/src/qt_geojson.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/qt_geojson.hpp
${qmaplibregl_headers}
${PROJECT_SOURCE_DIR}/platform/qt/src/map.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/map_p.hpp
${PROJECT_SOURCE_DIR}/platform/qt/src/settings.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/types.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/utils.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/utils/map_observer.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/utils/map_observer.hpp
${PROJECT_SOURCE_DIR}/platform/qt/src/utils/map_renderer.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/utils/map_renderer.hpp
${PROJECT_SOURCE_DIR}/platform/qt/src/utils/renderer_backend.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/utils/renderer_backend.hpp
${PROJECT_SOURCE_DIR}/platform/qt/src/utils/renderer_observer.hpp
${PROJECT_SOURCE_DIR}/platform/qt/src/utils/scheduler.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/utils/scheduler.hpp
${PROJECT_SOURCE_DIR}/platform/qt/src/utils/conversion.hpp
${PROJECT_SOURCE_DIR}/platform/qt/src/utils/geojson.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/utils/geojson.hpp
)
# Linux/Mac: Set framework, version and headers
set_target_properties(
qmapboxgl PROPERTIES
qmaplibregl PROPERTIES
AUTOMOC ON
EXPORT_NAME QMapboxGL
OUTPUT_NAME QMapboxGL
EXPORT_NAME QMapLibreGL
OUTPUT_NAME QMapLibreGL
VERSION ${MBGL_QT_VERSION}
SOVERSION ${MBGL_QT_VERSION_COMPATIBILITY}
PUBLIC_HEADER "${qmapboxgl_headers}"
PUBLIC_HEADER "${qmaplibregl_headers}"
)
if (NOT MBGL_QT_STATIC AND NOT MBGL_QT_INSIDE_PLUGIN)
if (APPLE AND NOT MBGL_QT_STATIC AND NOT MBGL_QT_INSIDE_PLUGIN)
set_target_properties(
qmapboxgl PROPERTIES
qmaplibregl PROPERTIES
FRAMEWORK ON
FRAMEWORK_VERSION A
MACOSX_FRAMEWORK_IDENTIFIER org.maplibre.QMapLibreGL
MACOSX_FRAMEWORK_BUNDLE_VERSION ${MBGL_QT_VERSION}
MACOSX_FRAMEWORK_SHORT_VERSION_STRING ${MBGL_QT_VERSION}
)
target_include_directories(
qmaplibregl
INTERFACE
$<INSTALL_INTERFACE:lib/QMapLibreGL.framework>
)
endif()
include(CMakePackageConfigHelpers)
set(CMAKECONFIG_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/QMapboxGL/)
set(CMAKECONFIG_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/QMapLibreGL/)
configure_package_config_file(
"platform/qt/QMapboxGLConfig.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/QMapboxGLConfig.cmake"
INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
PATH_VARS CMAKE_INSTALL_PREFIX CMAKE_INSTALL_INCLUDEDIR
CMAKE_INSTALL_LIBDIR NO_CHECK_REQUIRED_COMPONENTS_MACRO)
"platform/qt/QMapLibreGLConfig.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/QMapLibreGLConfig.cmake"
INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
PATH_VARS CMAKE_INSTALL_PREFIX CMAKE_INSTALL_INCLUDEDIR
CMAKE_INSTALL_LIBDIR NO_CHECK_REQUIRED_COMPONENTS_MACRO)
write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/QMapboxGLConfigVersion.cmake
VERSION ${MBGL_QT_VERSION}
COMPATIBILITY AnyNewerVersion)
write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/QMapLibreGLConfigVersion.cmake
VERSION ${MBGL_QT_VERSION}
COMPATIBILITY AnyNewerVersion)
install(EXPORT QMapboxGLTargets
DESTINATION ${CMAKECONFIG_INSTALL_DIR}
COMPONENT development)
install(EXPORT QMapLibreGLTargets
DESTINATION ${CMAKECONFIG_INSTALL_DIR}
COMPONENT development)
export(EXPORT QMapboxGLTargets)
export(EXPORT QMapLibreGLTargets)
install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/QMapboxGLConfig.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/QMapboxGLConfigVersion.cmake"
DESTINATION ${CMAKECONFIG_INSTALL_DIR}
COMPONENT development)
"${CMAKE_CURRENT_BINARY_DIR}/QMapLibreGLConfig.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/QMapLibreGLConfigVersion.cmake"
DESTINATION ${CMAKECONFIG_INSTALL_DIR}
COMPONENT development)
install(
DIRECTORY include/mbgl
@@ -246,43 +247,54 @@ install(
# FIXME: Because of rapidjson conversion
target_include_directories(
qmapboxgl
qmaplibregl
PRIVATE
${PROJECT_SOURCE_DIR}/src
${PROJECT_SOURCE_DIR}/platform/qt/include
INTERFACE
"$<INSTALL_INTERFACE:include>"
${PROJECT_SOURCE_DIR}/src
${PROJECT_SOURCE_DIR}/platform/qt/include
)
target_compile_definitions(
qmapboxgl
qmaplibregl
PRIVATE
QT_BUILD_MAPBOXGL_LIB
QT_BUILD_MAPLIBREGL_LIB
)
target_link_libraries(
qmapboxgl
qmaplibregl
PUBLIC
Qt${QT_VERSION_MAJOR}::Core
Qt${QT_VERSION_MAJOR}::Gui
Qt${QT_VERSION_MAJOR}::Network
PRIVATE
"$<BUILD_INTERFACE:mbgl-compiler-options>"
"$<BUILD_INTERFACE:mbgl-core>"
"$<BUILD_INTERFACE:mbgl-vendor-parsedate>"
"$<BUILD_INTERFACE:mbgl-vendor-nunicode>"
"$<BUILD_INTERFACE:mbgl-vendor-csscolorparser>"
$<BUILD_INTERFACE:mbgl-compiler-options>
$<BUILD_INTERFACE:mbgl-core>
$<BUILD_INTERFACE:mbgl-vendor-parsedate>
$<BUILD_INTERFACE:mbgl-vendor-nunicode>
$<BUILD_INTERFACE:mbgl-vendor-csscolorparser>
)
# Do not use generator expressions for cleaner output
if (MBGL_QT_STATIC AND NOT MBGL_QT_INSIDE_PLUGIN)
target_link_libraries(
qmaplibregl
PUBLIC
$<$<NOT:$<BOOL:${MBGL_QT_WITH_INTERNAL_SQLITE}>>:Qt${QT_VERSION_MAJOR}::Sql>
$<$<NOT:$<OR:$<PLATFORM_ID:Windows>,$<PLATFORM_ID:Emscripten>>>:z>
)
target_compile_definitions(
qmaplibregl
PUBLIC QT_MAPLIBREGL_STATIC
)
endif()
install(TARGETS qmapboxgl
EXPORT QMapboxGLTargets
install(TARGETS qmaplibregl
EXPORT QMapLibreGLTargets
# Explicit set of DESTINATION is needed for older CMake versions.
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
FRAMEWORK DESTINATION "${CMAKE_INSTALL_LIBDIR}"
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/QMapLibreGL"
)
if(NOT MBGL_QT_LIBRARY_ONLY)
@@ -302,12 +314,6 @@ if(NOT MBGL_QT_LIBRARY_ONLY)
set_property(TARGET mbgl-qt PROPERTY CXX_STANDARD 98)
set_property(TARGET mbgl-qt PROPERTY AUTOMOC ON)
target_compile_definitions(
mbgl-qt
PRIVATE
$<$<OR:$<BOOL:${MBGL_QT_STATIC}>,$<BOOL:${MBGL_QT_INSIDE_PLUGIN}>>:QT_MAPBOXGL_STATIC>
)
target_link_libraries(
mbgl-qt
PRIVATE
@@ -315,7 +321,7 @@ if(NOT MBGL_QT_LIBRARY_ONLY)
Qt${QT_VERSION_MAJOR}::Gui
$<$<BOOL:${Qt6_FOUND}>:Qt${QT_VERSION_MAJOR}::OpenGLWidgets>
mbgl-compiler-options
qmapboxgl
qmaplibregl
)
target_include_directories(
@@ -341,9 +347,7 @@ if(NOT MBGL_QT_LIBRARY_ONLY)
target_link_libraries(
mbgl-test-runner
PRIVATE
Qt${QT_VERSION_MAJOR}::Widgets
Qt${QT_VERSION_MAJOR}::Gui
Qt${QT_VERSION_MAJOR}::OpenGL
mbgl-compiler-options
$<$<NOT:$<BOOL:MSVC>>:pthread>
)