diff options
author | Thiago Marcos P. Santos <thiago@mapbox.com> | 2016-07-27 17:58:45 +0300 |
---|---|---|
committer | Thiago Marcos P. Santos <thiago@mapbox.com> | 2016-07-28 16:32:31 +0300 |
commit | 5728b2d689f5b0aed8b24bada9b2f172aa526538 (patch) | |
tree | d9a929990b959f8c073b393acd727d2ced6317f8 | |
parent | 5936d3a2bcf01fce05af33a23792eb77eb46879d (diff) | |
download | qtlocation-mapboxgl-5728b2d689f5b0aed8b24bada9b2f172aa526538.tar.gz |
[build][Qt] Added standalone build mode
Attempt to make a build with as few build time and runtime
dependencies as possible.
-rw-r--r-- | platform/qt/standalone/CMakeLists.txt | 66 | ||||
-rw-r--r-- | platform/qt/standalone/geojson-hack.cpp | 1 | ||||
-rw-r--r-- | platform/qt/standalone/standalone.cmake | 26 |
3 files changed, 93 insertions, 0 deletions
diff --git a/platform/qt/standalone/CMakeLists.txt b/platform/qt/standalone/CMakeLists.txt new file mode 100644 index 0000000000..b00a491dd8 --- /dev/null +++ b/platform/qt/standalone/CMakeLists.txt @@ -0,0 +1,66 @@ +cmake_minimum_required(VERSION 3.2) +project(qmapboxgl LANGUAGES CXX C) + +set(CMAKE_BUILD_TYPE Release) +set(CMAKE_CXX_STANDARD 14) +set(CMAKE_SOURCE_DIR ${CMAKE_SOURCE_DIR}/../../..) + +set(MBGL_GENERATED ${CMAKE_BINARY_DIR}/generated) + +include(${CMAKE_SOURCE_DIR}/cmake/core-files.cmake) +include(${CMAKE_SOURCE_DIR}/cmake/shaders.cmake) +include(${CMAKE_SOURCE_DIR}/platform/qt/qt.cmake) +include(${CMAKE_SOURCE_DIR}/platform/qt/standalone/standalone.cmake) + +add_library(mbgl-core STATIC + ${MBGL_CORE_FILES} +) + +include_directories( + ${CMAKE_SOURCE_DIR}/include + ${CMAKE_SOURCE_DIR}/platform/default + ${CMAKE_SOURCE_DIR}/platform/qt/include + ${CMAKE_SOURCE_DIR}/src + ${MBGL_GENERATED}/include +) + +add_dep(earcut 662398 mapbox/earcut.hpp) # v0.11 + header fix +add_dep(geojson-cpp v0.1.4 mapbox/geojson-cpp) +add_dep(geojson-vt-cpp v6.1.0 mapbox/geojson-vt-cpp) +add_dep(geometry.hpp v0.8.0 mapbox/geometry.hpp) +add_dep(mapbox-gl-shaders 4d1f89 mapbox/mapbox-gl-shaders) +add_dep(protozero v1.3.0 mapbox/protozero) +add_dep(rapidjson v1.0.2 miloyip/rapidjson) +add_dep(unique_resource cba309 okdshin/unique_resource) +add_dep(variant v1.1.1 mapbox/variant) + +add_dep(boost_algorithm boost-1.60.0 boostorg/algorithm) +add_dep(boost_functional boost-1.60.0 boostorg/functional) +add_dep(boost_geometry boost-1.60.0 boostorg/geometry) +add_dep(boost_iterator boost-1.60.0 boostorg/iterator) +add_dep(boost_regex boost-1.60.0 boostorg/regex) +add_dep(boost_spirit boost-1.60.0 boostorg/spirit) + +target_sources(mbgl-core + ${MBGL_QT_FILES} + PRIVATE ${CMAKE_SOURCE_DIR}/platform/qt/standalone/geojson-hack.cpp +) + +add_custom_target(mbgl-headers DEPENDS + ${MBGL_SHADER_FILES} + ${MBGL_GENERATED}/include/mbgl/util/version.hpp +) + +add_dependencies(mbgl-core + mbgl-headers +) + +target_compile_definitions(mbgl-core + PRIVATE -DQT_IMAGE_DECODERS +) + +# FIXME: Qt should not depend on sqlite3 +target_link_libraries(mbgl-core + ${MBGL_QT_LIBRARIES} + PRIVATE -lsqlite3 +) diff --git a/platform/qt/standalone/geojson-hack.cpp b/platform/qt/standalone/geojson-hack.cpp new file mode 100644 index 0000000000..d1228de48e --- /dev/null +++ b/platform/qt/standalone/geojson-hack.cpp @@ -0,0 +1 @@ +#include <src/mapbox/geojson.cpp> diff --git a/platform/qt/standalone/standalone.cmake b/platform/qt/standalone/standalone.cmake new file mode 100644 index 0000000000..5ee0fb0dc4 --- /dev/null +++ b/platform/qt/standalone/standalone.cmake @@ -0,0 +1,26 @@ +include(ExternalProject) + +# Macro for cloning and downloading our header-only dependencies +macro(add_dep package tag git) + externalproject_add(${package} + URL https://github.com/${git}/archive/${tag}.zip + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND "" + ) + + add_dependencies(mbgl-core ${package}) + + externalproject_get_property(${package} SOURCE_DIR) + target_include_directories(mbgl-core PRIVATE ${SOURCE_DIR}) + target_include_directories(mbgl-core PRIVATE ${SOURCE_DIR}/include) + + set(${package}_SOURCE_DIR ${SOURCE_DIR}) +endmacro() + +add_custom_command( + OUTPUT ${MBGL_GENERATED}/include/mbgl/util/version.hpp + DEPENDS ${CMAKE_SOURCE_DIR}/package.json + COMMAND ${CMAKE_SOURCE_DIR}/scripts/build-version.py ${MBGL_GENERATED} + VERBATIM +) |