From 577b8928843011eeb7da98c57ab9a71efef79357 Mon Sep 17 00:00:00 2001 From: "Thiago Marcos P. Santos" Date: Mon, 16 Sep 2019 12:04:27 +0300 Subject: [build] Remove Qt builds from legacy buildsystem --- Makefile | 95 ------------------------ circle.yml | 99 ------------------------- platform/qt/config.cmake | 75 ------------------- platform/qt/qnx.cmake | 77 -------------------- platform/qt/qt.cmake | 186 ----------------------------------------------- 5 files changed, 532 deletions(-) delete mode 100644 platform/qt/config.cmake delete mode 100644 platform/qt/qnx.cmake delete mode 100644 platform/qt/qt.cmake diff --git a/Makefile b/Makefile index 916c01fed0..1c1199932e 100644 --- a/Makefile +++ b/Makefile @@ -453,101 +453,6 @@ check: compdb endif -#### Qt targets ##################################################### - -QT_QMAKE_FOUND := $(shell command -v qmake 2> /dev/null) -ifdef QT_QMAKE_FOUND - export QT_INSTALL_DOCS = $(shell qmake -query QT_INSTALL_DOCS) - QT_ROOT_PATH = build/qt-$(BUILD_PLATFORM)-$(BUILD_PLATFORM_VERSION) -endif - -export QT_OUTPUT_PATH = $(QT_ROOT_PATH)/$(BUILDTYPE) -QT_BUILD = $(QT_OUTPUT_PATH)/build.ninja - -$(QT_BUILD): $(BUILD_DEPS) - @scripts/check-qt.sh - mkdir -p $(QT_OUTPUT_PATH) - (cd $(QT_OUTPUT_PATH) && $(CMAKE) -G Ninja ../../.. \ - -DCMAKE_BUILD_TYPE=$(BUILDTYPE) \ - -DMBGL_PLATFORM=qt \ - -DMASON_PLATFORM=$(MASON_PLATFORM) \ - -DMASON_PLATFORM_VERSION=$(MASON_PLATFORM_VERSION) \ - -DWITH_QT_DECODERS=${WITH_QT_DECODERS} \ - -DWITH_QT_I18N=${WITH_QT_I18N} \ - -DWITH_COVERAGE=${WITH_COVERAGE}) - -ifeq ($(HOST_PLATFORM), macos) - -MACOS_QT_PROJ_PATH = $(QT_ROOT_PATH)/xcode/mbgl.xcodeproj -$(MACOS_QT_PROJ_PATH): $(BUILD_DEPS) - @scripts/check-qt.sh - mkdir -p $(QT_ROOT_PATH)/xcode - (cd $(QT_ROOT_PATH)/xcode && $(CMAKE) -G Xcode ../../.. \ - -DMBGL_PLATFORM=qt \ - -DMASON_PLATFORM=$(MASON_PLATFORM) \ - -DMASON_PLATFORM_VERSION=$(MASON_PLATFORM_VERSION) \ - -DWITH_QT_DECODERS=${WITH_QT_DECODERS} \ - -DWITH_QT_I18N=${WITH_QT_I18N} \ - -DWITH_COVERAGE=${WITH_COVERAGE}) - -.PHONY: qtproj -qtproj: $(MACOS_QT_PROJ_PATH) - open $(MACOS_QT_PROJ_PATH) - -endif - -ifdef QNX_HOST -export WITH_QT_DECODERS ?= ON -export QCC_COMPILER_TARGET ?= gcc_ntox86_64 -export QCC_NTOARCH ?= x86_64 - -export QNX_OUTPUT_PATH = build/qt-qnx-$(QCC_NTOARCH)/$(BUILDTYPE) -QNX_QT_BUILD = $(QNX_OUTPUT_PATH)/build.ninja -$(QNX_QT_BUILD): $(BUILD_DEPS) - @scripts/check-qt.sh - mkdir -p $(QNX_OUTPUT_PATH) - (cd $(QNX_OUTPUT_PATH) && $(CMAKE) -G Ninja ../../.. \ - -DCMAKE_BUILD_TYPE=$(BUILDTYPE) \ - -DQCC_COMPILER_TARGET=${QCC_COMPILER_TARGET} \ - -DQCC_NTOARCH=${QCC_NTOARCH} \ - -DCMAKE_TOOLCHAIN_FILE=platform/qt/qnx.cmake \ - -DMBGL_PLATFORM=qt \ - -DWITH_QT_DECODERS=${WITH_QT_DECODERS} \ - -DWITH_QT_I18N=${WITH_QT_I18N} \ - -DWITH_COVERAGE=${WITH_COVERAGE}) - -.PHONY: qnx-qt-lib -qnx-qt-lib: $(QNX_QT_BUILD) - $(NINJA) $(NINJA_ARGS) -j$(JOBS) -C $(QNX_OUTPUT_PATH) qmapboxgl - -endif - -.PHONY: qt-lib -qt-lib: $(QT_BUILD) - $(NINJA) $(NINJA_ARGS) -j$(JOBS) -C $(QT_OUTPUT_PATH) qmapboxgl - -.PHONY: qt-app -qt-app: $(QT_BUILD) - $(NINJA) $(NINJA_ARGS) -j$(JOBS) -C $(QT_OUTPUT_PATH) mbgl-qt - -.PHONY: run-qt-app -run-qt-app: qt-app - $(QT_OUTPUT_PATH)/mbgl-qt - -.PHONY: qt-test -qt-test: $(QT_BUILD) - $(NINJA) $(NINJA_ARGS) -j$(JOBS) -C $(QT_OUTPUT_PATH) mbgl-test - -run-qt-test-%: qt-test - $(QT_OUTPUT_PATH)/mbgl-test --gtest_catch_exceptions=0 --gtest_filter=$* - -.PHONY: run-qt-test -run-qt-test: run-qt-test-* - -.PHONY: qt-docs -qt-docs: - qdoc $(shell pwd)/platform/qt/config.qdocconf -outputdir $(shell pwd)/$(QT_OUTPUT_PATH)/docs - #### Node targets ############################################################## .PHONY: test-node diff --git a/circle.yml b/circle.yml index b0422f15ca..ce626335c0 100644 --- a/circle.yml +++ b/circle.yml @@ -184,8 +184,6 @@ workflows: ignore: /.*/ - macos-debug - macos-render-tests - - qt5-linux-gcc5-release - - qt5-macos-debug nightly: triggers: - schedule: @@ -507,16 +505,6 @@ commands: - run: name: Build test command: make test - build-qt-app: - steps: - - run: - name: Build qt-app - command: make qt-app - build-qt-test: - steps: - - run: - name: Build qt-test - command: make qt-test build-ios-test: steps: - run: @@ -586,18 +574,6 @@ commands: brew install node@8 brew link node@8 --force --overwrite - install-qt-macos-dependencies: - steps: - - run: - name: Install Qt macOS dependencies - command: | - brew install qt - brew link qt --force - export HOMEBREW_QT5_CELLAR=$(brew --cellar qt) - export HOMEBREW_QT5_VERSION=$(brew list --versions qt | rev | cut -d' ' -f1 | rev) - sudo ln -s $HOMEBREW_QT5_CELLAR/$HOMEBREW_QT5_VERSION/mkspecs /usr/local/mkspecs - sudo ln -s $HOMEBREW_QT5_CELLAR/$HOMEBREW_QT5_VERSION/plugins /usr/local/plugins - run-node-macos-tests: steps: - run: @@ -1185,30 +1161,6 @@ jobs: - save-dependencies - run-unit-tests-sanitized -# ------------------------------------------------------------------------------ - linux-gcc49-debug: - docker: - - image: mbgl/linux-gcc-4.9:e3818a77c1 - resource_class: large - working_directory: /src - environment: - LIBSYSCONFCPUS: 4 - JOBS: 4 - BUILDTYPE: Debug - WITH_EGL: 1 - DISPLAY: :0 - steps: - - install-dependencies - - check-if-this-job-can-be-skipped - - build-linux - - build-benchmark - - build-test - - save-dependencies - - run-unit-tests - - run: - name: Build offline CLI - command: make offline - # ------------------------------------------------------------------------------ linux-gcc5-debug-coverage: docker: @@ -1590,54 +1542,3 @@ jobs: name: Collect GitHub statistics command: | scripts/publish_github_stats.js - -# ------------------------------------------------------------------------------ - qt5-linux-gcc5-release: - docker: - - image: mbgl/linux-gcc-5-qt-5.9:5cd92d7d1c - resource_class: large - working_directory: /src - environment: - LIBSYSCONFCPUS: 4 - JOBS: 4 - BUILDTYPE: Release - WITH_QT_I18N: 1 - steps: - - install-dependencies - - check-if-this-job-can-be-skipped - - build-qt-app - - build-qt-test - - run: - name: Build qt-docs - command: make qt-docs - - save-dependencies - - run: - name: Run valgrind-backed tests - environment: - JOBS: 1 # https://github.com/mapbox/mapbox-gl-native/issues/9108 - command: | - xvfb-run --server-args="-screen 0 1024x768x24" \ - build/qt-linux-x86_64/Release/mbgl-test --gtest_filter=-*.Load --gtest_filter=-Memory.Vector --gtest_filter=-BiDi.* - -# ------------------------------------------------------------------------------ - qt5-macos-debug: - macos: - xcode: "9.3.1" - environment: - BUILDTYPE: Debug - HOMEBREW_NO_AUTO_UPDATE: 1 - HOMEBREW_NO_INSTALL_CLEANUP: 1 - steps: - - install-macos-dependencies - - install-qt-macos-dependencies - - install-dependencies - - check-if-this-job-can-be-skipped - - build-qt-app - - build-qt-test - - run: - name: Run qt-test - command: make run-qt-test - - save-dependencies - - store_artifacts: - path: test/fixtures - destination: test/fixtures diff --git a/platform/qt/config.cmake b/platform/qt/config.cmake deleted file mode 100644 index b4a486b08b..0000000000 --- a/platform/qt/config.cmake +++ /dev/null @@ -1,75 +0,0 @@ -include(platform/qt/qt.cmake) - -macro(mbgl_platform_core) - target_sources(mbgl-core - ${MBGL_QT_CORE_FILES} - ) - - target_include_directories(mbgl-core - PRIVATE platform/qt - PRIVATE platform/qt/include - PUBLIC platform/default/include - ) - - target_link_libraries(mbgl-core PRIVATE - ${MBGL_QT_CORE_LIBRARIES} - mbgl-vendor-nunicode - ) - - if(NOT WITH_QT_DECODERS) - target_sources(mbgl-core - PRIVATE platform/default/src/mbgl/util/jpeg_reader.cpp - PRIVATE platform/default/src/mbgl/util/png_reader.cpp - ) - - target_add_mason_package(mbgl-core PRIVATE libjpeg-turbo) - target_add_mason_package(mbgl-core PRIVATE libpng) - else() - add_definitions(-DQT_IMAGE_DECODERS) - endif() - - if(NOT WITH_QT_I18N) - target_sources(mbgl-core PRIVATE platform/default/src/mbgl/text/bidi.cpp) - target_link_libraries(mbgl-core PRIVATE mbgl-vendor-icu) - else() - target_sources(mbgl-core PRIVATE platform/qt/src/bidi.cpp) - endif() -endmacro() - - -macro(mbgl_filesource) - target_sources(mbgl-filesource - ${MBGL_QT_FILESOURCE_FILES} - ) - - target_link_libraries(mbgl-filesource - ${MBGL_QT_FILESOURCE_LIBRARIES} - ) -endmacro() - -# FIXME: For now tests are disabled on Windows until we -# get the node.js dependencies working. -if (NOT CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows") - macro(mbgl_platform_test) - target_sources(mbgl-test - PRIVATE platform/qt/test/main.cpp - PRIVATE platform/qt/test/qmapboxgl.test.cpp - PRIVATE platform/qt/test/qmapboxgl.test.cpp - ) - - target_include_directories(mbgl-test - PRIVATE platform/qt - ) - - set_source_files_properties( - platform/qt/test/main.cpp - PROPERTIES COMPILE_FLAGS -DWORK_DIRECTORY="${CMAKE_SOURCE_DIR}" - ) - - target_link_libraries(mbgl-test - PRIVATE qmapboxgl - PRIVATE mbgl-filesource - PRIVATE -pthread - ) - endmacro() -endif() diff --git a/platform/qt/qnx.cmake b/platform/qt/qnx.cmake deleted file mode 100644 index 7033f62362..0000000000 --- a/platform/qt/qnx.cmake +++ /dev/null @@ -1,77 +0,0 @@ -# CMake toolchain file for QNX Environment. -# -# Usage: -# -# To use this file, you need to set the 'CMAKE_TOOLCHAIN_FILE' to point to -# 'qnx.cmake' on the command line: -# -# cmake -DDCMAKE_TOOLCHAIN_FILE=platform/qt/qnx.cmake -# -# You will also need to provide the locations of the QNX HOST and TARGET locations. -# This can be done by setting the environment variables(QNX_HOST and QNX_TARGET) from -# the command line or running the environment setup script provided by the QNX Software -# Development Platform: -# -# source /qnxsdp-env.sh -# -# Options: -# -# QCC_COMPILER_TARGET: -# The compiler name. Default: gcc_ntox86_64. -# QCC_NTOARCH: -# The architecture to compile for. Default: x86_64. -# QNX_HOST: -# Environment variable to QNX host build tools location. -# QNX_TARGET: -# Environment variable to QNX target location. - -set(CMAKE_SYSTEM_NAME QNX) -set(CMAKE_HOST_SYSTEM_NAME QNX) -SET(CMAKE_SYSTEM_VERSION 7.0.0) -set(QCC_COMPILER_TARGET "$ENV{QCC_COMPILER_TARGET}") -set(QCC_NTOARCH "$ENV{QCC_NTOARCH}") - -#Check environment variables -if ("$ENV{QNX_HOST}" STREQUAL "") - message(FATAL_ERROR "QNX_HOST environment variable not set") -endif() - -if ("$ENV{QNX_TARGET}" STREQUAL "") - message(FATAL_ERROR "QNX_TARGET environment variable not set") -endif() - -set(QNX_HOST "$ENV{QNX_HOST}") -set(QNX_TARGET "$ENV{QNX_TARGET}") - -# Use 'qcc' instead of nto${QCC_NTOARCH}-gcc and nto${QCC_NTOARCH}-gcc++ once -# the issue https://gitlab.kitware.com/cmake/cmake/issues/17126 is resolved. -#set(CMAKE_C_COMPILER qcc) -#set(CMAKE_C_COMPILER_TARGET ${QCC_COMPILER_TARGET}) -#set(CMAKE_CXX_COMPILER QCC) -#set(CMAKE_CXX_COMPILER_TARGET ${QCC_COMPILER_TARGET}) - -set(CMAKE_C_COMPILER ${QNX_HOST}/usr/bin/nto${QCC_NTOARCH}-gcc) -set(CMAKE_CXX_COMPILER "${QNX_HOST}/usr/bin/nto${QCC_NTOARCH}-g++") - -set(CMAKE_LINKER "${QNX_HOST}/usr/bin/nto${QCC_NTOARCH}-ld" CACHE PATH "QNX linker program" FORCE) -set(CMAKE_AR "${QNX_HOST}/usr/bin/nto${QCC_NTOARCH}-ar" CACHE PATH "QNX ar program" FORCE) -set(CMAKE_NM "${QNX_HOST}/usr/bin/nto${QCC_NTOARCH}-nm" CACHE PATH "QNX nm program" FORCE) -set(CMAKE_OBJCOPY "${QNX_HOST}/usr/bin/nto${QCC_NTOARCH}-objcopy" CACHE PATH "QNX objcopy program" FORCE) -set(CMAKE_OBJDUMP "${QNX_HOST}/usr/bin/nto${QCC_NTOARCH}-objdump" CACHE PATH "QNX objdump program" FORCE) -set(CMAKE_RANLIB "${QNX_HOST}/usr/bin/nto${QCC_NTOARCH}-ranlib" CACHE PATH "QNX ranlib program" FORCE) -set(CMAKE_STRIP "${QNX_HOST}/usr/bin/nto${QCC_NTOARCH}-strip" CACHE PATH "QNX strip program" FORCE) -set (CMAKE_SH "${QNX_HOST}/usr/bin/sh" CACHE PATH "QNX shell program" FORCE) - -set(CMAKE_C_FLAGS_DEBUG "-g") -set(CMAKE_C_FLAGS_MINSIZEREL "-Os -DNDEBUG") -set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG") -set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g") -set(CMAKE_CXX_FLAGS_DEBUG "-g -D_DEBUG") -set(CMAKE_CXX_FLAGS_MINSIZEREL "-Os -DNDEBUG") -set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG") -set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g") - -set(CMAKE_FIND_ROOT_PATH "${QNX_TARGET}") -set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) -set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) -set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) diff --git a/platform/qt/qt.cmake b/platform/qt/qt.cmake deleted file mode 100644 index 5d9886a047..0000000000 --- a/platform/qt/qt.cmake +++ /dev/null @@ -1,186 +0,0 @@ -# This file is to be reused by target platforms that don't -# support `mason` (i.e. Yocto). Do not add any `mason` macro. - -option(WITH_QT_DECODERS "Use builtin Qt image decoders" OFF) -option(WITH_QT_I18N "Use builtin Qt i18n support" OFF) - -add_definitions("-D__QT__") - -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTORCC ON) - -set(MBGL_QT_CORE_FILES - # Headless view - PRIVATE platform/default/src/mbgl/gfx/headless_frontend.cpp - PRIVATE platform/default/include/mbgl/gfx/headless_frontend.hpp - PRIVATE platform/default/src/mbgl/gfx/headless_backend.cpp - PRIVATE platform/default/include/mbgl/gfx/headless_backend.hpp - PRIVATE platform/default/src/mbgl/gl/headless_backend.cpp - PRIVATE platform/default/include/mbgl/gl/headless_backend.hpp - PRIVATE platform/qt/src/headless_backend_qt.cpp - - # Thread - PRIVATE platform/qt/src/thread_local.cpp - - # Platform integration - PRIVATE platform/qt/src/async_task.cpp - PRIVATE platform/qt/src/async_task_impl.hpp - PRIVATE platform/qt/src/local_glyph_rasterizer.cpp - PRIVATE platform/qt/src/qt_logging.cpp - PRIVATE platform/qt/src/qt_image.cpp - PRIVATE platform/qt/src/run_loop.cpp - PRIVATE platform/qt/src/run_loop_impl.hpp - PRIVATE platform/qt/src/string_stdlib.cpp - PRIVATE platform/qt/src/timer.cpp - PRIVATE platform/qt/src/timer_impl.hpp - PRIVATE platform/qt/src/utf.cpp - PRIVATE platform/qt/src/gl_functions.cpp - PRIVATE platform/qt/src/format_number.cpp - - PRIVATE platform/default/src/mbgl/text/collator.cpp - PRIVATE platform/default/src/mbgl/text/unaccent.cpp - PRIVATE platform/default/include/mbgl/text/unaccent.hpp - - #Layer manager - PRIVATE platform/default/src/mbgl/layermanager/layer_manager.cpp -) - -set(MBGL_QT_FILESOURCE_FILES - # File source - PRIVATE platform/default/src/mbgl/storage/file_source.cpp - PRIVATE platform/qt/src/http_file_source.cpp - PRIVATE platform/qt/src/http_file_source.hpp - PRIVATE platform/qt/src/http_request.cpp - PRIVATE platform/qt/src/http_request.hpp - - # Database - PRIVATE platform/qt/src/sqlite3.cpp -) - -# Shared library -add_library(qmapboxgl SHARED - platform/qt/include/qmapbox.hpp - platform/qt/include/qmapboxgl.hpp - platform/qt/src/qt_conversion.hpp - platform/qt/src/qt_geojson.cpp - platform/qt/src/qt_geojson.hpp - platform/qt/src/qmapbox.cpp - platform/qt/src/qmapboxgl.cpp - platform/qt/src/qmapboxgl_p.hpp - platform/qt/src/qmapboxgl_map_observer.cpp - platform/qt/src/qmapboxgl_map_observer.hpp - platform/qt/src/qmapboxgl_map_renderer.cpp - platform/qt/src/qmapboxgl_map_renderer.hpp - platform/qt/src/qmapboxgl_renderer_backend.cpp - platform/qt/src/qmapboxgl_renderer_backend.hpp - platform/qt/src/qmapboxgl_scheduler.cpp - platform/qt/src/qmapboxgl_scheduler.hpp -) - -target_include_directories(qmapboxgl - PUBLIC platform/qt/include - PRIVATE src -) - -target_compile_definitions(qmapboxgl - PRIVATE "-DQT_BUILD_MAPBOXGL_LIB" -) - -target_link_libraries(qmapboxgl - PRIVATE mbgl-core - PRIVATE mbgl-filesource - ${MBGL_QT_CORE_LIBRARIES} - ${MBGL_QT_FILESOURCE_LIBRARIES} -) - -# C++ app -add_executable(mbgl-qt - platform/qt/app/main.cpp - platform/qt/app/mapwindow.cpp - platform/qt/app/mapwindow.hpp - platform/qt/resources/common.qrc -) - -target_compile_options(qmapboxgl - PRIVATE -std=c++03 -) - -target_link_libraries(mbgl-qt - PRIVATE qmapboxgl -) - -find_package(Qt5Core REQUIRED) -find_package(Qt5Gui REQUIRED) -find_package(Qt5Network REQUIRED) -find_package(Qt5OpenGL REQUIRED) -find_package(Qt5Widgets REQUIRED) -find_package(Qt5Sql REQUIRED) - -# Qt5 always build OpenGL ES2 which is the compatibility -# mode. Qt5 will take care of translating the desktop -# version of OpenGL to ES2. -add_definitions("-DMBGL_USE_GLES2") - -set(MBGL_QT_CORE_LIBRARIES - PUBLIC Qt5::Core - PUBLIC Qt5::Gui - PUBLIC Qt5::OpenGL -) - -set(MBGL_QT_FILESOURCE_LIBRARIES - PUBLIC Qt5::Network - PUBLIC Qt5::Sql -) - -target_link_libraries(mbgl-qt - PRIVATE Qt5::Widgets -) - -xcode_create_scheme(TARGET mbgl-qt) - -# OS specific configurations -if (MASON_PLATFORM STREQUAL "osx" OR MASON_PLATFORM STREQUAL "ios") - list(APPEND MBGL_QT_CORE_FILES - PRIVATE platform/darwin/src/nsthread.mm - ) - list(APPEND MBGL_QT_CORE_LIBRARIES - PRIVATE "-framework Foundation" - ) -elseif (CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux") - list(APPEND MBGL_QT_CORE_FILES - PRIVATE platform/default/src/mbgl/util/thread.cpp - ) -elseif (CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows") - add_definitions("-DQT_COMPILING_QIMAGE_COMPAT_CPP") - add_definitions("-DRAPIDJSON_HAS_CXX11_RVALUE_REFS") - add_definitions("-D_USE_MATH_DEFINES") - - add_definitions("-Wno-deprecated-declarations") - add_definitions("-Wno-macro-redefined") - add_definitions("-Wno-microsoft-exception-spec") - add_definitions("-Wno-unknown-argument") - add_definitions("-Wno-unknown-warning-option") - add_definitions("-Wno-unused-command-line-argument") - add_definitions("-Wno-unused-local-typedef") - add_definitions("-Wno-unused-private-field") - add_definitions("-Wno-inconsistent-missing-override") - - list(APPEND MBGL_QT_CORE_FILES - PRIVATE platform/qt/src/thread.cpp - ) -elseif (CMAKE_HOST_SYSTEM_NAME STREQUAL "QNX") - list(APPEND MBGL_QT_CORE_FILES - PRIVATE platform/qt/src/thread.cpp - ) - add_definitions("-Wno-narrowing") -endif() - -add_custom_command( - TARGET qmapboxgl - POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_directory - ${CMAKE_SOURCE_DIR}/platform/qt/include - ${CMAKE_CURRENT_BINARY_DIR}/platform/qt/include -) - -xcode_create_scheme(TARGET qmapboxgl) -- cgit v1.2.1