[build] Remove Qt builds from legacy buildsystem

This commit is contained in:
Thiago Marcos P. Santos
2019-09-16 12:04:27 +03:00
parent 5d8dbefdb1
commit 5254876b39
5 changed files with 0 additions and 532 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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()

View File

@@ -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 <SDP_DIRECTORY>/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)

View File

@@ -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)