[build] Move the next buildsystem to the root

This will make the `next` buildsystem no longer the `next`, but the
`actual`. The idea is to simplify the build, removing scripts, to
make the platform buildsystem generated by CMake more compatible
with IDEs and make development more streamlined. It will also make
cross compilation easier.
This commit is contained in:
Thiago Marcos P. Santos
2020-02-07 16:38:14 +02:00
parent 489adb8d87
commit f7fef70e9d
33 changed files with 2653 additions and 2895 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1,24 +1,42 @@
# Mapbox GL Native
A library for embedding interactive, customizable vector maps into native applications on multiple platforms. It takes stylesheets that conform to the [Mapbox Style Specification](https://github.com/mapbox/mapbox-gl-style-spec/), applies them to vector tiles that conform to the [Mapbox Vector Tile Specification](https://github.com/mapbox/vector-tile-spec), and renders them using OpenGL. [Mapbox GL JS](https://github.com/mapbox/mapbox-gl-js) is the WebGL-based counterpart, designed for use on the Web.
A library for embedding interactive, customizable vector maps into native applications on multiple platforms. It
takes stylesheets that conform to the [Mapbox Style Specification](https://github.com/mapbox/mapbox-gl-style-spec/),
applies them to vector tiles that conform to the [Mapbox Vector Tile Specification](https://github.com/mapbox/vector-tile-spec),
and renders them using OpenGL. [Mapbox GL JS](https://github.com/mapbox/mapbox-gl-js) is the WebGL-based counterpart,
designed for use on the Web.
## The Mapbox GL ecosystem
This repository hosts the cross-platform Mapbox GL Native library, plus convenient SDKs for several platforms. The cross-platform library comes with a [GLFW](https://github.com/glfw/glfw)-based demo application for Ubuntu Linux and macOS. The SDKs target the usual languages on their respective platforms:
| SDK | Languages | Build status |
| --------------------------------------- | ---------------------------------- | ---------------------------------------- |
| [Mapbox GL Native](INSTALL.md) | C++14 | [![Circle CI build status](https://circleci.com/gh/mapbox/mapbox-gl-native.svg?style=shield)](https://circleci.com/gh/mapbox/workflows/mapbox-gl-native/tree/master) [![Coverage Status](https://codecov.io/gh/mapbox/mapbox-gl-native/branch/master/graph/badge.svg)](https://codecov.io/gh/mapbox/mapbox-gl-native) |
| [Mapbox Maps SDK for Android](https://github.com/mapbox/mapbox-gl-native-android) | Java | [![Circle CI build status](https://circleci.com/gh/mapbox/mapbox-gl-native-android.svg?style=shield)](https://circleci.com/gh/mapbox/workflows/mapbox-gl-native-android/tree/master) |
| [Mapbox Maps SDK for iOS](platform/ios/) | Objective-C or Swift | [![Circle CI build status](https://circleci.com/gh/mapbox/mapbox-gl-native.svg?style=shield)](https://circleci.com/gh/mapbox/workflows/mapbox-gl-native/tree/master) |
| [Mapbox Maps SDK for macOS](platform/macos/) | Objective-C, Swift, or AppleScript | [![Circle CI build status](https://circleci.com/gh/mapbox/mapbox-gl-native.svg?style=shield)](https://circleci.com/gh/mapbox/workflows/mapbox-gl-native/tree/master) |
| [node-mapbox-gl-native](platform/node/) | Node.js | [![Circle CI build status](https://circleci.com/gh/mapbox/mapbox-gl-native.svg?style=shield)](https://circleci.com/gh/mapbox/workflows/mapbox-gl-native/tree/master) |
| [Mapbox Maps SDK for Qt](platform/qt) | C++03 | [![Circle CI build status](https://circleci.com/gh/mapbox/mapbox-gl-native.svg?style=shield)](https://circleci.com/gh/mapbox/workflows/mapbox-gl-native/tree/master) [![AppVeyor CI build status](https://ci.appveyor.com/api/projects/status/3q12kbcooc6df8uc?svg=true)](https://ci.appveyor.com/project/Mapbox/mapbox-gl-native) |
| SDK | Languages | Build status |
| --------------------------------------------------- | ---------------------------------- | ---------------------------------------- |
| Mapbox GL Native Core | C++14 | [![Circle CI build status](https://circleci.com/gh/mapbox/mapbox-gl-native.svg?style=shield)](https://circleci.com/gh/mapbox/workflows/mapbox-gl-native/tree/master) [![Coverage Status](https://codecov.io/gh/mapbox/mapbox-gl-native/branch/master/graph/badge.svg)](https://codecov.io/gh/mapbox/mapbox-gl-native) |
| [Mapbox Maps SDK for Android](../platform/android/) | Java | [![Circle CI build status](https://circleci.com/gh/mapbox/mapbox-gl-native.svg?style=shield)](https://circleci.com/gh/mapbox/workflows/mapbox-gl-native/tree/master) |
| [Mapbox Maps SDK for iOS](../platform/ios/) | Objective-C or Swift | [![Circle CI build status](https://circleci.com/gh/mapbox/mapbox-gl-native.svg?style=shield)](https://circleci.com/gh/mapbox/workflows/mapbox-gl-native/tree/master) |
| [Mapbox Maps SDK for macOS](../platform/macos/) | Objective-C, Swift, or AppleScript | [![Circle CI build status](https://circleci.com/gh/mapbox/mapbox-gl-native.svg?style=shield)](https://circleci.com/gh/mapbox/workflows/mapbox-gl-native/tree/master) |
| [node-mapbox-gl-native](../platform/node/) | Node.js | [![Circle CI build status](https://circleci.com/gh/mapbox/mapbox-gl-native.svg?style=shield)](https://circleci.com/gh/mapbox/workflows/mapbox-gl-native/tree/master) |
| [Mapbox Maps SDK for Qt](../platform/qt) | C++03 | [![Circle CI build status](https://circleci.com/gh/mapbox/mapbox-gl-native.svg?style=shield)](https://circleci.com/gh/mapbox/workflows/mapbox-gl-native/tree/master) [![AppVeyor CI build status](https://ci.appveyor.com/api/projects/status/3q12kbcooc6df8uc?svg=true)](https://ci.appveyor.com/project/Mapbox/mapbox-gl-native) |
[Additional Mapbox GL Native–based libraries](https://wiki.openstreetmap.org/wiki/Mapbox_GL#Libraries) for **hybrid applications** are developed outside of this repository. If your platform or hybrid application framework isn’t listed there, consider embedding [Mapbox GL JS](https://github.com/mapbox/mapbox-gl-js) using the standard Web capabilities on your platform.
## License
Mapbox GL Native is licensed under the [2-Clause BSD license](LICENSE.md). The licenses of its dependencies are tracked via [FOSSA](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fmapbox%2Fmapbox-gl-native):
Mapbox GL Native is licensed under the [3-Clause BSD license](../LICENSE.md).
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fmapbox%2Fmapbox-gl-native.svg?type=large)](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fmapbox%2Fmapbox-gl-native)
## Developing
The `next` directory contains the next generation buildsystem for Mapbox GL Native, based solely on CMake with the
goal of minimizing the use of scripts, increase portability and support building Mapbox GL Native as a subdirectory
of another CMake project. This new buildsystem is also designed to build offline, making use of pre-installed and
vendorized dependencies. When using the build bot docker image, the build should produce the exact same results as
the bots, making it a hermetically sealed build for Linux, Qt and Android.
### Building and running tests
The following command, executed from the root of this repository tree, will build Mapbox GL Native targeting your
host architecture given that you have all the dependencies installed.
```
$ mkdir build && cd build
$ cmake ..
$ make -j8
$ make test ARGS=-V
```

View File

@@ -78,13 +78,11 @@ before_build:
build_script:
- call "%VCVARSALL%" amd64
- cmake -E remove ../next/vendor
- cmake -E copy_directory ../vendor ../next/vendor
- cmake -G "Ninja"
-DCMAKE_BUILD_TYPE=%CONFIGURATION%
-DCMAKE_MAKE_PROGRAM="%APPVEYOR_BUILD_FOLDER%\platform\qt\ninja.exe"
-DCMAKE_PREFIX_PATH=%QT_PREFIX%
-DMBGL_WITH_QT=ON
../next
..
- cmake --build . --target qmapboxgl -- -j %NUMBER_OF_PROCESSORS%
- clcache -s

38
benchmark/CMakeLists.txt Normal file
View File

@@ -0,0 +1,38 @@
add_library(
mbgl-benchmark STATIC EXCLUDE_FROM_ALL
${PROJECT_SOURCE_DIR}/benchmark/api/query.benchmark.cpp
${PROJECT_SOURCE_DIR}/benchmark/api/render.benchmark.cpp
${PROJECT_SOURCE_DIR}/benchmark/function/camera_function.benchmark.cpp
${PROJECT_SOURCE_DIR}/benchmark/function/composite_function.benchmark.cpp
${PROJECT_SOURCE_DIR}/benchmark/function/source_function.benchmark.cpp
${PROJECT_SOURCE_DIR}/benchmark/parse/filter.benchmark.cpp
${PROJECT_SOURCE_DIR}/benchmark/parse/tile_mask.benchmark.cpp
${PROJECT_SOURCE_DIR}/benchmark/parse/vector_tile.benchmark.cpp
${PROJECT_SOURCE_DIR}/benchmark/src/mbgl/benchmark/benchmark.cpp
${PROJECT_SOURCE_DIR}/benchmark/storage/offline_database.benchmark.cpp
${PROJECT_SOURCE_DIR}/benchmark/util/dtoa.benchmark.cpp
${PROJECT_SOURCE_DIR}/benchmark/util/tilecover.benchmark.cpp
)
target_include_directories(
mbgl-benchmark
PRIVATE ${PROJECT_SOURCE_DIR}/benchmark/src ${PROJECT_SOURCE_DIR}/platform/default/include ${PROJECT_SOURCE_DIR}/src
)
target_include_directories(
mbgl-benchmark
PUBLIC ${PROJECT_SOURCE_DIR}/benchmark/include ${PROJECT_SOURCE_DIR}/include
)
include(${PROJECT_SOURCE_DIR}/vendor/benchmark.cmake)
# Needed for testing private classes
get_target_property(MBGL_CORE_PRIVATE_LIBRARIES mbgl-core LINK_LIBRARIES)
target_link_libraries(
mbgl-benchmark
PRIVATE ${MBGL_CORE_PRIVATE_LIBRARIES} mbgl-vendor-benchmark mbgl-compiler-options
PUBLIC mbgl-core
)
set_property(TARGET mbgl-benchmark PROPERTY FOLDER Core)

View File

@@ -33,7 +33,7 @@ android {
externalNativeBuild {
cmake {
version '3.10.2'
path '../../../next/CMakeLists.txt'
path '../../../CMakeLists.txt'
}
}
buildTypes {

View File

@@ -1,6 +1,6 @@
add_executable(
mbgl-cache
${MBGL_ROOT}/bin/cache.cpp
${PROJECT_SOURCE_DIR}/bin/cache.cpp
)
target_link_libraries(
@@ -14,7 +14,7 @@ target_link_libraries(
add_executable(
mbgl-offline
${MBGL_ROOT}/bin/offline.cpp
${PROJECT_SOURCE_DIR}/bin/offline.cpp
)
target_link_libraries(
@@ -24,7 +24,7 @@ target_link_libraries(
add_executable(
mbgl-render
${MBGL_ROOT}/bin/render.cpp
${PROJECT_SOURCE_DIR}/bin/render.cpp
)
target_link_libraries(
@@ -37,6 +37,6 @@ install(TARGETS mbgl-offline mbgl-render RUNTIME DESTINATION bin)
# FIXME: CI must have a valid token
#
# add_test(NAME mbgl-offline-tool-test COMMAND mbgl-offline -s mapbox://styles/mapbox/satellite-v9 --maxZoom=0 WORKING_DIRECTORY
# ${MBGL_ROOT} )
# ${PROJECT_SOURCE_DIR} )
#
# add_test(NAME mbgl-render-tool-test COMMAND mbgl-render WORKING_DIRECTORY ${MBGL_ROOT} )
# add_test(NAME mbgl-render-tool-test COMMAND mbgl-render WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} )

View File

@@ -226,7 +226,7 @@ commands:
- run:
name: Configure
command: |
cmake next -B build << parameters.config_params >>
cmake . -B build << parameters.config_params >>
build:
parameters:
build_params:
@@ -320,7 +320,7 @@ jobs:
- run:
name: Build
command: |
cmake next -B Build -G Xcode -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_OSX_SYSROOT=iphonesimulator
cmake . -B Build -G Xcode -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_OSX_SYSROOT=iphonesimulator
cd Build && xcodebuild -sdk iphonesimulator -project Mapbox\ GL\ Native.xcodeproj -configuration Release
- save
ios-render-test-runner:
@@ -341,7 +341,7 @@ jobs:
name: Build IOS RenderTestApp
command: |
cd render-test/ios
cmake ../../next -B Build -G Xcode -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphoneos -DMBGL_IOS_RENDER_TEST=ON
cmake ../.. -B Build -G Xcode -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphoneos -DMBGL_IOS_RENDER_TEST=ON
cd Build
xcodebuild -sdk iphoneos -project Mapbox\ GL\ Native.xcodeproj -scheme RenderTestApp build-for-testing -arch arm64 CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO -configuration Release
xcodebuild -sdk iphoneos -project Mapbox\ GL\ Native.xcodeproj build -target RenderTestAppTests -arch arm64 CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO -configuration Release
@@ -391,8 +391,8 @@ jobs:
cd ../.. && mkdir -p /tmp/tests/ios-render-test
if ls render-test-app/TestLogs/*.html 1> /dev/null 2>&1; then cp render-test-app/TestLogs/*.html /tmp/tests/ios-render-test; fi
if [[ -n $(ls render-test-app/TestLogs/*.zip 2>/dev/null) ]]; then
cp render-test-app/TestLogs/*.zip metrics/next-ios-render-test-runner/
cd metrics/next-ios-render-test-runner/
cp render-test-app/TestLogs/*.zip metrics/ios-render-test-runner/
cd metrics/ios-render-test-runner/
unzip *.zip
rm -rf *.zip
fi
@@ -528,7 +528,8 @@ jobs:
- run:
name: CMake Format
command: |
cmake-format -i $(find next -type f -name CMakeLists.txt -o -name '*.cmake')
cmake-format -i $(find -name '*.cmake' -and -not -path './vendor/*/*' -and -not -path './build/*')
cmake-format -i $(find -name CMakeLists.txt -and -not -path './vendor/*/*' -and -not -path './build/*')
git diff --exit-code | tee nitpick.patch
- run:
name: Clang Format

View File

@@ -0,0 +1,38 @@
add_executable(
mbgl-expression-test
${PROJECT_SOURCE_DIR}/expression-test/expression_test_logger.cpp
${PROJECT_SOURCE_DIR}/expression-test/expression_test_logger.hpp
${PROJECT_SOURCE_DIR}/expression-test/expression_test_parser.cpp
${PROJECT_SOURCE_DIR}/expression-test/expression_test_parser.hpp
${PROJECT_SOURCE_DIR}/expression-test/expression_test_runner.cpp
${PROJECT_SOURCE_DIR}/expression-test/expression_test_runner.hpp
${PROJECT_SOURCE_DIR}/expression-test/test_runner_common.cpp
${PROJECT_SOURCE_DIR}/expression-test/test_runner_common.hpp
${PROJECT_SOURCE_DIR}/expression-test/main.cpp
)
target_compile_definitions(
mbgl-expression-test
PRIVATE TEST_RUNNER_ROOT_PATH="${PROJECT_SOURCE_DIR}"
)
# FIXME: Should not use core private interface
target_include_directories(
mbgl-expression-test
PRIVATE ${PROJECT_SOURCE_DIR}/src
)
target_link_libraries(
mbgl-expression-test
PRIVATE
Mapbox::Base::Extras::args
Mapbox::Base::Extras::filesystem
Mapbox::Base::io
mbgl-core
)
set_property(TARGET mbgl-expression-test PROPERTY FOLDER Executables)
string(RANDOM LENGTH 5 ALPHABET 0123456789 MBGL_EXPRESSION_TEST_SEED)
add_test(NAME mbgl-expression-test COMMAND mbgl-expression-test -s --seed=${MBGL_EXPRESSION_TEST_SEED} WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})

File diff suppressed because it is too large Load Diff

View File

@@ -1,42 +0,0 @@
# Mapbox GL Native
A library for embedding interactive, customizable vector maps into native applications on multiple platforms. It
takes stylesheets that conform to the [Mapbox Style Specification](https://github.com/mapbox/mapbox-gl-style-spec/),
applies them to vector tiles that conform to the [Mapbox Vector Tile Specification](https://github.com/mapbox/vector-tile-spec),
and renders them using OpenGL. [Mapbox GL JS](https://github.com/mapbox/mapbox-gl-js) is the WebGL-based counterpart,
designed for use on the Web.
| SDK | Languages | Build status |
| --------------------------------------------------- | ---------------------------------- | ---------------------------------------- |
| Mapbox GL Native Core | C++14 | [![Circle CI build status](https://circleci.com/gh/mapbox/mapbox-gl-native.svg?style=shield)](https://circleci.com/gh/mapbox/workflows/mapbox-gl-native/tree/master) [![Coverage Status](https://codecov.io/gh/mapbox/mapbox-gl-native/branch/master/graph/badge.svg)](https://codecov.io/gh/mapbox/mapbox-gl-native) |
| [Mapbox Maps SDK for Android](../platform/android/) | Java | [![Circle CI build status](https://circleci.com/gh/mapbox/mapbox-gl-native.svg?style=shield)](https://circleci.com/gh/mapbox/workflows/mapbox-gl-native/tree/master) |
| [Mapbox Maps SDK for iOS](../platform/ios/) | Objective-C or Swift | [![Circle CI build status](https://circleci.com/gh/mapbox/mapbox-gl-native.svg?style=shield)](https://circleci.com/gh/mapbox/workflows/mapbox-gl-native/tree/master) |
| [Mapbox Maps SDK for macOS](../platform/macos/) | Objective-C, Swift, or AppleScript | [![Circle CI build status](https://circleci.com/gh/mapbox/mapbox-gl-native.svg?style=shield)](https://circleci.com/gh/mapbox/workflows/mapbox-gl-native/tree/master) |
| [node-mapbox-gl-native](../platform/node/) | Node.js | [![Circle CI build status](https://circleci.com/gh/mapbox/mapbox-gl-native.svg?style=shield)](https://circleci.com/gh/mapbox/workflows/mapbox-gl-native/tree/master) |
| [Mapbox Maps SDK for Qt](../platform/qt) | C++03 | [![Circle CI build status](https://circleci.com/gh/mapbox/mapbox-gl-native.svg?style=shield)](https://circleci.com/gh/mapbox/workflows/mapbox-gl-native/tree/master) [![AppVeyor CI build status](https://ci.appveyor.com/api/projects/status/3q12kbcooc6df8uc?svg=true)](https://ci.appveyor.com/project/Mapbox/mapbox-gl-native) |
[Additional Mapbox GL Native–based libraries](https://wiki.openstreetmap.org/wiki/Mapbox_GL#Libraries) for **hybrid applications** are developed outside of this repository. If your platform or hybrid application framework isn’t listed there, consider embedding [Mapbox GL JS](https://github.com/mapbox/mapbox-gl-js) using the standard Web capabilities on your platform.
## License
Mapbox GL Native is licensed under the [3-Clause BSD license](../LICENSE.md).
## Developing
The `next` directory contains the next generation buildsystem for Mapbox GL Native, based solely on CMake with the
goal of minimizing the use of scripts, increase portability and support building Mapbox GL Native as a subdirectory
of another CMake project. This new buildsystem is also designed to build offline, making use of pre-installed and
vendorized dependencies. When using the build bot docker image, the build should produce the exact same results as
the bots, making it a hermetically sealed build for Linux, Qt and Android.
### Building and running tests
The following command, executed from the root of this repository tree, will build Mapbox GL Native targeting your
host architecture given that you have all the dependencies installed.
```
$ mkdir build && cd build
$ cmake ../next
$ make -j8
$ make test ARGS=-V
```

View File

@@ -1,38 +0,0 @@
add_library(
mbgl-benchmark STATIC EXCLUDE_FROM_ALL
${MBGL_ROOT}/benchmark/api/query.benchmark.cpp
${MBGL_ROOT}/benchmark/api/render.benchmark.cpp
${MBGL_ROOT}/benchmark/function/camera_function.benchmark.cpp
${MBGL_ROOT}/benchmark/function/composite_function.benchmark.cpp
${MBGL_ROOT}/benchmark/function/source_function.benchmark.cpp
${MBGL_ROOT}/benchmark/parse/filter.benchmark.cpp
${MBGL_ROOT}/benchmark/parse/tile_mask.benchmark.cpp
${MBGL_ROOT}/benchmark/parse/vector_tile.benchmark.cpp
${MBGL_ROOT}/benchmark/src/mbgl/benchmark/benchmark.cpp
${MBGL_ROOT}/benchmark/storage/offline_database.benchmark.cpp
${MBGL_ROOT}/benchmark/util/dtoa.benchmark.cpp
${MBGL_ROOT}/benchmark/util/tilecover.benchmark.cpp
)
target_include_directories(
mbgl-benchmark
PRIVATE ${MBGL_ROOT}/benchmark/src ${MBGL_ROOT}/platform/default/include ${MBGL_ROOT}/src
)
target_include_directories(
mbgl-benchmark
PUBLIC ${MBGL_ROOT}/benchmark/include ${MBGL_ROOT}/include
)
include(${PROJECT_SOURCE_DIR}/vendor/benchmark.cmake)
# Needed for testing private classes
get_target_property(MBGL_CORE_PRIVATE_LIBRARIES mbgl-core LINK_LIBRARIES)
target_link_libraries(
mbgl-benchmark
PRIVATE ${MBGL_CORE_PRIVATE_LIBRARIES} mbgl-vendor-benchmark mbgl-compiler-options
PUBLIC mbgl-core
)
set_property(TARGET mbgl-benchmark PROPERTY FOLDER Core)

View File

@@ -1,38 +0,0 @@
add_executable(
mbgl-expression-test
${MBGL_ROOT}/expression-test/expression_test_logger.cpp
${MBGL_ROOT}/expression-test/expression_test_logger.hpp
${MBGL_ROOT}/expression-test/expression_test_parser.cpp
${MBGL_ROOT}/expression-test/expression_test_parser.hpp
${MBGL_ROOT}/expression-test/expression_test_runner.cpp
${MBGL_ROOT}/expression-test/expression_test_runner.hpp
${MBGL_ROOT}/expression-test/test_runner_common.cpp
${MBGL_ROOT}/expression-test/test_runner_common.hpp
${MBGL_ROOT}/expression-test/main.cpp
)
target_compile_definitions(
mbgl-expression-test
PRIVATE TEST_RUNNER_ROOT_PATH="${MBGL_ROOT}"
)
# FIXME: Should not use core private interface
target_include_directories(
mbgl-expression-test
PRIVATE ${MBGL_ROOT}/src
)
target_link_libraries(
mbgl-expression-test
PRIVATE
Mapbox::Base::Extras::args
Mapbox::Base::Extras::filesystem
Mapbox::Base::io
mbgl-core
)
set_property(TARGET mbgl-expression-test PROPERTY FOLDER Executables)
string(RANDOM LENGTH 5 ALPHABET 0123456789 MBGL_EXPRESSION_TEST_SEED)
add_test(NAME mbgl-expression-test COMMAND mbgl-expression-test -s --seed=${MBGL_EXPRESSION_TEST_SEED} WORKING_DIRECTORY ${MBGL_ROOT})

View File

@@ -1,483 +0,0 @@
if(NOT ANDROID_NDK_TOOLCHAIN_INCLUDED)
message(FATAL_ERROR "-- Toolchain file not included, see https://developer.android.com/ndk/guides/cmake")
endif()
target_compile_definitions(
mbgl-core
PUBLIC MBGL_USE_GLES2
)
include(${PROJECT_SOURCE_DIR}/vendor/icu.cmake)
include(${PROJECT_SOURCE_DIR}/vendor/sqlite.cmake)
target_compile_options(mbgl-vendor-icu PRIVATE $<$<CONFIG:Release>:-Oz> $<$<CONFIG:Release>:-Qunused-arguments> $<$<CONFIG:Release>:-flto>)
target_compile_options(
mbgl-vendor-sqlite
PRIVATE $<$<CONFIG:Release>:-Oz> $<$<CONFIG:Release>:-Qunused-arguments> $<$<CONFIG:Release>:-flto>
)
target_compile_options(
mbgl-compiler-options
INTERFACE $<$<CONFIG:Release>:-Oz> $<$<CONFIG:Release>:-Qunused-arguments> $<$<CONFIG:Release>:-flto>
)
target_link_libraries(
mbgl-compiler-options
INTERFACE
$<$<CONFIG:Release>:-O2>
$<$<CONFIG:Release>:-Wl,--icf=all>
$<$<CONFIG:Release>:-flto>
$<$<CONFIG:Release>:-fuse-ld=gold>
)
target_sources(
mbgl-core
PRIVATE
${MBGL_ROOT}/platform/android/src/android_renderer_backend.cpp
${MBGL_ROOT}/platform/android/src/android_renderer_backend.hpp
${MBGL_ROOT}/platform/android/src/android_renderer_frontend.cpp
${MBGL_ROOT}/platform/android/src/android_renderer_frontend.hpp
${MBGL_ROOT}/platform/android/src/annotation/marker.cpp
${MBGL_ROOT}/platform/android/src/annotation/marker.hpp
${MBGL_ROOT}/platform/android/src/annotation/multi_point.hpp
${MBGL_ROOT}/platform/android/src/annotation/polygon.cpp
${MBGL_ROOT}/platform/android/src/annotation/polygon.hpp
${MBGL_ROOT}/platform/android/src/annotation/polyline.cpp
${MBGL_ROOT}/platform/android/src/annotation/polyline.hpp
${MBGL_ROOT}/platform/android/src/asset_manager.hpp
${MBGL_ROOT}/platform/android/src/asset_manager_file_source.cpp
${MBGL_ROOT}/platform/android/src/asset_manager_file_source.hpp
${MBGL_ROOT}/platform/android/src/async_task.cpp
${MBGL_ROOT}/platform/android/src/attach_env.cpp
${MBGL_ROOT}/platform/android/src/attach_env.hpp
${MBGL_ROOT}/platform/android/src/bitmap.cpp
${MBGL_ROOT}/platform/android/src/bitmap.hpp
${MBGL_ROOT}/platform/android/src/bitmap_factory.cpp
${MBGL_ROOT}/platform/android/src/bitmap_factory.hpp
${MBGL_ROOT}/platform/android/src/connectivity_listener.cpp
${MBGL_ROOT}/platform/android/src/connectivity_listener.hpp
${MBGL_ROOT}/platform/android/src/conversion/collection.cpp
${MBGL_ROOT}/platform/android/src/conversion/collection.hpp
${MBGL_ROOT}/platform/android/src/conversion/color.cpp
${MBGL_ROOT}/platform/android/src/conversion/color.hpp
${MBGL_ROOT}/platform/android/src/conversion/constant.cpp
${MBGL_ROOT}/platform/android/src/conversion/constant.hpp
${MBGL_ROOT}/platform/android/src/conversion/conversion.hpp
${MBGL_ROOT}/platform/android/src/geojson/feature.cpp
${MBGL_ROOT}/platform/android/src/geojson/feature.hpp
${MBGL_ROOT}/platform/android/src/geojson/feature_collection.cpp
${MBGL_ROOT}/platform/android/src/geojson/feature_collection.hpp
${MBGL_ROOT}/platform/android/src/geojson/geometry.cpp
${MBGL_ROOT}/platform/android/src/geojson/geometry.hpp
${MBGL_ROOT}/platform/android/src/geojson/geometry_collection.cpp
${MBGL_ROOT}/platform/android/src/geojson/geometry_collection.hpp
${MBGL_ROOT}/platform/android/src/geojson/line_string.cpp
${MBGL_ROOT}/platform/android/src/geojson/line_string.hpp
${MBGL_ROOT}/platform/android/src/geojson/multi_line_string.cpp
${MBGL_ROOT}/platform/android/src/geojson/multi_line_string.hpp
${MBGL_ROOT}/platform/android/src/geojson/multi_point.cpp
${MBGL_ROOT}/platform/android/src/geojson/multi_point.hpp
${MBGL_ROOT}/platform/android/src/geojson/multi_polygon.cpp
${MBGL_ROOT}/platform/android/src/geojson/multi_polygon.hpp
${MBGL_ROOT}/platform/android/src/geojson/point.cpp
${MBGL_ROOT}/platform/android/src/geojson/point.hpp
${MBGL_ROOT}/platform/android/src/geojson/polygon.cpp
${MBGL_ROOT}/platform/android/src/geojson/polygon.hpp
${MBGL_ROOT}/platform/android/src/geojson/util.hpp
${MBGL_ROOT}/platform/android/src/geometry/lat_lng.cpp
${MBGL_ROOT}/platform/android/src/geometry/lat_lng.hpp
${MBGL_ROOT}/platform/android/src/geometry/lat_lng_bounds.cpp
${MBGL_ROOT}/platform/android/src/geometry/lat_lng_bounds.hpp
${MBGL_ROOT}/platform/android/src/geometry/lat_lng_quad.cpp
${MBGL_ROOT}/platform/android/src/geometry/lat_lng_quad.hpp
${MBGL_ROOT}/platform/android/src/geometry/projected_meters.cpp
${MBGL_ROOT}/platform/android/src/geometry/projected_meters.hpp
${MBGL_ROOT}/platform/android/src/gl_functions.cpp
${MBGL_ROOT}/platform/android/src/graphics/pointf.cpp
${MBGL_ROOT}/platform/android/src/graphics/pointf.hpp
${MBGL_ROOT}/platform/android/src/graphics/rectf.cpp
${MBGL_ROOT}/platform/android/src/graphics/rectf.hpp
${MBGL_ROOT}/platform/android/src/gson/json_array.cpp
${MBGL_ROOT}/platform/android/src/gson/json_array.hpp
${MBGL_ROOT}/platform/android/src/gson/json_element.cpp
${MBGL_ROOT}/platform/android/src/gson/json_element.hpp
${MBGL_ROOT}/platform/android/src/gson/json_object.cpp
${MBGL_ROOT}/platform/android/src/gson/json_object.hpp
${MBGL_ROOT}/platform/android/src/gson/json_primitive.cpp
${MBGL_ROOT}/platform/android/src/gson/json_primitive.hpp
${MBGL_ROOT}/platform/android/src/image.cpp
${MBGL_ROOT}/platform/android/src/java/util.cpp
${MBGL_ROOT}/platform/android/src/java/util.hpp
${MBGL_ROOT}/platform/android/src/java_types.cpp
${MBGL_ROOT}/platform/android/src/java_types.hpp
${MBGL_ROOT}/platform/android/src/jni.cpp
${MBGL_ROOT}/platform/android/src/jni.hpp
${MBGL_ROOT}/platform/android/src/jni_native.cpp
${MBGL_ROOT}/platform/android/src/jni_native.hpp
${MBGL_ROOT}/platform/android/src/mapbox.cpp
${MBGL_ROOT}/platform/android/src/mapbox.hpp
${MBGL_ROOT}/platform/android/src/map/camera_position.cpp
${MBGL_ROOT}/platform/android/src/map/camera_position.hpp
${MBGL_ROOT}/platform/android/src/map/image.cpp
${MBGL_ROOT}/platform/android/src/map/image.hpp
${MBGL_ROOT}/platform/android/src/map_renderer.cpp
${MBGL_ROOT}/platform/android/src/map_renderer.hpp
${MBGL_ROOT}/platform/android/src/map_renderer_runnable.cpp
${MBGL_ROOT}/platform/android/src/map_renderer_runnable.hpp
${MBGL_ROOT}/platform/android/src/native_map_view.cpp
${MBGL_ROOT}/platform/android/src/native_map_view.hpp
${MBGL_ROOT}/platform/android/src/offline/offline_manager.cpp
${MBGL_ROOT}/platform/android/src/offline/offline_manager.hpp
${MBGL_ROOT}/platform/android/src/offline/offline_region.cpp
${MBGL_ROOT}/platform/android/src/offline/offline_region.hpp
${MBGL_ROOT}/platform/android/src/offline/offline_region_definition.cpp
${MBGL_ROOT}/platform/android/src/offline/offline_region_definition.hpp
${MBGL_ROOT}/platform/android/src/offline/offline_region_error.cpp
${MBGL_ROOT}/platform/android/src/offline/offline_region_error.hpp
${MBGL_ROOT}/platform/android/src/offline/offline_region_status.cpp
${MBGL_ROOT}/platform/android/src/offline/offline_region_status.hpp
${MBGL_ROOT}/platform/android/src/run_loop.cpp
${MBGL_ROOT}/platform/android/src/run_loop_impl.hpp
${MBGL_ROOT}/platform/android/src/snapshotter/map_snapshot.cpp
${MBGL_ROOT}/platform/android/src/snapshotter/map_snapshot.hpp
${MBGL_ROOT}/platform/android/src/snapshotter/map_snapshotter.cpp
${MBGL_ROOT}/platform/android/src/snapshotter/map_snapshotter.hpp
${MBGL_ROOT}/platform/android/src/string_util.cpp
${MBGL_ROOT}/platform/android/src/style/android_conversion.hpp
${MBGL_ROOT}/platform/android/src/style/conversion/filter.cpp
${MBGL_ROOT}/platform/android/src/style/conversion/filter.hpp
${MBGL_ROOT}/platform/android/src/style/conversion/position.cpp
${MBGL_ROOT}/platform/android/src/style/conversion/position.hpp
${MBGL_ROOT}/platform/android/src/style/conversion/property_expression.hpp
${MBGL_ROOT}/platform/android/src/style/conversion/property_value.hpp
${MBGL_ROOT}/platform/android/src/style/conversion/transition_options.cpp
${MBGL_ROOT}/platform/android/src/style/conversion/transition_options.hpp
${MBGL_ROOT}/platform/android/src/style/conversion/url_or_tileset.cpp
${MBGL_ROOT}/platform/android/src/style/conversion/url_or_tileset.hpp
${MBGL_ROOT}/platform/android/src/style/formatted.cpp
${MBGL_ROOT}/platform/android/src/style/formatted.hpp
${MBGL_ROOT}/platform/android/src/style/formatted_section.cpp
${MBGL_ROOT}/platform/android/src/style/formatted_section.hpp
${MBGL_ROOT}/platform/android/src/style/layers/background_layer.cpp
${MBGL_ROOT}/platform/android/src/style/layers/background_layer.hpp
${MBGL_ROOT}/platform/android/src/style/layers/circle_layer.cpp
${MBGL_ROOT}/platform/android/src/style/layers/circle_layer.hpp
${MBGL_ROOT}/platform/android/src/style/layers/custom_layer.cpp
${MBGL_ROOT}/platform/android/src/style/layers/custom_layer.hpp
${MBGL_ROOT}/platform/android/src/style/layers/fill_extrusion_layer.cpp
${MBGL_ROOT}/platform/android/src/style/layers/fill_extrusion_layer.hpp
${MBGL_ROOT}/platform/android/src/style/layers/fill_layer.cpp
${MBGL_ROOT}/platform/android/src/style/layers/fill_layer.hpp
${MBGL_ROOT}/platform/android/src/style/layers/heatmap_layer.cpp
${MBGL_ROOT}/platform/android/src/style/layers/heatmap_layer.hpp
${MBGL_ROOT}/platform/android/src/style/layers/hillshade_layer.cpp
${MBGL_ROOT}/platform/android/src/style/layers/hillshade_layer.hpp
${MBGL_ROOT}/platform/android/src/style/layers/layer.cpp
${MBGL_ROOT}/platform/android/src/style/layers/layer.hpp
${MBGL_ROOT}/platform/android/src/style/layers/layer_manager.cpp
${MBGL_ROOT}/platform/android/src/style/layers/layer_manager.hpp
${MBGL_ROOT}/platform/android/src/style/layers/line_layer.cpp
${MBGL_ROOT}/platform/android/src/style/layers/line_layer.hpp
${MBGL_ROOT}/platform/android/src/style/layers/raster_layer.cpp
${MBGL_ROOT}/platform/android/src/style/layers/raster_layer.hpp
${MBGL_ROOT}/platform/android/src/style/layers/symbol_layer.cpp
${MBGL_ROOT}/platform/android/src/style/layers/symbol_layer.hpp
${MBGL_ROOT}/platform/android/src/style/light.cpp
${MBGL_ROOT}/platform/android/src/style/light.hpp
${MBGL_ROOT}/platform/android/src/style/position.cpp
${MBGL_ROOT}/platform/android/src/style/position.hpp
${MBGL_ROOT}/platform/android/src/style/sources/custom_geometry_source.cpp
${MBGL_ROOT}/platform/android/src/style/sources/custom_geometry_source.hpp
${MBGL_ROOT}/platform/android/src/style/sources/geojson_source.cpp
${MBGL_ROOT}/platform/android/src/style/sources/geojson_source.hpp
${MBGL_ROOT}/platform/android/src/style/sources/image_source.cpp
${MBGL_ROOT}/platform/android/src/style/sources/image_source.hpp
${MBGL_ROOT}/platform/android/src/style/sources/raster_dem_source.cpp
${MBGL_ROOT}/platform/android/src/style/sources/raster_dem_source.hpp
${MBGL_ROOT}/platform/android/src/style/sources/raster_source.cpp
${MBGL_ROOT}/platform/android/src/style/sources/raster_source.hpp
${MBGL_ROOT}/platform/android/src/style/sources/source.cpp
${MBGL_ROOT}/platform/android/src/style/sources/source.hpp
${MBGL_ROOT}/platform/android/src/style/sources/unknown_source.cpp
${MBGL_ROOT}/platform/android/src/style/sources/unknown_source.hpp
${MBGL_ROOT}/platform/android/src/style/sources/vector_source.cpp
${MBGL_ROOT}/platform/android/src/style/sources/vector_source.hpp
${MBGL_ROOT}/platform/android/src/style/transition_options.cpp
${MBGL_ROOT}/platform/android/src/style/transition_options.hpp
${MBGL_ROOT}/platform/android/src/style/value.cpp
${MBGL_ROOT}/platform/android/src/style/value.hpp
${MBGL_ROOT}/platform/android/src/thread.cpp
${MBGL_ROOT}/platform/android/src/timer.cpp
${MBGL_ROOT}/platform/default/src/mbgl/gfx/headless_backend.cpp
${MBGL_ROOT}/platform/default/src/mbgl/gfx/headless_frontend.cpp
${MBGL_ROOT}/platform/default/src/mbgl/gl/headless_backend.cpp
${MBGL_ROOT}/platform/default/src/mbgl/map/map_snapshotter.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/asset_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/database_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/file_source_manager.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/file_source_request.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/local_file_request.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/local_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/main_resource_loader.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/offline.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/offline_database.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/offline_download.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/online_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/sqlite3.cpp
${MBGL_ROOT}/platform/default/src/mbgl/text/bidi.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/compression.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/monotonic_timer.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/png_writer.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/thread_local.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/utf.cpp
${MBGL_ROOT}/platform/linux/src/headless_backend_egl.cpp
)
target_include_directories(
mbgl-core
PRIVATE ${MBGL_ROOT}/platform/default/include
)
target_link_libraries(
mbgl-core
PRIVATE
EGL
GLESv2
Mapbox::Base::jni.hpp
android
atomic
jnigraphics
log
mbgl-vendor-icu
mbgl-vendor-sqlite
z
)
add_library(
mbgl-core-android STATIC
${MBGL_ROOT}/platform/android/src/file_source.cpp
${MBGL_ROOT}/platform/android/src/file_source.hpp
${MBGL_ROOT}/platform/android/src/http_file_source.cpp
${MBGL_ROOT}/platform/android/src/i18n/collator.cpp
${MBGL_ROOT}/platform/android/src/i18n/collator_jni.hpp
${MBGL_ROOT}/platform/android/src/i18n/number_format.cpp
${MBGL_ROOT}/platform/android/src/i18n/number_format_jni.hpp
${MBGL_ROOT}/platform/android/src/logger.cpp
${MBGL_ROOT}/platform/android/src/logger.hpp
${MBGL_ROOT}/platform/android/src/logging_android.cpp
${MBGL_ROOT}/platform/android/src/text/local_glyph_rasterizer.cpp
${MBGL_ROOT}/platform/android/src/text/local_glyph_rasterizer_jni.hpp
)
target_include_directories(
mbgl-core-android
PRIVATE ${MBGL_ROOT}/platform/default/include ${MBGL_ROOT}/src
)
target_link_libraries(
mbgl-core-android
PRIVATE Mapbox::Base::jni.hpp mbgl-compiler-options mbgl-core
)
add_library(
mapbox-gl SHARED
${MBGL_ROOT}/platform/android/src/main.cpp
)
target_include_directories(
mapbox-gl
PRIVATE ${MBGL_ROOT}/platform/default/include ${MBGL_ROOT}/src
)
target_link_libraries(
mapbox-gl
PRIVATE
Mapbox::Base::jni.hpp
mbgl-compiler-options
mbgl-core
mbgl-core-android
)
add_library(
example-custom-layer MODULE
${MBGL_ROOT}/platform/android/src/example_custom_layer.cpp
)
target_include_directories(
example-custom-layer
PRIVATE ${MBGL_ROOT}/include
)
target_link_libraries(
example-custom-layer
PRIVATE
GLESv2
Mapbox::Base::optional
Mapbox::Base::typewrapper
Mapbox::Base::value
Mapbox::Base::weak
log
mbgl-compiler-options
)
add_library(
mbgl-test-runner SHARED
${ANDROID_NDK}/sources/android/native_app_glue/android_native_app_glue.c
${MBGL_ROOT}/platform/android/src/test/test_runner.cpp
${MBGL_ROOT}/platform/android/src/test/test_runner_common.cpp
${MBGL_ROOT}/platform/default/src/mbgl/text/local_glyph_rasterizer.cpp
${MBGL_ROOT}/platform/android/src/test/collator_test_stub.cpp
${MBGL_ROOT}/platform/android/src/test/number_format_test_stub.cpp
)
target_include_directories(
mbgl-test-runner
PRIVATE ${ANDROID_NDK}/sources/android/native_app_glue ${MBGL_ROOT}/platform/android/src ${MBGL_ROOT}/src
)
target_link_libraries(
mbgl-test-runner
PRIVATE
Mapbox::Base::jni.hpp
mbgl-compiler-options
-Wl,--whole-archive
mbgl-test
-Wl,--no-whole-archive
)
if(ANDROID_NATIVE_API_LEVEL VERSION_LESS 24)
target_sources(
mbgl-test-runner
PRIVATE ${MBGL_ROOT}/platform/android/src/test/http_file_source_test_stub.cpp
)
else()
set(CURL_DIR ${MBGL_ROOT}/vendor/curl-android-ios/prebuilt-with-ssl/android)
set(CURL_LIBRARY ${CURL_DIR}/${ANDROID_ABI}/libcurl.a)
target_sources(
mbgl-test-runner
PRIVATE ${MBGL_ROOT}/platform/default/src/mbgl/storage/http_file_source.cpp
)
target_include_directories(
mbgl-test-runner
PRIVATE ${CURL_DIR}/include
)
target_link_libraries(
mbgl-test-runner
PRIVATE ${CURL_LIBRARY}
)
endif()
add_custom_command(
TARGET mbgl-test-runner PRE_BUILD
COMMAND
${CMAKE_COMMAND}
-E
make_directory
${MBGL_ROOT}/test/results
COMMAND
${CMAKE_COMMAND}
-E
tar
"chf"
"test/android/app/src/main/assets/data.zip"
--format=zip
--files-from=test/android/app/src/main/assets/to_zip.txt
COMMAND
${CMAKE_COMMAND}
-E
remove_directory
${MBGL_ROOT}/test/results
WORKING_DIRECTORY ${MBGL_ROOT}
)
add_library(
mbgl-benchmark-runner SHARED
${ANDROID_NDK}/sources/android/native_app_glue/android_native_app_glue.c
${MBGL_ROOT}/platform/android/src/test/benchmark_runner.cpp
${MBGL_ROOT}/platform/android/src/test/test_runner_common.cpp
${MBGL_ROOT}/platform/default/src/mbgl/text/local_glyph_rasterizer.cpp
${MBGL_ROOT}/platform/android/src/test/collator_test_stub.cpp
${MBGL_ROOT}/platform/android/src/test/number_format_test_stub.cpp
${MBGL_ROOT}/platform/android/src/test/http_file_source_test_stub.cpp
)
target_include_directories(
mbgl-benchmark-runner
PRIVATE ${ANDROID_NDK}/sources/android/native_app_glue ${MBGL_ROOT}/platform/android/src ${MBGL_ROOT}/src
)
target_link_libraries(
mbgl-benchmark-runner
PRIVATE
Mapbox::Base::jni.hpp
mbgl-compiler-options
-Wl,--whole-archive
mbgl-benchmark
-Wl,--no-whole-archive
)
add_custom_command(
TARGET mbgl-benchmark-runner PRE_BUILD
COMMAND
${CMAKE_COMMAND}
-E
make_directory
${MBGL_ROOT}/benchmark/results
COMMAND
${CMAKE_COMMAND}
-E
tar
"chf"
"benchmark/android/app/src/main/assets/data.zip"
--format=zip
--files-from=benchmark/android/app/src/main/assets/to_zip.txt
COMMAND
${CMAKE_COMMAND}
-E
remove_directory
${MBGL_ROOT}/benchmark/results
WORKING_DIRECTORY ${MBGL_ROOT}
)
add_library(
mbgl-render-test-runner SHARED
${ANDROID_NDK}/sources/android/native_app_glue/android_native_app_glue.c
${MBGL_ROOT}/platform/android/src/test/render_test_runner.cpp
${MBGL_ROOT}/platform/android/src/test/test_runner_common.cpp
${MBGL_ROOT}/platform/default/src/mbgl/text/local_glyph_rasterizer.cpp
${MBGL_ROOT}/platform/android/src/test/collator_test_stub.cpp
${MBGL_ROOT}/platform/android/src/test/number_format_test_stub.cpp
${MBGL_ROOT}/platform/android/src/test/http_file_source_test_stub.cpp
)
target_include_directories(
mbgl-render-test-runner
PRIVATE ${ANDROID_NDK}/sources/android/native_app_glue ${MBGL_ROOT}/platform/android/src ${MBGL_ROOT}/src
)
target_link_libraries(
mbgl-render-test-runner
PRIVATE
Mapbox::Base::jni.hpp
android
log
mbgl-compiler-options
mbgl-render-test
)
add_custom_command(
TARGET mbgl-render-test-runner PRE_BUILD
COMMAND
${CMAKE_COMMAND}
-E
tar
"chf"
"render-test/android/app/src/main/assets/data.zip"
--format=zip
--files-from=render-test/android/app/src/main/assets/to_zip.txt
WORKING_DIRECTORY ${MBGL_ROOT}
)
install(TARGETS mapbox-gl LIBRARY DESTINATION lib)

View File

@@ -1,192 +0,0 @@
target_compile_definitions(
mbgl-core
PUBLIC MBGL_USE_GLES2 GLES_SILENCE_DEPRECATION
)
if(NOT DEFINED IOS_DEPLOYMENT_TARGET)
set(IOS_DEPLOYMENT_TARGET "9.0")
endif()
macro(initialize_ios_target target)
set_target_properties(${target} PROPERTIES XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET "${IOS_DEPLOYMENT_TARGET}")
set_target_properties(${target} PROPERTIES XCODE_ATTRIBUTE_ENABLE_BITCODE "YES")
set_target_properties(${target} PROPERTIES XCODE_ATTRIBUTE_BITCODE_GENERATION_MODE bitcode)
set_target_properties(${target} PROPERTIES XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH $<$<CONFIG:Debug>:YES>)
endmacro()
set_target_properties(mbgl-core PROPERTIES XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC YES)
target_sources(
mbgl-core
PRIVATE
${MBGL_ROOT}/platform/darwin/src/async_task.cpp
${MBGL_ROOT}/platform/darwin/src/collator.mm
${MBGL_ROOT}/platform/darwin/src/gl_functions.cpp
${MBGL_ROOT}/platform/darwin/src/headless_backend_eagl.mm
${MBGL_ROOT}/platform/darwin/src/native_apple_interface.m
${MBGL_ROOT}/platform/darwin/src/http_file_source.mm
${MBGL_ROOT}/platform/darwin/src/native_apple_interface.m
${MBGL_ROOT}/platform/darwin/src/image.mm
${MBGL_ROOT}/platform/darwin/src/local_glyph_rasterizer.mm
${MBGL_ROOT}/platform/darwin/src/logging_nslog.mm
${MBGL_ROOT}/platform/darwin/src/nsthread.mm
${MBGL_ROOT}/platform/darwin/src/number_format.mm
${MBGL_ROOT}/platform/darwin/src/reachability.m
${MBGL_ROOT}/platform/darwin/src/run_loop.cpp
${MBGL_ROOT}/platform/darwin/src/string_nsstring.mm
${MBGL_ROOT}/platform/darwin/src/timer.cpp
${MBGL_ROOT}/platform/default/src/mbgl/gfx/headless_backend.cpp
${MBGL_ROOT}/platform/default/src/mbgl/gfx/headless_frontend.cpp
${MBGL_ROOT}/platform/default/src/mbgl/gl/headless_backend.cpp
${MBGL_ROOT}/platform/default/src/mbgl/map/map_snapshotter.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/asset_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/database_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/file_source_manager.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/file_source_request.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/local_file_request.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/local_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/main_resource_loader.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/offline.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/offline_database.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/offline_download.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/online_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/sqlite3.cpp
${MBGL_ROOT}/platform/default/src/mbgl/text/bidi.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/compression.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/monotonic_timer.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/png_writer.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/thread_local.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/utf.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/thread_local.cpp
${MBGL_ROOT}/platform/default/src/mbgl/layermanager/layer_manager.cpp
)
target_include_directories(
mbgl-core
PRIVATE ${MBGL_ROOT}/platform/darwin/include ${MBGL_ROOT}/platform/default/include
)
include(${PROJECT_SOURCE_DIR}/vendor/icu.cmake)
initialize_ios_target(mbgl-core)
initialize_ios_target(mbgl-vendor-icu)
target_link_libraries(
mbgl-core
PRIVATE
"-framework CoreGraphics"
"-framework CoreImage"
"-framework CoreLocation"
"-framework CoreServices"
"-framework CoreText"
"-framework Foundation"
"-framework GLKit"
"-framework ImageIO"
"-framework OpenGLES"
"-framework QuartzCore"
"-framework Security"
"-framework SystemConfiguration"
"-framework UIKit"
"-framework WebKit"
mbgl-vendor-icu
sqlite3
z
)
if(MBGL_IOS_RENDER_TEST)
set(CMAKE_OSX_ARCHITECTURES "armv7;i386;x86_64;arm64")
include(${PROJECT_SOURCE_DIR}/vendor/zip-archive.cmake)
initialize_ios_target(mbgl-vendor-zip-archive)
set(PREPARE_CMD "${MBGL_ROOT}/render-test/ios/setup_test_data.sh")
message("COMMAND: ${PREPARE_CMD}")
execute_process(COMMAND ${PREPARE_CMD} RESULT_VARIABLE CMD_ERROR)
message(STATUS "CMD_ERROR:" ${CMD_ERROR})
set(RESOURCES ${MBGL_ROOT}/render-test/ios/Main.storyboard ${MBGL_ROOT}/render-test/ios/LaunchScreen.storyboard ${MBGL_ROOT}/test-data)
add_executable(
RenderTestApp
${MBGL_ROOT}/render-test/ios/ios_test_runner.hpp
${MBGL_ROOT}/render-test/ios/ios_test_runner.cpp
${MBGL_ROOT}/render-test/ios/AppDelegate.h
${MBGL_ROOT}/render-test/ios/AppDelegate.m
${MBGL_ROOT}/render-test/ios/ViewController.h
${MBGL_ROOT}/render-test/ios/ViewController.m
${MBGL_ROOT}/render-test/ios/iosTestRunner.h
${MBGL_ROOT}/render-test/ios/iosTestRunner.mm
${MBGL_ROOT}/render-test/ios/main.m
${RESOURCES}
)
initialize_ios_target(RenderTestApp)
set_target_properties(
RenderTestApp
PROPERTIES
MACOSX_BUNDLE
TRUE
MACOSX_BUNDLE_IDENTIFIER
com.mapbox.RenderTestAPP
MACOSX_BUNDLE_INFO_PLIST
${MBGL_ROOT}/render-test/ios/Info.plist
RESOURCE
"${RESOURCES}"
)
target_include_directories(
RenderTestApp
PUBLIC {MBGL_ROOT}/render-test/include ${MBGL_ROOT}/include
)
target_include_directories(
RenderTestApp
PRIVATE
${MBGL_ROOT}/platform/darwin/src
${MBGL_ROOT}/platform/darwin/include
${MBGL_ROOT}/platform/darwin/include/mbgl/interface/
${MBGL_ROOT}/platform/default/include
${MBGL_ROOT}/src
)
target_include_directories(
RenderTestApp
PUBLIC ${MBGL_ROOT}/render-test/ios
)
target_link_libraries(
RenderTestApp
PRIVATE
"-framework CoreGraphics"
"-framework CoreLocation"
"-framework Foundation"
"-framework OpenGLES"
"-framework QuartzCore"
"-framework UIKit"
mbgl-render-test
mbgl-vendor-zip-archive
)
find_package(XCTest REQUIRED)
xctest_add_bundle(RenderTestAppTests RenderTestApp ${MBGL_ROOT}/render-test/ios/tests/Tests.m)
set_target_properties(
RenderTestAppTests
PROPERTIES
XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET
"${IOS_DEPLOYMENT_TARGET}"
XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH
$<$<CONFIG:Debug>:YES>
)
target_include_directories(
RenderTestAppTests
PUBLIC ${MBGL_ROOT}/render-test/ios
)
xctest_add_test(XCTest.RenderTestApp RenderTestAppTests)
set_target_properties(RenderTestAppTests PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${MBGL_ROOT}/render-test/ios/tests/Info.plist)
endif()
unset(IOS_DEPLOYMENT_TARGET CACHE)

View File

@@ -1,134 +0,0 @@
find_package(CURL REQUIRED)
find_package(ICU REQUIRED i18n)
find_package(ICU REQUIRED uc)
find_package(JPEG REQUIRED)
find_package(OpenGL REQUIRED GLX)
find_package(PNG REQUIRED)
find_package(PkgConfig REQUIRED)
find_package(X11 REQUIRED)
pkg_search_module(LIBUV libuv REQUIRED)
target_sources(
mbgl-core
PRIVATE
${MBGL_ROOT}/platform/default/src/mbgl/gfx/headless_backend.cpp
${MBGL_ROOT}/platform/default/src/mbgl/gfx/headless_frontend.cpp
${MBGL_ROOT}/platform/default/src/mbgl/gl/headless_backend.cpp
${MBGL_ROOT}/platform/default/src/mbgl/i18n/collator.cpp
${MBGL_ROOT}/platform/default/src/mbgl/i18n/number_format.cpp
${MBGL_ROOT}/platform/default/src/mbgl/layermanager/layer_manager.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/asset_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/database_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/file_source_manager.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/file_source_request.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/http_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/local_file_request.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/local_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/main_resource_loader.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/offline.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/offline_database.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/offline_download.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/online_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/sqlite3.cpp
${MBGL_ROOT}/platform/default/src/mbgl/text/bidi.cpp
${MBGL_ROOT}/platform/default/src/mbgl/text/local_glyph_rasterizer.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/async_task.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/compression.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/image.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/jpeg_reader.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/logging_stderr.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/monotonic_timer.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/png_reader.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/png_writer.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/run_loop.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/string_stdlib.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/thread.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/thread_local.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/timer.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/utf.cpp
${MBGL_ROOT}/platform/linux/src/gl_functions.cpp
${MBGL_ROOT}/platform/linux/src/headless_backend_glx.cpp
)
# FIXME: Should not be needed, but now needed by node because of the headless frontend.
target_include_directories(
mbgl-core
PUBLIC ${MBGL_ROOT}/platform/default/include
PRIVATE
${CURL_INCLUDE_DIRS}
${JPEG_INCLUDE_DIRS}
${LIBUV_INCLUDE_DIRS}
${X11_INCLUDE_DIRS}
)
include(${PROJECT_SOURCE_DIR}/vendor/nunicode.cmake)
include(${PROJECT_SOURCE_DIR}/vendor/sqlite.cmake)
target_link_libraries(
mbgl-core
PRIVATE
${CURL_LIBRARIES}
${JPEG_LIBRARIES}
${LIBUV_LIBRARIES}
${X11_LIBRARIES}
ICU::i18n
ICU::uc
OpenGL::GLX
PNG::PNG
mbgl-vendor-nunicode
mbgl-vendor-sqlite
)
add_subdirectory(${PROJECT_SOURCE_DIR}/bin)
add_subdirectory(${PROJECT_SOURCE_DIR}/expression-test)
add_subdirectory(${PROJECT_SOURCE_DIR}/platform/glfw)
add_subdirectory(${PROJECT_SOURCE_DIR}/platform/node)
add_executable(
mbgl-test-runner
${MBGL_ROOT}/platform/default/src/mbgl/test/main.cpp
)
target_compile_definitions(
mbgl-test-runner
PRIVATE WORK_DIRECTORY=${MBGL_ROOT}
)
target_link_libraries(
mbgl-test-runner
PRIVATE
mbgl-compiler-options
-Wl,--whole-archive
mbgl-test
-Wl,--no-whole-archive
)
add_executable(
mbgl-benchmark-runner
${MBGL_ROOT}/platform/default/src/mbgl/benchmark/main.cpp
)
target_link_libraries(
mbgl-benchmark-runner
PRIVATE
mbgl-compiler-options
-Wl,--whole-archive
mbgl-benchmark
-Wl,--no-whole-archive
)
add_executable(
mbgl-render-test-runner
${MBGL_ROOT}/platform/default/src/mbgl/render-test/main.cpp
)
target_link_libraries(
mbgl-render-test-runner
PRIVATE mbgl-compiler-options mbgl-render-test
)
add_test(NAME mbgl-benchmark-runner COMMAND mbgl-benchmark-runner WORKING_DIRECTORY ${MBGL_ROOT})
add_test(NAME mbgl-test-runner COMMAND mbgl-test-runner WORKING_DIRECTORY ${MBGL_ROOT})
install(TARGETS mbgl-render-test-runner RUNTIME DESTINATION bin)

View File

@@ -1,213 +0,0 @@
find_package(OpenGL REQUIRED)
target_compile_definitions(
mbgl-core
PUBLIC GL_SILENCE_DEPRECATION
)
target_sources(
mbgl-core
PRIVATE
${MBGL_ROOT}/platform/darwin/src/MGLAccountManager.m
${MBGL_ROOT}/platform/darwin/src/MGLAttributedExpression.m
${MBGL_ROOT}/platform/darwin/src/MGLAttributionInfo.mm
${MBGL_ROOT}/platform/darwin/src/MGLBackgroundStyleLayer.mm
${MBGL_ROOT}/platform/darwin/src/MGLCircleStyleLayer.mm
${MBGL_ROOT}/platform/darwin/src/MGLClockDirectionFormatter.m
${MBGL_ROOT}/platform/darwin/src/MGLCompassDirectionFormatter.m
${MBGL_ROOT}/platform/darwin/src/MGLComputedShapeSource.mm
${MBGL_ROOT}/platform/darwin/src/MGLCoordinateFormatter.m
${MBGL_ROOT}/platform/darwin/src/MGLDistanceFormatter.m
${MBGL_ROOT}/platform/darwin/src/MGLFeature.mm
${MBGL_ROOT}/platform/darwin/src/MGLFillExtrusionStyleLayer.mm
${MBGL_ROOT}/platform/darwin/src/MGLFillStyleLayer.mm
${MBGL_ROOT}/platform/darwin/src/MGLForegroundStyleLayer.mm
${MBGL_ROOT}/platform/darwin/src/MGLFoundation.mm
${MBGL_ROOT}/platform/darwin/src/MGLGeometry.mm
${MBGL_ROOT}/platform/darwin/src/MGLHeatmapStyleLayer.mm
${MBGL_ROOT}/platform/darwin/src/MGLHillshadeStyleLayer.mm
${MBGL_ROOT}/platform/darwin/src/MGLImageSource.mm
${MBGL_ROOT}/platform/darwin/src/MGLLight.mm
${MBGL_ROOT}/platform/darwin/src/MGLLineStyleLayer.mm
${MBGL_ROOT}/platform/darwin/src/MGLLoggingConfiguration.mm
${MBGL_ROOT}/platform/darwin/src/MGLMapCamera.mm
${MBGL_ROOT}/platform/darwin/src/MGLMapSnapshotter.mm
${MBGL_ROOT}/platform/darwin/src/MGLMultiPoint.mm
${MBGL_ROOT}/platform/darwin/src/MGLNetworkConfiguration.m
${MBGL_ROOT}/platform/darwin/src/MGLOfflinePack.mm
${MBGL_ROOT}/platform/darwin/src/MGLOfflineStorage.mm
${MBGL_ROOT}/platform/darwin/src/MGLOpenGLStyleLayer.mm
${MBGL_ROOT}/platform/darwin/src/MGLPointAnnotation.mm
${MBGL_ROOT}/platform/darwin/src/MGLPointCollection.mm
${MBGL_ROOT}/platform/darwin/src/MGLPolygon.mm
${MBGL_ROOT}/platform/darwin/src/MGLPolyline.mm
${MBGL_ROOT}/platform/darwin/src/MGLRasterDEMSource.mm
${MBGL_ROOT}/platform/darwin/src/MGLRasterStyleLayer.mm
${MBGL_ROOT}/platform/darwin/src/MGLRasterTileSource.mm
${MBGL_ROOT}/platform/darwin/src/MGLRendererConfiguration.mm
${MBGL_ROOT}/platform/darwin/src/MGLSDKMetricsManager.m
${MBGL_ROOT}/platform/darwin/src/MGLShape.mm
${MBGL_ROOT}/platform/darwin/src/MGLShapeCollection.mm
${MBGL_ROOT}/platform/darwin/src/MGLShapeOfflineRegion.mm
${MBGL_ROOT}/platform/darwin/src/MGLShapeSource.mm
${MBGL_ROOT}/platform/darwin/src/MGLSource.mm
${MBGL_ROOT}/platform/darwin/src/MGLStyle.mm
${MBGL_ROOT}/platform/darwin/src/MGLStyleLayer.mm
${MBGL_ROOT}/platform/darwin/src/MGLStyleLayerManager.mm
${MBGL_ROOT}/platform/darwin/src/MGLStyleValue.mm
${MBGL_ROOT}/platform/darwin/src/MGLSymbolStyleLayer.mm
${MBGL_ROOT}/platform/darwin/src/MGLTilePyramidOfflineRegion.mm
${MBGL_ROOT}/platform/darwin/src/MGLTileSource.mm
${MBGL_ROOT}/platform/darwin/src/MGLTypes.m
${MBGL_ROOT}/platform/darwin/src/MGLVectorStyleLayer.mm
${MBGL_ROOT}/platform/darwin/src/MGLVectorTileSource.mm
${MBGL_ROOT}/platform/darwin/src/NSArray+MGLAdditions.mm
${MBGL_ROOT}/platform/darwin/src/NSBundle+MGLAdditions.m
${MBGL_ROOT}/platform/darwin/src/NSCoder+MGLAdditions.mm
${MBGL_ROOT}/platform/darwin/src/NSComparisonPredicate+MGLAdditions.mm
${MBGL_ROOT}/platform/darwin/src/NSCompoundPredicate+MGLAdditions.mm
${MBGL_ROOT}/platform/darwin/src/NSDate+MGLAdditions.mm
${MBGL_ROOT}/platform/darwin/src/NSDictionary+MGLAdditions.mm
${MBGL_ROOT}/platform/darwin/src/NSExpression+MGLAdditions.mm
${MBGL_ROOT}/platform/darwin/src/NSPredicate+MGLAdditions.mm
${MBGL_ROOT}/platform/darwin/src/NSString+MGLAdditions.m
${MBGL_ROOT}/platform/darwin/src/NSURL+MGLAdditions.m
${MBGL_ROOT}/platform/darwin/src/NSValue+MGLAdditions.m
${MBGL_ROOT}/platform/darwin/src/NSValue+MGLStyleAttributeAdditions.mm
${MBGL_ROOT}/platform/darwin/src/async_task.cpp
${MBGL_ROOT}/platform/darwin/src/collator.mm
${MBGL_ROOT}/platform/darwin/src/gl_functions.cpp
${MBGL_ROOT}/platform/darwin/src/headless_backend_cgl.mm
${MBGL_ROOT}/platform/darwin/src/http_file_source.mm
${MBGL_ROOT}/platform/darwin/src/image.mm
${MBGL_ROOT}/platform/darwin/src/local_glyph_rasterizer.mm
${MBGL_ROOT}/platform/darwin/src/logging_nslog.mm
${MBGL_ROOT}/platform/darwin/src/nsthread.mm
${MBGL_ROOT}/platform/darwin/src/number_format.mm
${MBGL_ROOT}/platform/darwin/src/reachability.m
${MBGL_ROOT}/platform/darwin/src/run_loop.cpp
${MBGL_ROOT}/platform/darwin/src/string_nsstring.mm
${MBGL_ROOT}/platform/darwin/src/timer.cpp
${MBGL_ROOT}/platform/darwin/src/native_apple_interface.m
${MBGL_ROOT}/platform/darwin/src/MGLNetworkIntegrationManager.m
${MBGL_ROOT}/platform/default/src/mbgl/gfx/headless_backend.cpp
${MBGL_ROOT}/platform/default/src/mbgl/gfx/headless_frontend.cpp
${MBGL_ROOT}/platform/default/src/mbgl/gl/headless_backend.cpp
${MBGL_ROOT}/platform/default/src/mbgl/map/map_snapshotter.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/asset_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/database_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/file_source_manager.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/file_source_request.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/local_file_request.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/local_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/main_resource_loader.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/offline.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/offline_database.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/offline_download.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/online_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/sqlite3.cpp
${MBGL_ROOT}/platform/default/src/mbgl/text/bidi.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/compression.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/monotonic_timer.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/png_writer.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/thread_local.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/utf.cpp
${MBGL_ROOT}/platform/macos/src/MGLAnnotationImage.m
${MBGL_ROOT}/platform/macos/src/MGLAttributionButton.mm
${MBGL_ROOT}/platform/macos/src/MGLCompassCell.m
${MBGL_ROOT}/platform/macos/src/MGLMapView+IBAdditions.mm
${MBGL_ROOT}/platform/macos/src/MGLMapView+Impl.mm
${MBGL_ROOT}/platform/macos/src/MGLMapView+OpenGL.mm
${MBGL_ROOT}/platform/macos/src/MGLMapView.mm
${MBGL_ROOT}/platform/macos/src/MGLOpenGLLayer.mm
${MBGL_ROOT}/platform/macos/src/NSColor+MGLAdditions.mm
${MBGL_ROOT}/platform/macos/src/NSImage+MGLAdditions.mm
${MBGL_ROOT}/platform/macos/src/NSProcessInfo+MGLAdditions.m
)
set_target_properties(mbgl-core PROPERTIES XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC YES)
target_compile_options(mbgl-core PRIVATE -fobjc-arc)
# FIXME: Should not be needed, but now needed by node because of the headless frontend.
target_include_directories(
mbgl-core
PUBLIC ${MBGL_ROOT}/platform/default/include
)
target_include_directories(
mbgl-core
PRIVATE ${MBGL_ROOT}/platform/darwin/include ${MBGL_ROOT}/platform/darwin/src ${MBGL_ROOT}/platform/macos/src
)
include(${PROJECT_SOURCE_DIR}/vendor/icu.cmake)
target_link_libraries(
mbgl-core
PRIVATE
"-framework AppKit"
"-framework CoreGraphics"
"-framework CoreLocation"
"-framework SystemConfiguration"
OpenGL::GL
mbgl-vendor-icu
sqlite3
z
)
add_subdirectory(${PROJECT_SOURCE_DIR}/bin)
add_subdirectory(${PROJECT_SOURCE_DIR}/expression-test)
add_subdirectory(${PROJECT_SOURCE_DIR}/platform/glfw)
add_subdirectory(${PROJECT_SOURCE_DIR}/platform/node)
add_executable(
mbgl-test-runner
${MBGL_ROOT}/platform/default/src/mbgl/test/main.cpp
)
target_include_directories(
mbgl-test-runner
PUBLIC ${MBGL_ROOT}/include ${MBGL_ROOT}/test/include
)
target_compile_definitions(
mbgl-test-runner
PRIVATE WORK_DIRECTORY=${MBGL_ROOT}
)
target_link_libraries(
mbgl-test-runner
PRIVATE mbgl-compiler-options -Wl,-force_load mbgl-test
)
add_executable(
mbgl-benchmark-runner
${MBGL_ROOT}/platform/default/src/mbgl/benchmark/main.cpp
)
target_include_directories(
mbgl-benchmark-runner
PUBLIC ${MBGL_ROOT}/benchmark/include
)
target_link_libraries(
mbgl-benchmark-runner
PRIVATE mbgl-compiler-options -Wl,-force_load mbgl-benchmark
)
add_executable(
mbgl-render-test-runner
${MBGL_ROOT}/platform/default/src/mbgl/render-test/main.cpp
)
target_link_libraries(
mbgl-render-test-runner
PRIVATE mbgl-compiler-options mbgl-render-test
)
set_property(TARGET mbgl-benchmark-runner PROPERTY FOLDER Executables)
set_property(TARGET mbgl-test-runner PROPERTY FOLDER Executables)
set_property(TARGET mbgl-render-test-runner PROPERTY FOLDER Executables)
add_test(NAME mbgl-benchmark-runner COMMAND mbgl-benchmark-runner WORKING_DIRECTORY ${MBGL_ROOT})
add_test(NAME mbgl-test-runner COMMAND mbgl-test-runner WORKING_DIRECTORY ${MBGL_ROOT})

View File

@@ -1,52 +0,0 @@
if(NOT EXISTS ${MBGL_ROOT}/node_modules/@mapbox/cmake-node-module/module.cmake)
message("-- Not building node bindings, dependencies not found. Run 'npm update'.")
return()
endif()
set(NODE_MODULE_CACHE_DIR ${CMAKE_SOURCE_DIR}/build/headers)
include(${MBGL_ROOT}/node_modules/@mapbox/cmake-node-module/module.cmake)
add_node_module(
mbgl-node
INSTALL_PATH ${MBGL_ROOT}/lib/{node_abi}/mbgl.node
NAN_VERSION 2.10.0
EXCLUDE_NODE_ABIS
46
47
48
51
59
67
72
79
)
target_sources(
mbgl-node
INTERFACE
${MBGL_ROOT}/platform/node/src/node_conversion.hpp
${MBGL_ROOT}/platform/node/src/node_expression.cpp
${MBGL_ROOT}/platform/node/src/node_expression.hpp
${MBGL_ROOT}/platform/node/src/node_feature.cpp
${MBGL_ROOT}/platform/node/src/node_feature.hpp
${MBGL_ROOT}/platform/node/src/node_logging.cpp
${MBGL_ROOT}/platform/node/src/node_logging.hpp
${MBGL_ROOT}/platform/node/src/node_map.cpp
${MBGL_ROOT}/platform/node/src/node_map.hpp
${MBGL_ROOT}/platform/node/src/node_mapbox_gl_native.cpp
${MBGL_ROOT}/platform/node/src/node_request.cpp
${MBGL_ROOT}/platform/node/src/node_request.hpp
${MBGL_ROOT}/platform/node/src/util/async_queue.hpp
)
target_link_libraries(
mbgl-node
INTERFACE Mapbox::Map
)
# FIXME: Node bindings only run fully on Linux now because it requires libuv RunLoop (which is the default on Linux). Also, Sanitizer will
# not work here because node will do a dlopen(), which is not currently supported.
if(CMAKE_SYSTEM_NAME STREQUAL Linux AND NOT MBGL_WITH_SANITIZER)
add_test(NAME mbgl-node-memory COMMAND npm run test-memory WORKING_DIRECTORY ${MBGL_ROOT})
add_test(NAME mbgl-node-test COMMAND npm run test WORKING_DIRECTORY ${MBGL_ROOT})
endif()

View File

@@ -1,214 +0,0 @@
# Note: Using Sqlite instead of QSqlDatabase for better compatibility.
find_package(Qt5Gui REQUIRED)
find_package(Qt5Network REQUIRED)
find_package(Qt5OpenGL REQUIRED)
find_package(Qt5Widgets REQUIRED)
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
add_definitions("-DQT_COMPILING_QIMAGE_COMPAT_CPP")
add_definitions("-D_USE_MATH_DEFINES")
add_definitions("-Wno-deprecated-declarations")
add_definitions("-Wno-inconsistent-missing-override")
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")
endif()
target_sources(
mbgl-core
PRIVATE
${MBGL_ROOT}/platform/$<IF:$<PLATFORM_ID:Windows>,qt/src/bidi.cpp,default/src/mbgl/text/bidi.cpp>
${MBGL_ROOT}/platform/default/include/mbgl/gfx/headless_backend.hpp
${MBGL_ROOT}/platform/default/include/mbgl/gfx/headless_frontend.hpp
${MBGL_ROOT}/platform/default/include/mbgl/gl/headless_backend.hpp
${MBGL_ROOT}/platform/default/src/mbgl/gfx/headless_backend.cpp
${MBGL_ROOT}/platform/default/src/mbgl/gfx/headless_frontend.cpp
${MBGL_ROOT}/platform/default/src/mbgl/gl/headless_backend.cpp
${MBGL_ROOT}/platform/default/src/mbgl/i18n/collator.cpp
${MBGL_ROOT}/platform/default/src/mbgl/layermanager/layer_manager.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/asset_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/database_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/file_source_manager.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/file_source_request.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/local_file_request.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/local_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/main_resource_loader.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/offline.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/offline_database.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/offline_download.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/online_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/sqlite3.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/compression.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/monotonic_timer.cpp
${MBGL_ROOT}/platform/qt/src/async_task.cpp
${MBGL_ROOT}/platform/qt/src/async_task_impl.hpp
${MBGL_ROOT}/platform/qt/src/number_format.cpp
${MBGL_ROOT}/platform/qt/src/gl_functions.cpp
${MBGL_ROOT}/platform/qt/src/headless_backend_qt.cpp
${MBGL_ROOT}/platform/qt/src/http_file_source.cpp
${MBGL_ROOT}/platform/qt/src/http_file_source.hpp
${MBGL_ROOT}/platform/qt/src/http_request.cpp
${MBGL_ROOT}/platform/qt/src/http_request.hpp
${MBGL_ROOT}/platform/qt/src/local_glyph_rasterizer.cpp
${MBGL_ROOT}/platform/qt/src/qt_image.cpp
${MBGL_ROOT}/platform/qt/src/qt_logging.cpp
${MBGL_ROOT}/platform/qt/src/run_loop.cpp
${MBGL_ROOT}/platform/qt/src/run_loop_impl.hpp
${MBGL_ROOT}/platform/qt/src/string_stdlib.cpp
${MBGL_ROOT}/platform/qt/src/thread.cpp
${MBGL_ROOT}/platform/qt/src/thread_local.cpp
${MBGL_ROOT}/platform/qt/src/timer.cpp
${MBGL_ROOT}/platform/qt/src/timer_impl.hpp
${MBGL_ROOT}/platform/qt/src/utf.cpp
)
target_compile_definitions(
mbgl-core
PRIVATE QT_IMAGE_DECODERS
PUBLIC __QT__ MBGL_USE_GLES2
)
target_include_directories(
mbgl-core
PRIVATE ${MBGL_ROOT}/platform/default/include
)
include(${PROJECT_SOURCE_DIR}/vendor/icu.cmake)
include(${PROJECT_SOURCE_DIR}/vendor/nunicode.cmake)
include(${PROJECT_SOURCE_DIR}/vendor/sqlite.cmake)
target_link_libraries(
mbgl-core
PRIVATE
$<$<NOT:$<PLATFORM_ID:Windows>>:z>
$<$<NOT:$<PLATFORM_ID:Windows>>:mbgl-vendor-icu>
Qt5::Core
Qt5::Gui
Qt5::Network
Qt5::OpenGL
mbgl-vendor-nunicode
mbgl-vendor-sqlite
)
add_library(
qmapboxgl SHARED
${MBGL_ROOT}/platform/qt/include/qmapbox.hpp
${MBGL_ROOT}/platform/qt/include/qmapboxgl.hpp
${MBGL_ROOT}/platform/qt/src/qmapbox.cpp
${MBGL_ROOT}/platform/qt/src/qmapboxgl.cpp
${MBGL_ROOT}/platform/qt/src/qmapboxgl_map_observer.cpp
${MBGL_ROOT}/platform/qt/src/qmapboxgl_map_observer.hpp
${MBGL_ROOT}/platform/qt/src/qmapboxgl_map_renderer.cpp
${MBGL_ROOT}/platform/qt/src/qmapboxgl_map_renderer.hpp
${MBGL_ROOT}/platform/qt/src/qmapboxgl_p.hpp
${MBGL_ROOT}/platform/qt/src/qmapboxgl_renderer_backend.cpp
${MBGL_ROOT}/platform/qt/src/qmapboxgl_renderer_backend.hpp
${MBGL_ROOT}/platform/qt/src/qmapboxgl_scheduler.cpp
${MBGL_ROOT}/platform/qt/src/qmapboxgl_scheduler.hpp
${MBGL_ROOT}/platform/qt/src/qt_conversion.hpp
${MBGL_ROOT}/platform/qt/src/qt_geojson.cpp
${MBGL_ROOT}/platform/qt/src/qt_geojson.hpp
)
# FIXME: Because of rapidjson conversion
target_include_directories(
qmapboxgl
PRIVATE ${MBGL_ROOT}/src
)
target_include_directories(
qmapboxgl
PUBLIC ${MBGL_ROOT}/platform/qt/include
)
target_compile_definitions(
qmapboxgl
PRIVATE QT_BUILD_MAPBOXGL_LIB
)
target_link_libraries(
qmapboxgl
PRIVATE
Qt5::Core
Qt5::Gui
mbgl-compiler-options
mbgl-core
)
add_executable(
mbgl-qt
${MBGL_ROOT}/platform/qt/app/main.cpp
${MBGL_ROOT}/platform/qt/app/mapwindow.cpp
${MBGL_ROOT}/platform/qt/app/mapwindow.hpp
${MBGL_ROOT}/platform/qt/resources/common.qrc
)
# Qt public API should keep compatibility with old compilers for legacy systems
set_property(TARGET mbgl-qt PROPERTY CXX_STANDARD 98)
target_link_libraries(
mbgl-qt
PRIVATE
Qt5::Widgets
Qt5::Gui
mbgl-compiler-options
qmapboxgl
)
add_executable(
mbgl-test-runner
${MBGL_ROOT}/platform/qt/test/main.cpp
)
target_include_directories(
mbgl-test-runner
PUBLIC ${MBGL_ROOT}/include ${MBGL_ROOT}/test/include
)
target_compile_definitions(
mbgl-test-runner
PRIVATE WORK_DIRECTORY=${MBGL_ROOT}
)
target_link_libraries(
mbgl-test-runner
PRIVATE
Qt5::Gui
Qt5::OpenGL
mbgl-compiler-options
pthread
)
if(CMAKE_SYSTEM_NAME STREQUAL Darwin)
target_link_libraries(
mbgl-test-runner
PRIVATE -Wl,-force_load mbgl-test
)
else()
target_link_libraries(
mbgl-test-runner
PRIVATE -Wl,--whole-archive mbgl-test -Wl,--no-whole-archive
)
endif()
find_program(MBGL_QDOC NAMES qdoc)
if(MBGL_QDOC)
add_custom_target(mbgl-qt-docs)
add_custom_command(
TARGET mbgl-qt-docs PRE_BUILD
COMMAND
${MBGL_QDOC}
${MBGL_ROOT}/platform/qt/config.qdocconf
-outputdir
${CMAKE_BINARY_DIR}/docs
)
endif()
add_test(NAME mbgl-test-runner COMMAND mbgl-test-runner WORKING_DIRECTORY ${MBGL_ROOT})

View File

@@ -1,52 +0,0 @@
add_library(
mbgl-render-test STATIC EXCLUDE_FROM_ALL
${MBGL_ROOT}/expression-test/test_runner_common.cpp
${MBGL_ROOT}/expression-test/test_runner_common.hpp
${MBGL_ROOT}/render-test/allocation_index.cpp
${MBGL_ROOT}/render-test/allocation_index.hpp
${MBGL_ROOT}/render-test/file_source.cpp
${MBGL_ROOT}/render-test/file_source.hpp
${MBGL_ROOT}/render-test/filesystem.hpp
${MBGL_ROOT}/render-test/include/mbgl/render_test.hpp
${MBGL_ROOT}/render-test/manifest_parser.cpp
${MBGL_ROOT}/render-test/manifest_parser.hpp
${MBGL_ROOT}/render-test/metadata.hpp
${MBGL_ROOT}/render-test/parser.cpp
${MBGL_ROOT}/render-test/parser.hpp
${MBGL_ROOT}/render-test/render_test.cpp
${MBGL_ROOT}/render-test/runner.cpp
${MBGL_ROOT}/render-test/runner.hpp
)
if(CMAKE_SYSTEM_NAME STREQUAL iOS)
set_target_properties(mbgl-render-test PROPERTIES XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET "${IOS_DEPLOYMENT_TARGET}")
set_target_properties(mbgl-render-test PROPERTIES XCODE_ATTRIBUTE_ENABLE_BITCODE "YES")
set_target_properties(mbgl-render-test PROPERTIES XCODE_ATTRIBUTE_BITCODE_GENERATION_MODE bitcode)
set_target_properties(mbgl-render-test PROPERTIES XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH $<$<CONFIG:Debug>:YES>)
endif()
# FIXME: Should not use core private interface
target_include_directories(
mbgl-render-test
PRIVATE ${MBGL_ROOT}/src ${MBGL_ROOT}/platform/default/include
)
target_include_directories(
mbgl-render-test
PUBLIC ${MBGL_ROOT}/render-test/include ${MBGL_ROOT}/include
)
include(${PROJECT_SOURCE_DIR}/vendor/boost.cmake)
target_link_libraries(
mbgl-render-test
PRIVATE
Mapbox::Base::Extras::args
Mapbox::Base::Extras::filesystem
Mapbox::Base::pixelmatch-cpp
mbgl-compiler-options
mbgl-vendor-boost
PUBLIC mbgl-core
)
set_property(TARGET mbgl-render-test PROPERTY FOLDER Core)

View File

@@ -1,188 +0,0 @@
add_library(
mbgl-test STATIC EXCLUDE_FROM_ALL
${MBGL_ROOT}/test/actor/actor.test.cpp
${MBGL_ROOT}/test/actor/actor_ref.test.cpp
${MBGL_ROOT}/test/algorithm/update_renderables.test.cpp
${MBGL_ROOT}/test/algorithm/update_tile_masks.test.cpp
${MBGL_ROOT}/test/api/annotations.test.cpp
${MBGL_ROOT}/test/api/api_misuse.test.cpp
${MBGL_ROOT}/test/api/custom_geometry_source.test.cpp
${MBGL_ROOT}/test/api/custom_layer.test.cpp
${MBGL_ROOT}/test/api/query.test.cpp
${MBGL_ROOT}/test/api/recycle_map.cpp
${MBGL_ROOT}/test/geometry/dem_data.test.cpp
${MBGL_ROOT}/test/geometry/line_atlas.test.cpp
${MBGL_ROOT}/test/gl/bucket.test.cpp
${MBGL_ROOT}/test/gl/context.test.cpp
${MBGL_ROOT}/test/gl/gl_functions.test.cpp
${MBGL_ROOT}/test/gl/object.test.cpp
${MBGL_ROOT}/test/map/map.test.cpp
${MBGL_ROOT}/test/map/prefetch.test.cpp
${MBGL_ROOT}/test/map/transform.test.cpp
${MBGL_ROOT}/test/math/clamp.test.cpp
${MBGL_ROOT}/test/math/minmax.test.cpp
${MBGL_ROOT}/test/math/wrap.test.cpp
${MBGL_ROOT}/test/platform/settings.test.cpp
${MBGL_ROOT}/test/programs/symbol_program.test.cpp
${MBGL_ROOT}/test/renderer/backend_scope.test.cpp
${MBGL_ROOT}/test/renderer/image_manager.test.cpp
${MBGL_ROOT}/test/renderer/pattern_atlas.test.cpp
${MBGL_ROOT}/test/sprite/sprite_loader.test.cpp
${MBGL_ROOT}/test/sprite/sprite_parser.test.cpp
${MBGL_ROOT}/test/src/mbgl/test/fixture_log_observer.cpp
${MBGL_ROOT}/test/src/mbgl/test/getrss.cpp
${MBGL_ROOT}/test/src/mbgl/test/sqlite3_test_fs.cpp
${MBGL_ROOT}/test/src/mbgl/test/stub_file_source.cpp
${MBGL_ROOT}/test/src/mbgl/test/test.cpp
${MBGL_ROOT}/test/src/mbgl/test/util.cpp
${MBGL_ROOT}/test/storage/asset_file_source.test.cpp
${MBGL_ROOT}/test/storage/database_file_source.test.cpp
${MBGL_ROOT}/test/storage/headers.test.cpp
${MBGL_ROOT}/test/storage/http_file_source.test.cpp
${MBGL_ROOT}/test/storage/local_file_source.test.cpp
${MBGL_ROOT}/test/storage/main_resource_loader.test.cpp
${MBGL_ROOT}/test/storage/offline.test.cpp
${MBGL_ROOT}/test/storage/offline_database.test.cpp
${MBGL_ROOT}/test/storage/offline_download.test.cpp
${MBGL_ROOT}/test/storage/online_file_source.test.cpp
${MBGL_ROOT}/test/storage/resource.test.cpp
${MBGL_ROOT}/test/storage/sqlite.test.cpp
${MBGL_ROOT}/test/style/conversion/conversion_impl.test.cpp
${MBGL_ROOT}/test/style/conversion/function.test.cpp
${MBGL_ROOT}/test/style/conversion/geojson_options.test.cpp
${MBGL_ROOT}/test/style/conversion/layer.test.cpp
${MBGL_ROOT}/test/style/conversion/light.test.cpp
${MBGL_ROOT}/test/style/conversion/property_value.test.cpp
${MBGL_ROOT}/test/style/conversion/stringify.test.cpp
${MBGL_ROOT}/test/style/conversion/tileset.test.cpp
${MBGL_ROOT}/test/style/expression/expression.test.cpp
${MBGL_ROOT}/test/style/expression/util.test.cpp
${MBGL_ROOT}/test/style/filter.test.cpp
${MBGL_ROOT}/test/style/properties.test.cpp
${MBGL_ROOT}/test/style/property_expression.test.cpp
${MBGL_ROOT}/test/style/source.test.cpp
${MBGL_ROOT}/test/style/style.test.cpp
${MBGL_ROOT}/test/style/style_image.test.cpp
${MBGL_ROOT}/test/style/style_layer.test.cpp
${MBGL_ROOT}/test/style/style_parser.test.cpp
${MBGL_ROOT}/test/text/bidi.test.cpp
${MBGL_ROOT}/test/text/calculate_tile_distances.test.cpp
${MBGL_ROOT}/test/text/cross_tile_symbol_index.test.cpp
${MBGL_ROOT}/test/text/formatted.test.cpp
${MBGL_ROOT}/test/text/get_anchors.test.cpp
${MBGL_ROOT}/test/text/glyph_manager.test.cpp
${MBGL_ROOT}/test/text/glyph_pbf.test.cpp
${MBGL_ROOT}/test/text/language_tag.test.cpp
${MBGL_ROOT}/test/text/local_glyph_rasterizer.test.cpp
${MBGL_ROOT}/test/text/quads.test.cpp
${MBGL_ROOT}/test/text/shaping.test.cpp
${MBGL_ROOT}/test/text/tagged_string.test.cpp
${MBGL_ROOT}/test/tile/custom_geometry_tile.test.cpp
${MBGL_ROOT}/test/tile/geojson_tile.test.cpp
${MBGL_ROOT}/test/tile/geometry_tile_data.test.cpp
${MBGL_ROOT}/test/tile/raster_dem_tile.test.cpp
${MBGL_ROOT}/test/tile/raster_tile.test.cpp
${MBGL_ROOT}/test/tile/tile_cache.test.cpp
${MBGL_ROOT}/test/tile/tile_coordinate.test.cpp
${MBGL_ROOT}/test/tile/tile_id.test.cpp
${MBGL_ROOT}/test/tile/vector_tile.test.cpp
${MBGL_ROOT}/test/util/async_task.test.cpp
${MBGL_ROOT}/test/util/dtoa.test.cpp
${MBGL_ROOT}/test/util/geo.test.cpp
${MBGL_ROOT}/test/util/grid_index.test.cpp
${MBGL_ROOT}/test/util/http_timeout.test.cpp
${MBGL_ROOT}/test/util/image.test.cpp
${MBGL_ROOT}/test/util/mapbox.test.cpp
${MBGL_ROOT}/test/util/memory.test.cpp
${MBGL_ROOT}/test/util/merge_lines.test.cpp
${MBGL_ROOT}/test/util/number_conversions.test.cpp
${MBGL_ROOT}/test/util/offscreen_texture.test.cpp
${MBGL_ROOT}/test/util/position.test.cpp
${MBGL_ROOT}/test/util/projection.test.cpp
${MBGL_ROOT}/test/util/run_loop.test.cpp
${MBGL_ROOT}/test/util/string.test.cpp
${MBGL_ROOT}/test/util/text_conversions.test.cpp
${MBGL_ROOT}/test/util/thread.test.cpp
${MBGL_ROOT}/test/util/thread_local.test.cpp
${MBGL_ROOT}/test/util/tile_cover.test.cpp
${MBGL_ROOT}/test/util/tile_range.test.cpp
${MBGL_ROOT}/test/util/timer.test.cpp
${MBGL_ROOT}/test/util/token.test.cpp
${MBGL_ROOT}/test/util/url.test.cpp
)
if(MBGL_WITH_OPENGL)
target_compile_definitions(
mbgl-test
PRIVATE MBGL_RENDER_BACKEND_OPENGL=1
)
endif()
if(WIN32 OR CMAKE_SYSTEM_NAME STREQUAL Android AND ANDROID_NATIVE_API_LEVEL VERSION_LESS 24)
message("Target platform does not support HTTP tests or dependencies not found.")
set(MBGL_TEST_HAS_TEST_SERVER 0)
else()
set(MBGL_TEST_HAS_TEST_SERVER 1)
target_sources(
mbgl-test
PRIVATE ${MBGL_ROOT}/test/src/mbgl/test/http_server.cpp
)
set_source_files_properties(
${MBGL_ROOT}/test/src/mbgl/test/http_server.cpp
PROPERTIES
COMPILE_FLAGS
-Wno-shadow
)
target_include_directories(
mbgl-test
PRIVATE ${MBGL_ROOT}/vendor/cpp-httplib
)
endif()
if(NOT DEFINED ENV{CI})
set(MBGL_TEST_BUILD_ON_CI 0)
else()
set(MBGL_TEST_BUILD_ON_CI 1)
endif()
target_compile_definitions(
mbgl-test
PRIVATE TEST_HAS_SERVER=${MBGL_TEST_HAS_TEST_SERVER} CI_BUILD=${MBGL_TEST_BUILD_ON_CI}
)
target_include_directories(
mbgl-test
PRIVATE
${MBGL_ROOT}/platform/default/include
${MBGL_ROOT}/platform/gfx/gl/src
${MBGL_ROOT}/src
${MBGL_ROOT}/test/src
)
target_include_directories(
mbgl-test
PUBLIC ${MBGL_ROOT}/include ${MBGL_ROOT}/test/include
)
include(${PROJECT_SOURCE_DIR}/vendor/googletest.cmake)
# Needed for testing private classes
get_target_property(MBGL_CORE_PRIVATE_LIBRARIES mbgl-core LINK_LIBRARIES)
target_link_libraries(
mbgl-test
PRIVATE
${MBGL_CORE_PRIVATE_LIBRARIES}
Mapbox::Base::Extras::args
Mapbox::Base::pixelmatch-cpp
mbgl-compiler-options
PUBLIC mbgl-core
)
target_link_libraries(
mbgl-test
PUBLIC mbgl-vendor-googletest
)
set_property(TARGET mbgl-test PROPERTY FOLDER Core)

View File

@@ -1 +0,0 @@
../vendor/

View File

@@ -0,0 +1,483 @@
if(NOT ANDROID_NDK_TOOLCHAIN_INCLUDED)
message(FATAL_ERROR "-- Toolchain file not included, see https://developer.android.com/ndk/guides/cmake")
endif()
target_compile_definitions(
mbgl-core
PUBLIC MBGL_USE_GLES2
)
include(${PROJECT_SOURCE_DIR}/vendor/icu.cmake)
include(${PROJECT_SOURCE_DIR}/vendor/sqlite.cmake)
target_compile_options(mbgl-vendor-icu PRIVATE $<$<CONFIG:Release>:-Oz> $<$<CONFIG:Release>:-Qunused-arguments> $<$<CONFIG:Release>:-flto>)
target_compile_options(
mbgl-vendor-sqlite
PRIVATE $<$<CONFIG:Release>:-Oz> $<$<CONFIG:Release>:-Qunused-arguments> $<$<CONFIG:Release>:-flto>
)
target_compile_options(
mbgl-compiler-options
INTERFACE $<$<CONFIG:Release>:-Oz> $<$<CONFIG:Release>:-Qunused-arguments> $<$<CONFIG:Release>:-flto>
)
target_link_libraries(
mbgl-compiler-options
INTERFACE
$<$<CONFIG:Release>:-O2>
$<$<CONFIG:Release>:-Wl,--icf=all>
$<$<CONFIG:Release>:-flto>
$<$<CONFIG:Release>:-fuse-ld=gold>
)
target_sources(
mbgl-core
PRIVATE
${PROJECT_SOURCE_DIR}/platform/android/src/android_renderer_backend.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/android_renderer_backend.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/android_renderer_frontend.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/android_renderer_frontend.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/annotation/marker.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/annotation/marker.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/annotation/multi_point.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/annotation/polygon.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/annotation/polygon.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/annotation/polyline.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/annotation/polyline.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/asset_manager.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/asset_manager_file_source.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/asset_manager_file_source.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/async_task.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/attach_env.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/attach_env.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/bitmap.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/bitmap.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/bitmap_factory.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/bitmap_factory.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/connectivity_listener.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/connectivity_listener.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/conversion/collection.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/conversion/collection.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/conversion/color.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/conversion/color.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/conversion/constant.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/conversion/constant.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/conversion/conversion.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/geojson/feature.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/geojson/feature.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/geojson/feature_collection.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/geojson/feature_collection.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/geojson/geometry.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/geojson/geometry.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/geojson/geometry_collection.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/geojson/geometry_collection.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/geojson/line_string.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/geojson/line_string.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/geojson/multi_line_string.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/geojson/multi_line_string.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/geojson/multi_point.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/geojson/multi_point.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/geojson/multi_polygon.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/geojson/multi_polygon.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/geojson/point.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/geojson/point.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/geojson/polygon.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/geojson/polygon.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/geojson/util.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/geometry/lat_lng.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/geometry/lat_lng.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/geometry/lat_lng_bounds.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/geometry/lat_lng_bounds.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/geometry/lat_lng_quad.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/geometry/lat_lng_quad.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/geometry/projected_meters.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/geometry/projected_meters.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/gl_functions.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/graphics/pointf.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/graphics/pointf.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/graphics/rectf.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/graphics/rectf.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/gson/json_array.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/gson/json_array.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/gson/json_element.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/gson/json_element.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/gson/json_object.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/gson/json_object.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/gson/json_primitive.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/gson/json_primitive.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/image.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/java/util.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/java/util.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/java_types.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/java_types.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/jni.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/jni.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/jni_native.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/jni_native.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/mapbox.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/mapbox.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/map/camera_position.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/map/camera_position.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/map/image.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/map/image.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/map_renderer.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/map_renderer.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/map_renderer_runnable.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/map_renderer_runnable.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/native_map_view.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/native_map_view.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/offline/offline_manager.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/offline/offline_manager.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/offline/offline_region.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/offline/offline_region.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/offline/offline_region_definition.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/offline/offline_region_definition.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/offline/offline_region_error.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/offline/offline_region_error.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/offline/offline_region_status.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/offline/offline_region_status.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/run_loop.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/run_loop_impl.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/snapshotter/map_snapshot.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/snapshotter/map_snapshot.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/snapshotter/map_snapshotter.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/snapshotter/map_snapshotter.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/string_util.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/android_conversion.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/conversion/filter.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/conversion/filter.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/conversion/position.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/conversion/position.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/conversion/property_expression.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/conversion/property_value.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/conversion/transition_options.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/conversion/transition_options.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/conversion/url_or_tileset.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/conversion/url_or_tileset.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/formatted.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/formatted.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/formatted_section.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/formatted_section.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/layers/background_layer.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/layers/background_layer.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/layers/circle_layer.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/layers/circle_layer.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/layers/custom_layer.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/layers/custom_layer.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/layers/fill_extrusion_layer.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/layers/fill_extrusion_layer.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/layers/fill_layer.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/layers/fill_layer.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/layers/heatmap_layer.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/layers/heatmap_layer.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/layers/hillshade_layer.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/layers/hillshade_layer.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/layers/layer.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/layers/layer.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/layers/layer_manager.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/layers/layer_manager.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/layers/line_layer.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/layers/line_layer.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/layers/raster_layer.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/layers/raster_layer.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/layers/symbol_layer.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/layers/symbol_layer.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/light.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/light.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/position.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/position.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/sources/custom_geometry_source.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/sources/custom_geometry_source.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/sources/geojson_source.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/sources/geojson_source.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/sources/image_source.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/sources/image_source.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/sources/raster_dem_source.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/sources/raster_dem_source.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/sources/raster_source.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/sources/raster_source.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/sources/source.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/sources/source.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/sources/unknown_source.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/sources/unknown_source.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/sources/vector_source.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/sources/vector_source.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/transition_options.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/transition_options.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/value.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/style/value.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/thread.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/timer.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gfx/headless_backend.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gfx/headless_frontend.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gl/headless_backend.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/map/map_snapshotter.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/asset_file_source.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/database_file_source.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/file_source_manager.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/file_source_request.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/local_file_request.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/local_file_source.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/main_resource_loader.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/offline.cpp
${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/default/src/mbgl/storage/sqlite3.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/text/bidi.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/default/src/mbgl/util/png_writer.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/thread_local.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/utf.cpp
${PROJECT_SOURCE_DIR}/platform/linux/src/headless_backend_egl.cpp
)
target_include_directories(
mbgl-core
PRIVATE ${PROJECT_SOURCE_DIR}/platform/default/include
)
target_link_libraries(
mbgl-core
PRIVATE
EGL
GLESv2
Mapbox::Base::jni.hpp
android
atomic
jnigraphics
log
mbgl-vendor-icu
mbgl-vendor-sqlite
z
)
add_library(
mbgl-core-android STATIC
${PROJECT_SOURCE_DIR}/platform/android/src/file_source.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/file_source.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/http_file_source.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/i18n/collator.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/i18n/collator_jni.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/i18n/number_format.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/i18n/number_format_jni.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/logger.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/logger.hpp
${PROJECT_SOURCE_DIR}/platform/android/src/logging_android.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/text/local_glyph_rasterizer.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/text/local_glyph_rasterizer_jni.hpp
)
target_include_directories(
mbgl-core-android
PRIVATE ${PROJECT_SOURCE_DIR}/platform/default/include ${PROJECT_SOURCE_DIR}/src
)
target_link_libraries(
mbgl-core-android
PRIVATE Mapbox::Base::jni.hpp mbgl-compiler-options mbgl-core
)
add_library(
mapbox-gl SHARED
${PROJECT_SOURCE_DIR}/platform/android/src/main.cpp
)
target_include_directories(
mapbox-gl
PRIVATE ${PROJECT_SOURCE_DIR}/platform/default/include ${PROJECT_SOURCE_DIR}/src
)
target_link_libraries(
mapbox-gl
PRIVATE
Mapbox::Base::jni.hpp
mbgl-compiler-options
mbgl-core
mbgl-core-android
)
add_library(
example-custom-layer MODULE
${PROJECT_SOURCE_DIR}/platform/android/src/example_custom_layer.cpp
)
target_include_directories(
example-custom-layer
PRIVATE ${PROJECT_SOURCE_DIR}/include
)
target_link_libraries(
example-custom-layer
PRIVATE
GLESv2
Mapbox::Base::optional
Mapbox::Base::typewrapper
Mapbox::Base::value
Mapbox::Base::weak
log
mbgl-compiler-options
)
add_library(
mbgl-test-runner SHARED
${ANDROID_NDK}/sources/android/native_app_glue/android_native_app_glue.c
${PROJECT_SOURCE_DIR}/platform/android/src/test/test_runner.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/test/test_runner_common.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/text/local_glyph_rasterizer.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/test/collator_test_stub.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/test/number_format_test_stub.cpp
)
target_include_directories(
mbgl-test-runner
PRIVATE ${ANDROID_NDK}/sources/android/native_app_glue ${PROJECT_SOURCE_DIR}/platform/android/src ${PROJECT_SOURCE_DIR}/src
)
target_link_libraries(
mbgl-test-runner
PRIVATE
Mapbox::Base::jni.hpp
mbgl-compiler-options
-Wl,--whole-archive
mbgl-test
-Wl,--no-whole-archive
)
if(ANDROID_NATIVE_API_LEVEL VERSION_LESS 24)
target_sources(
mbgl-test-runner
PRIVATE ${PROJECT_SOURCE_DIR}/platform/android/src/test/http_file_source_test_stub.cpp
)
else()
set(CURL_DIR ${PROJECT_SOURCE_DIR}/vendor/curl-android-ios/prebuilt-with-ssl/android)
set(CURL_LIBRARY ${CURL_DIR}/${ANDROID_ABI}/libcurl.a)
target_sources(
mbgl-test-runner
PRIVATE ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/http_file_source.cpp
)
target_include_directories(
mbgl-test-runner
PRIVATE ${CURL_DIR}/include
)
target_link_libraries(
mbgl-test-runner
PRIVATE ${CURL_LIBRARY}
)
endif()
add_custom_command(
TARGET mbgl-test-runner PRE_BUILD
COMMAND
${CMAKE_COMMAND}
-E
make_directory
${PROJECT_SOURCE_DIR}/test/results
COMMAND
${CMAKE_COMMAND}
-E
tar
"chf"
"test/android/app/src/main/assets/data.zip"
--format=zip
--files-from=test/android/app/src/main/assets/to_zip.txt
COMMAND
${CMAKE_COMMAND}
-E
remove_directory
${PROJECT_SOURCE_DIR}/test/results
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
)
add_library(
mbgl-benchmark-runner SHARED
${ANDROID_NDK}/sources/android/native_app_glue/android_native_app_glue.c
${PROJECT_SOURCE_DIR}/platform/android/src/test/benchmark_runner.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/test/test_runner_common.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/text/local_glyph_rasterizer.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/test/collator_test_stub.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/test/number_format_test_stub.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/test/http_file_source_test_stub.cpp
)
target_include_directories(
mbgl-benchmark-runner
PRIVATE ${ANDROID_NDK}/sources/android/native_app_glue ${PROJECT_SOURCE_DIR}/platform/android/src ${PROJECT_SOURCE_DIR}/src
)
target_link_libraries(
mbgl-benchmark-runner
PRIVATE
Mapbox::Base::jni.hpp
mbgl-compiler-options
-Wl,--whole-archive
mbgl-benchmark
-Wl,--no-whole-archive
)
add_custom_command(
TARGET mbgl-benchmark-runner PRE_BUILD
COMMAND
${CMAKE_COMMAND}
-E
make_directory
${PROJECT_SOURCE_DIR}/benchmark/results
COMMAND
${CMAKE_COMMAND}
-E
tar
"chf"
"benchmark/android/app/src/main/assets/data.zip"
--format=zip
--files-from=benchmark/android/app/src/main/assets/to_zip.txt
COMMAND
${CMAKE_COMMAND}
-E
remove_directory
${PROJECT_SOURCE_DIR}/benchmark/results
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
)
add_library(
mbgl-render-test-runner SHARED
${ANDROID_NDK}/sources/android/native_app_glue/android_native_app_glue.c
${PROJECT_SOURCE_DIR}/platform/android/src/test/render_test_runner.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/test/test_runner_common.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/text/local_glyph_rasterizer.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/test/collator_test_stub.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/test/number_format_test_stub.cpp
${PROJECT_SOURCE_DIR}/platform/android/src/test/http_file_source_test_stub.cpp
)
target_include_directories(
mbgl-render-test-runner
PRIVATE ${ANDROID_NDK}/sources/android/native_app_glue ${PROJECT_SOURCE_DIR}/platform/android/src ${PROJECT_SOURCE_DIR}/src
)
target_link_libraries(
mbgl-render-test-runner
PRIVATE
Mapbox::Base::jni.hpp
android
log
mbgl-compiler-options
mbgl-render-test
)
add_custom_command(
TARGET mbgl-render-test-runner PRE_BUILD
COMMAND
${CMAKE_COMMAND}
-E
tar
"chf"
"render-test/android/app/src/main/assets/data.zip"
--format=zip
--files-from=render-test/android/app/src/main/assets/to_zip.txt
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
)
install(TARGETS mapbox-gl LIBRARY DESTINATION lib)

View File

@@ -5,12 +5,12 @@ pkg_search_module(GLFW glfw3 REQUIRED)
add_executable(
mbgl-glfw
${MBGL_ROOT}/platform/glfw/main.cpp
${MBGL_ROOT}/platform/glfw/glfw_view.cpp
${MBGL_ROOT}/platform/glfw/glfw_gl_backend.cpp
${MBGL_ROOT}/platform/glfw/glfw_renderer_frontend.cpp
${MBGL_ROOT}/platform/glfw/settings_json.cpp
${MBGL_ROOT}/platform/glfw/test_writer.cpp
${PROJECT_SOURCE_DIR}/platform/glfw/main.cpp
${PROJECT_SOURCE_DIR}/platform/glfw/glfw_view.cpp
${PROJECT_SOURCE_DIR}/platform/glfw/glfw_gl_backend.cpp
${PROJECT_SOURCE_DIR}/platform/glfw/glfw_renderer_frontend.cpp
${PROJECT_SOURCE_DIR}/platform/glfw/settings_json.cpp
${PROJECT_SOURCE_DIR}/platform/glfw/test_writer.cpp
)
target_include_directories(

193
platform/ios/ios.cmake Normal file
View File

@@ -0,0 +1,193 @@
target_compile_definitions(
mbgl-core
PUBLIC MBGL_USE_GLES2 GLES_SILENCE_DEPRECATION
)
if(NOT DEFINED IOS_DEPLOYMENT_TARGET)
set(IOS_DEPLOYMENT_TARGET "9.0")
endif()
macro(initialize_ios_target target)
set_target_properties(${target} PROPERTIES XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET "${IOS_DEPLOYMENT_TARGET}")
set_target_properties(${target} PROPERTIES XCODE_ATTRIBUTE_ENABLE_BITCODE "YES")
set_target_properties(${target} PROPERTIES XCODE_ATTRIBUTE_BITCODE_GENERATION_MODE bitcode)
set_target_properties(${target} PROPERTIES XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH $<$<CONFIG:Debug>:YES>)
endmacro()
set_target_properties(mbgl-core PROPERTIES XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC YES)
target_sources(
mbgl-core
PRIVATE
${PROJECT_SOURCE_DIR}/platform/darwin/src/async_task.cpp
${PROJECT_SOURCE_DIR}/platform/darwin/src/collator.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/gl_functions.cpp
${PROJECT_SOURCE_DIR}/platform/darwin/src/headless_backend_eagl.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/native_apple_interface.m
${PROJECT_SOURCE_DIR}/platform/darwin/src/http_file_source.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/native_apple_interface.m
${PROJECT_SOURCE_DIR}/platform/darwin/src/image.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/local_glyph_rasterizer.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/logging_nslog.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/nsthread.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/number_format.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/reachability.m
${PROJECT_SOURCE_DIR}/platform/darwin/src/run_loop.cpp
${PROJECT_SOURCE_DIR}/platform/darwin/src/string_nsstring.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/timer.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gfx/headless_backend.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gfx/headless_frontend.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gl/headless_backend.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/map/map_snapshotter.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/asset_file_source.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/database_file_source.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/file_source_manager.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/file_source_request.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/local_file_request.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/local_file_source.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/main_resource_loader.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/offline.cpp
${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/default/src/mbgl/storage/sqlite3.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/text/bidi.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/default/src/mbgl/util/png_writer.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/thread_local.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/utf.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/thread_local.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/layermanager/layer_manager.cpp
)
target_include_directories(
mbgl-core
PRIVATE ${PROJECT_SOURCE_DIR}/platform/darwin/include ${PROJECT_SOURCE_DIR}/platform/default/include
)
include(${PROJECT_SOURCE_DIR}/vendor/icu.cmake)
initialize_ios_target(mbgl-core)
initialize_ios_target(mbgl-vendor-icu)
target_link_libraries(
mbgl-core
PRIVATE
"-framework CoreGraphics"
"-framework CoreImage"
"-framework CoreLocation"
"-framework CoreServices"
"-framework CoreText"
"-framework Foundation"
"-framework GLKit"
"-framework ImageIO"
"-framework OpenGLES"
"-framework QuartzCore"
"-framework Security"
"-framework SystemConfiguration"
"-framework UIKit"
"-framework WebKit"
mbgl-vendor-icu
sqlite3
z
)
if(MBGL_IOS_RENDER_TEST)
set(CMAKE_OSX_ARCHITECTURES "armv7;i386;x86_64;arm64")
include(${PROJECT_SOURCE_DIR}/vendor/zip-archive.cmake)
initialize_ios_target(mbgl-vendor-zip-archive)
set(PREPARE_CMD "${PROJECT_SOURCE_DIR}/render-test/ios/setup_test_data.sh")
message("COMMAND: ${PREPARE_CMD}")
execute_process(COMMAND ${PREPARE_CMD} RESULT_VARIABLE CMD_ERROR WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
message(STATUS "CMD_ERROR:" ${CMD_ERROR})
set(RESOURCES ${PROJECT_SOURCE_DIR}/render-test/ios/Main.storyboard ${PROJECT_SOURCE_DIR}/render-test/ios/LaunchScreen.storyboard ${PROJECT_SOURCE_DIR}/test-data)
add_executable(
RenderTestApp
${PROJECT_SOURCE_DIR}/render-test/ios/ios_test_runner.hpp
${PROJECT_SOURCE_DIR}/render-test/ios/ios_test_runner.cpp
${PROJECT_SOURCE_DIR}/render-test/ios/AppDelegate.h
${PROJECT_SOURCE_DIR}/render-test/ios/AppDelegate.m
${PROJECT_SOURCE_DIR}/render-test/ios/ViewController.h
${PROJECT_SOURCE_DIR}/render-test/ios/ViewController.m
${PROJECT_SOURCE_DIR}/render-test/ios/iosTestRunner.h
${PROJECT_SOURCE_DIR}/render-test/ios/iosTestRunner.mm
${PROJECT_SOURCE_DIR}/render-test/ios/main.m
${RESOURCES}
)
initialize_ios_target(RenderTestApp)
set_target_properties(
RenderTestApp
PROPERTIES
MACOSX_BUNDLE
TRUE
MACOSX_BUNDLE_IDENTIFIER
com.mapbox.RenderTestAPP
MACOSX_BUNDLE_INFO_PLIST
${PROJECT_SOURCE_DIR}/render-test/ios/Info.plist
RESOURCE
"${RESOURCES}"
)
target_include_directories(
RenderTestApp
PUBLIC {PROJECT_SOURCE_DIR}/render-test/include ${PROJECT_SOURCE_DIR}/include
)
target_include_directories(
RenderTestApp
PRIVATE
${PROJECT_SOURCE_DIR}/platform/darwin/src
${PROJECT_SOURCE_DIR}/platform/darwin/include
${PROJECT_SOURCE_DIR}/platform/darwin/include/mbgl/interface/
${PROJECT_SOURCE_DIR}/platform/default/include
${PROJECT_SOURCE_DIR}/src
)
target_include_directories(
RenderTestApp
PUBLIC ${PROJECT_SOURCE_DIR}/render-test/ios
)
target_link_libraries(
RenderTestApp
PRIVATE
"-framework CoreGraphics"
"-framework CoreLocation"
"-framework Foundation"
"-framework OpenGLES"
"-framework QuartzCore"
"-framework UIKit"
mbgl-render-test
mbgl-vendor-zip-archive
)
find_package(XCTest REQUIRED)
xctest_add_bundle(RenderTestAppTests RenderTestApp ${PROJECT_SOURCE_DIR}/render-test/ios/tests/Tests.m)
set_target_properties(
RenderTestAppTests
PROPERTIES
XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET
"${IOS_DEPLOYMENT_TARGET}"
XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH
$<$<CONFIG:Debug>:YES>
)
target_include_directories(
RenderTestAppTests
PUBLIC ${PROJECT_SOURCE_DIR}/render-test/ios
)
xctest_add_test(XCTest.RenderTestApp RenderTestAppTests)
set_target_properties(RenderTestAppTests PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${PROJECT_SOURCE_DIR}/render-test/ios/tests/Info.plist)
endif()
unset(IOS_DEPLOYMENT_TARGET CACHE)

134
platform/linux/linux.cmake Normal file
View File

@@ -0,0 +1,134 @@
find_package(CURL REQUIRED)
find_package(ICU REQUIRED i18n)
find_package(ICU REQUIRED uc)
find_package(JPEG REQUIRED)
find_package(OpenGL REQUIRED GLX)
find_package(PNG REQUIRED)
find_package(PkgConfig REQUIRED)
find_package(X11 REQUIRED)
pkg_search_module(LIBUV libuv REQUIRED)
target_sources(
mbgl-core
PRIVATE
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gfx/headless_backend.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gfx/headless_frontend.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gl/headless_backend.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/i18n/collator.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/i18n/number_format.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/layermanager/layer_manager.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/asset_file_source.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/database_file_source.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/file_source_manager.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/file_source_request.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/http_file_source.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/local_file_request.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/local_file_source.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/main_resource_loader.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/offline.cpp
${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/default/src/mbgl/storage/sqlite3.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/text/bidi.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/text/local_glyph_rasterizer.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/async_task.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/compression.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/image.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/jpeg_reader.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/logging_stderr.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/monotonic_timer.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/png_reader.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/png_writer.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/run_loop.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/string_stdlib.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/thread.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/thread_local.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/timer.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/utf.cpp
${PROJECT_SOURCE_DIR}/platform/linux/src/gl_functions.cpp
${PROJECT_SOURCE_DIR}/platform/linux/src/headless_backend_glx.cpp
)
# FIXME: Should not be needed, but now needed by node because of the headless frontend.
target_include_directories(
mbgl-core
PUBLIC ${PROJECT_SOURCE_DIR}/platform/default/include
PRIVATE
${CURL_INCLUDE_DIRS}
${JPEG_INCLUDE_DIRS}
${LIBUV_INCLUDE_DIRS}
${X11_INCLUDE_DIRS}
)
include(${PROJECT_SOURCE_DIR}/vendor/nunicode.cmake)
include(${PROJECT_SOURCE_DIR}/vendor/sqlite.cmake)
target_link_libraries(
mbgl-core
PRIVATE
${CURL_LIBRARIES}
${JPEG_LIBRARIES}
${LIBUV_LIBRARIES}
${X11_LIBRARIES}
ICU::i18n
ICU::uc
OpenGL::GLX
PNG::PNG
mbgl-vendor-nunicode
mbgl-vendor-sqlite
)
add_subdirectory(${PROJECT_SOURCE_DIR}/bin)
add_subdirectory(${PROJECT_SOURCE_DIR}/expression-test)
add_subdirectory(${PROJECT_SOURCE_DIR}/platform/glfw)
add_subdirectory(${PROJECT_SOURCE_DIR}/platform/node)
add_executable(
mbgl-test-runner
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/test/main.cpp
)
target_compile_definitions(
mbgl-test-runner
PRIVATE WORK_DIRECTORY=${PROJECT_SOURCE_DIR}
)
target_link_libraries(
mbgl-test-runner
PRIVATE
mbgl-compiler-options
-Wl,--whole-archive
mbgl-test
-Wl,--no-whole-archive
)
add_executable(
mbgl-benchmark-runner
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/benchmark/main.cpp
)
target_link_libraries(
mbgl-benchmark-runner
PRIVATE
mbgl-compiler-options
-Wl,--whole-archive
mbgl-benchmark
-Wl,--no-whole-archive
)
add_executable(
mbgl-render-test-runner
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/render-test/main.cpp
)
target_link_libraries(
mbgl-render-test-runner
PRIVATE mbgl-compiler-options mbgl-render-test
)
add_test(NAME mbgl-benchmark-runner COMMAND mbgl-benchmark-runner WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
add_test(NAME mbgl-test-runner COMMAND mbgl-test-runner WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
install(TARGETS mbgl-render-test-runner RUNTIME DESTINATION bin)

213
platform/macos/macos.cmake Normal file
View File

@@ -0,0 +1,213 @@
find_package(OpenGL REQUIRED)
target_compile_definitions(
mbgl-core
PUBLIC GL_SILENCE_DEPRECATION
)
target_sources(
mbgl-core
PRIVATE
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLAccountManager.m
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLAttributedExpression.m
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLAttributionInfo.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLBackgroundStyleLayer.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLCircleStyleLayer.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLClockDirectionFormatter.m
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLCompassDirectionFormatter.m
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLComputedShapeSource.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLCoordinateFormatter.m
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLDistanceFormatter.m
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLFeature.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLFillExtrusionStyleLayer.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLFillStyleLayer.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLForegroundStyleLayer.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLFoundation.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLGeometry.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLHeatmapStyleLayer.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLHillshadeStyleLayer.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLImageSource.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLLight.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLLineStyleLayer.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLLoggingConfiguration.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLMapCamera.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLMapSnapshotter.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLMultiPoint.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLNetworkConfiguration.m
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLOfflinePack.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLOfflineStorage.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLOpenGLStyleLayer.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLPointAnnotation.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLPointCollection.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLPolygon.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLPolyline.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLRasterDEMSource.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLRasterStyleLayer.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLRasterTileSource.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLRendererConfiguration.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLSDKMetricsManager.m
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLShape.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLShapeCollection.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLShapeOfflineRegion.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLShapeSource.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLSource.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLStyle.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLStyleLayer.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLStyleLayerManager.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLStyleValue.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLSymbolStyleLayer.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLTilePyramidOfflineRegion.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLTileSource.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLTypes.m
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLVectorStyleLayer.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLVectorTileSource.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/NSArray+MGLAdditions.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/NSBundle+MGLAdditions.m
${PROJECT_SOURCE_DIR}/platform/darwin/src/NSCoder+MGLAdditions.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/NSComparisonPredicate+MGLAdditions.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/NSCompoundPredicate+MGLAdditions.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/NSDate+MGLAdditions.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/NSDictionary+MGLAdditions.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/NSExpression+MGLAdditions.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/NSPredicate+MGLAdditions.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/NSString+MGLAdditions.m
${PROJECT_SOURCE_DIR}/platform/darwin/src/NSURL+MGLAdditions.m
${PROJECT_SOURCE_DIR}/platform/darwin/src/NSValue+MGLAdditions.m
${PROJECT_SOURCE_DIR}/platform/darwin/src/NSValue+MGLStyleAttributeAdditions.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/async_task.cpp
${PROJECT_SOURCE_DIR}/platform/darwin/src/collator.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/gl_functions.cpp
${PROJECT_SOURCE_DIR}/platform/darwin/src/headless_backend_cgl.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/http_file_source.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/image.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/local_glyph_rasterizer.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/logging_nslog.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/nsthread.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/number_format.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/reachability.m
${PROJECT_SOURCE_DIR}/platform/darwin/src/run_loop.cpp
${PROJECT_SOURCE_DIR}/platform/darwin/src/string_nsstring.mm
${PROJECT_SOURCE_DIR}/platform/darwin/src/timer.cpp
${PROJECT_SOURCE_DIR}/platform/darwin/src/native_apple_interface.m
${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLNetworkIntegrationManager.m
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gfx/headless_backend.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gfx/headless_frontend.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gl/headless_backend.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/map/map_snapshotter.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/asset_file_source.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/database_file_source.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/file_source_manager.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/file_source_request.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/local_file_request.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/local_file_source.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/main_resource_loader.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/offline.cpp
${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/default/src/mbgl/storage/sqlite3.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/text/bidi.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/default/src/mbgl/util/png_writer.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/thread_local.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/utf.cpp
${PROJECT_SOURCE_DIR}/platform/macos/src/MGLAnnotationImage.m
${PROJECT_SOURCE_DIR}/platform/macos/src/MGLAttributionButton.mm
${PROJECT_SOURCE_DIR}/platform/macos/src/MGLCompassCell.m
${PROJECT_SOURCE_DIR}/platform/macos/src/MGLMapView+IBAdditions.mm
${PROJECT_SOURCE_DIR}/platform/macos/src/MGLMapView+Impl.mm
${PROJECT_SOURCE_DIR}/platform/macos/src/MGLMapView+OpenGL.mm
${PROJECT_SOURCE_DIR}/platform/macos/src/MGLMapView.mm
${PROJECT_SOURCE_DIR}/platform/macos/src/MGLOpenGLLayer.mm
${PROJECT_SOURCE_DIR}/platform/macos/src/NSColor+MGLAdditions.mm
${PROJECT_SOURCE_DIR}/platform/macos/src/NSImage+MGLAdditions.mm
${PROJECT_SOURCE_DIR}/platform/macos/src/NSProcessInfo+MGLAdditions.m
)
set_target_properties(mbgl-core PROPERTIES XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC YES)
target_compile_options(mbgl-core PRIVATE -fobjc-arc)
# FIXME: Should not be needed, but now needed by node because of the headless frontend.
target_include_directories(
mbgl-core
PUBLIC ${PROJECT_SOURCE_DIR}/platform/default/include
)
target_include_directories(
mbgl-core
PRIVATE ${PROJECT_SOURCE_DIR}/platform/darwin/include ${PROJECT_SOURCE_DIR}/platform/darwin/src ${PROJECT_SOURCE_DIR}/platform/macos/src
)
include(${PROJECT_SOURCE_DIR}/vendor/icu.cmake)
target_link_libraries(
mbgl-core
PRIVATE
"-framework AppKit"
"-framework CoreGraphics"
"-framework CoreLocation"
"-framework SystemConfiguration"
OpenGL::GL
mbgl-vendor-icu
sqlite3
z
)
add_subdirectory(${PROJECT_SOURCE_DIR}/bin)
add_subdirectory(${PROJECT_SOURCE_DIR}/expression-test)
add_subdirectory(${PROJECT_SOURCE_DIR}/platform/glfw)
add_subdirectory(${PROJECT_SOURCE_DIR}/platform/node)
add_executable(
mbgl-test-runner
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/test/main.cpp
)
target_include_directories(
mbgl-test-runner
PUBLIC ${PROJECT_SOURCE_DIR}/include ${PROJECT_SOURCE_DIR}/test/include
)
target_compile_definitions(
mbgl-test-runner
PRIVATE WORK_DIRECTORY=${PROJECT_SOURCE_DIR}
)
target_link_libraries(
mbgl-test-runner
PRIVATE mbgl-compiler-options -Wl,-force_load mbgl-test
)
add_executable(
mbgl-benchmark-runner
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/benchmark/main.cpp
)
target_include_directories(
mbgl-benchmark-runner
PUBLIC ${PROJECT_SOURCE_DIR}/benchmark/include
)
target_link_libraries(
mbgl-benchmark-runner
PRIVATE mbgl-compiler-options -Wl,-force_load mbgl-benchmark
)
add_executable(
mbgl-render-test-runner
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/render-test/main.cpp
)
target_link_libraries(
mbgl-render-test-runner
PRIVATE mbgl-compiler-options mbgl-render-test
)
set_property(TARGET mbgl-benchmark-runner PROPERTY FOLDER Executables)
set_property(TARGET mbgl-test-runner PROPERTY FOLDER Executables)
set_property(TARGET mbgl-render-test-runner PROPERTY FOLDER Executables)
add_test(NAME mbgl-benchmark-runner COMMAND mbgl-benchmark-runner WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
add_test(NAME mbgl-test-runner COMMAND mbgl-test-runner WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})

View File

@@ -0,0 +1,52 @@
if(NOT EXISTS ${PROJECT_SOURCE_DIR}/node_modules/@mapbox/cmake-node-module/module.cmake)
message("-- Not building node bindings, dependencies not found. Run 'npm update'.")
return()
endif()
set(NODE_MODULE_CACHE_DIR ${CMAKE_SOURCE_DIR}/build/headers)
include(${PROJECT_SOURCE_DIR}/node_modules/@mapbox/cmake-node-module/module.cmake)
add_node_module(
mbgl-node
INSTALL_PATH ${PROJECT_SOURCE_DIR}/lib/{node_abi}/mbgl.node
NAN_VERSION 2.10.0
EXCLUDE_NODE_ABIS
46
47
48
51
59
67
72
79
)
target_sources(
mbgl-node
INTERFACE
${PROJECT_SOURCE_DIR}/platform/node/src/node_conversion.hpp
${PROJECT_SOURCE_DIR}/platform/node/src/node_expression.cpp
${PROJECT_SOURCE_DIR}/platform/node/src/node_expression.hpp
${PROJECT_SOURCE_DIR}/platform/node/src/node_feature.cpp
${PROJECT_SOURCE_DIR}/platform/node/src/node_feature.hpp
${PROJECT_SOURCE_DIR}/platform/node/src/node_logging.cpp
${PROJECT_SOURCE_DIR}/platform/node/src/node_logging.hpp
${PROJECT_SOURCE_DIR}/platform/node/src/node_map.cpp
${PROJECT_SOURCE_DIR}/platform/node/src/node_map.hpp
${PROJECT_SOURCE_DIR}/platform/node/src/node_mapbox_gl_native.cpp
${PROJECT_SOURCE_DIR}/platform/node/src/node_request.cpp
${PROJECT_SOURCE_DIR}/platform/node/src/node_request.hpp
${PROJECT_SOURCE_DIR}/platform/node/src/util/async_queue.hpp
)
target_link_libraries(
mbgl-node
INTERFACE Mapbox::Map
)
# FIXME: Node bindings only run fully on Linux now because it requires libuv RunLoop (which is the default on Linux). Also, Sanitizer will
# not work here because node will do a dlopen(), which is not currently supported.
if(CMAKE_SYSTEM_NAME STREQUAL Linux AND NOT MBGL_WITH_SANITIZER)
add_test(NAME mbgl-node-memory COMMAND npm run test-memory WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
add_test(NAME mbgl-node-test COMMAND npm run test WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
endif()

214
platform/qt/qt.cmake Normal file
View File

@@ -0,0 +1,214 @@
# Note: Using Sqlite instead of QSqlDatabase for better compatibility.
find_package(Qt5Gui REQUIRED)
find_package(Qt5Network REQUIRED)
find_package(Qt5OpenGL REQUIRED)
find_package(Qt5Widgets REQUIRED)
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
add_definitions("-DQT_COMPILING_QIMAGE_COMPAT_CPP")
add_definitions("-D_USE_MATH_DEFINES")
add_definitions("-Wno-deprecated-declarations")
add_definitions("-Wno-inconsistent-missing-override")
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")
endif()
target_sources(
mbgl-core
PRIVATE
${PROJECT_SOURCE_DIR}/platform/$<IF:$<PLATFORM_ID:Windows>,qt/src/bidi.cpp,default/src/mbgl/text/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
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gfx/headless_backend.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gfx/headless_frontend.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gl/headless_backend.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/i18n/collator.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/layermanager/layer_manager.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/asset_file_source.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/database_file_source.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/file_source_manager.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/file_source_request.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/local_file_request.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/local_file_source.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/main_resource_loader.cpp
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/offline.cpp
${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/default/src/mbgl/storage/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
${PROJECT_SOURCE_DIR}/platform/qt/src/headless_backend_qt.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/http_file_source.cpp
${PROJECT_SOURCE_DIR}/platform/qt/src/http_file_source.hpp
${PROJECT_SOURCE_DIR}/platform/qt/src/http_request.cpp
${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
)
target_compile_definitions(
mbgl-core
PRIVATE QT_IMAGE_DECODERS
PUBLIC __QT__ MBGL_USE_GLES2
)
target_include_directories(
mbgl-core
PRIVATE ${PROJECT_SOURCE_DIR}/platform/default/include
)
include(${PROJECT_SOURCE_DIR}/vendor/icu.cmake)
include(${PROJECT_SOURCE_DIR}/vendor/nunicode.cmake)
include(${PROJECT_SOURCE_DIR}/vendor/sqlite.cmake)
target_link_libraries(
mbgl-core
PRIVATE
$<$<NOT:$<PLATFORM_ID:Windows>>:z>
$<$<NOT:$<PLATFORM_ID:Windows>>:mbgl-vendor-icu>
Qt5::Core
Qt5::Gui
Qt5::Network
Qt5::OpenGL
mbgl-vendor-nunicode
mbgl-vendor-sqlite
)
add_library(
qmapboxgl SHARED
${PROJECT_SOURCE_DIR}/platform/qt/include/qmapbox.hpp
${PROJECT_SOURCE_DIR}/platform/qt/include/qmapboxgl.hpp
${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
)
# FIXME: Because of rapidjson conversion
target_include_directories(
qmapboxgl
PRIVATE ${PROJECT_SOURCE_DIR}/src
)
target_include_directories(
qmapboxgl
PUBLIC ${PROJECT_SOURCE_DIR}/platform/qt/include
)
target_compile_definitions(
qmapboxgl
PRIVATE QT_BUILD_MAPBOXGL_LIB
)
target_link_libraries(
qmapboxgl
PRIVATE
Qt5::Core
Qt5::Gui
mbgl-compiler-options
mbgl-core
)
add_executable(
mbgl-qt
${PROJECT_SOURCE_DIR}/platform/qt/app/main.cpp
${PROJECT_SOURCE_DIR}/platform/qt/app/mapwindow.cpp
${PROJECT_SOURCE_DIR}/platform/qt/app/mapwindow.hpp
${PROJECT_SOURCE_DIR}/platform/qt/resources/common.qrc
)
# Qt public API should keep compatibility with old compilers for legacy systems
set_property(TARGET mbgl-qt PROPERTY CXX_STANDARD 98)
target_link_libraries(
mbgl-qt
PRIVATE
Qt5::Widgets
Qt5::Gui
mbgl-compiler-options
qmapboxgl
)
add_executable(
mbgl-test-runner
${PROJECT_SOURCE_DIR}/platform/qt/test/main.cpp
)
target_include_directories(
mbgl-test-runner
PUBLIC ${PROJECT_SOURCE_DIR}/include ${PROJECT_SOURCE_DIR}/test/include
)
target_compile_definitions(
mbgl-test-runner
PRIVATE WORK_DIRECTORY=${PROJECT_SOURCE_DIR}
)
target_link_libraries(
mbgl-test-runner
PRIVATE
Qt5::Gui
Qt5::OpenGL
mbgl-compiler-options
pthread
)
if(CMAKE_SYSTEM_NAME STREQUAL Darwin)
target_link_libraries(
mbgl-test-runner
PRIVATE -Wl,-force_load mbgl-test
)
else()
target_link_libraries(
mbgl-test-runner
PRIVATE -Wl,--whole-archive mbgl-test -Wl,--no-whole-archive
)
endif()
find_program(MBGL_QDOC NAMES qdoc)
if(MBGL_QDOC)
add_custom_target(mbgl-qt-docs)
add_custom_command(
TARGET mbgl-qt-docs PRE_BUILD
COMMAND
${MBGL_QDOC}
${PROJECT_SOURCE_DIR}/platform/qt/config.qdocconf
-outputdir
${CMAKE_BINARY_DIR}/docs
)
endif()
add_test(NAME mbgl-test-runner COMMAND mbgl-test-runner WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})

View File

@@ -0,0 +1,52 @@
add_library(
mbgl-render-test STATIC EXCLUDE_FROM_ALL
${PROJECT_SOURCE_DIR}/expression-test/test_runner_common.cpp
${PROJECT_SOURCE_DIR}/expression-test/test_runner_common.hpp
${PROJECT_SOURCE_DIR}/render-test/allocation_index.cpp
${PROJECT_SOURCE_DIR}/render-test/allocation_index.hpp
${PROJECT_SOURCE_DIR}/render-test/file_source.cpp
${PROJECT_SOURCE_DIR}/render-test/file_source.hpp
${PROJECT_SOURCE_DIR}/render-test/filesystem.hpp
${PROJECT_SOURCE_DIR}/render-test/include/mbgl/render_test.hpp
${PROJECT_SOURCE_DIR}/render-test/manifest_parser.cpp
${PROJECT_SOURCE_DIR}/render-test/manifest_parser.hpp
${PROJECT_SOURCE_DIR}/render-test/metadata.hpp
${PROJECT_SOURCE_DIR}/render-test/parser.cpp
${PROJECT_SOURCE_DIR}/render-test/parser.hpp
${PROJECT_SOURCE_DIR}/render-test/render_test.cpp
${PROJECT_SOURCE_DIR}/render-test/runner.cpp
${PROJECT_SOURCE_DIR}/render-test/runner.hpp
)
if(CMAKE_SYSTEM_NAME STREQUAL iOS)
set_target_properties(mbgl-render-test PROPERTIES XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET "${IOS_DEPLOYMENT_TARGET}")
set_target_properties(mbgl-render-test PROPERTIES XCODE_ATTRIBUTE_ENABLE_BITCODE "YES")
set_target_properties(mbgl-render-test PROPERTIES XCODE_ATTRIBUTE_BITCODE_GENERATION_MODE bitcode)
set_target_properties(mbgl-render-test PROPERTIES XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH $<$<CONFIG:Debug>:YES>)
endif()
# FIXME: Should not use core private interface
target_include_directories(
mbgl-render-test
PRIVATE ${PROJECT_SOURCE_DIR}/src ${PROJECT_SOURCE_DIR}/platform/default/include
)
target_include_directories(
mbgl-render-test
PUBLIC ${PROJECT_SOURCE_DIR}/render-test/include ${PROJECT_SOURCE_DIR}/include
)
include(${PROJECT_SOURCE_DIR}/vendor/boost.cmake)
target_link_libraries(
mbgl-render-test
PRIVATE
Mapbox::Base::Extras::args
Mapbox::Base::Extras::filesystem
Mapbox::Base::pixelmatch-cpp
mbgl-compiler-options
mbgl-vendor-boost
PUBLIC mbgl-core
)
set_property(TARGET mbgl-render-test PROPERTY FOLDER Core)

View File

@@ -34,7 +34,7 @@ android {
externalNativeBuild {
cmake {
version '3.10.2'
path '../../../next/CMakeLists.txt'
path '../../../CMakeLists.txt'
}
}
buildTypes {

View File

@@ -1,16 +1,17 @@
#!/bin/bash
rm -rf ../../test-data
mkdir ../../test-data
mkdir ../../test-data/integration
mkdir ../../test-data/baselines
cp -r ../../mapbox-gl-js/test/integration/render-tests ../../test-data/integration/
cp -r ../../mapbox-gl-js/test/integration/query-tests ../../test-data/integration/
cp -r ../../metrics/expectations ../../test-data/
cp -r ../../metrics/ignores ../../test-data/
cp -r ../../metrics/tests ../../test-data/
cp -r ../../metrics/ios-render-test-runner ../../test-data/
cp -r ../../metrics/ios-render-test-runner-style.json ../../test-data/
cp -r ../../metrics/ios-render-test-runner-metrics.json ../../test-data/
cp -r ../../metrics/cache-metrics.db ../../test-data/
cp -r ../../metrics/cache-style.db ../../test-data/
rm -rf test-data/
mkdir -p test-data/integration/
mkdir -p test-data/baselines/
cp -r mapbox-gl-js/test/integration/render-tests test-data/integration/
cp -r mapbox-gl-js/test/integration/query-tests test-data/integration/
cp -r metrics/expectations test-data/
cp -r metrics/ignores test-data/
cp -r metrics/tests test-data/
cp -r metrics/ios-render-test-runner test-data/
cp -r metrics/ios-render-test-runner-style.json test-data/
cp -r metrics/ios-render-test-runner-metrics.json test-data/
cp -r metrics/cache-metrics.db test-data/
cp -r metrics/cache-style.db test-data/

188
test/CMakeLists.txt Normal file
View File

@@ -0,0 +1,188 @@
add_library(
mbgl-test STATIC EXCLUDE_FROM_ALL
${PROJECT_SOURCE_DIR}/test/actor/actor.test.cpp
${PROJECT_SOURCE_DIR}/test/actor/actor_ref.test.cpp
${PROJECT_SOURCE_DIR}/test/algorithm/update_renderables.test.cpp
${PROJECT_SOURCE_DIR}/test/algorithm/update_tile_masks.test.cpp
${PROJECT_SOURCE_DIR}/test/api/annotations.test.cpp
${PROJECT_SOURCE_DIR}/test/api/api_misuse.test.cpp
${PROJECT_SOURCE_DIR}/test/api/custom_geometry_source.test.cpp
${PROJECT_SOURCE_DIR}/test/api/custom_layer.test.cpp
${PROJECT_SOURCE_DIR}/test/api/query.test.cpp
${PROJECT_SOURCE_DIR}/test/api/recycle_map.cpp
${PROJECT_SOURCE_DIR}/test/geometry/dem_data.test.cpp
${PROJECT_SOURCE_DIR}/test/geometry/line_atlas.test.cpp
${PROJECT_SOURCE_DIR}/test/gl/bucket.test.cpp
${PROJECT_SOURCE_DIR}/test/gl/context.test.cpp
${PROJECT_SOURCE_DIR}/test/gl/gl_functions.test.cpp
${PROJECT_SOURCE_DIR}/test/gl/object.test.cpp
${PROJECT_SOURCE_DIR}/test/map/map.test.cpp
${PROJECT_SOURCE_DIR}/test/map/prefetch.test.cpp
${PROJECT_SOURCE_DIR}/test/map/transform.test.cpp
${PROJECT_SOURCE_DIR}/test/math/clamp.test.cpp
${PROJECT_SOURCE_DIR}/test/math/minmax.test.cpp
${PROJECT_SOURCE_DIR}/test/math/wrap.test.cpp
${PROJECT_SOURCE_DIR}/test/platform/settings.test.cpp
${PROJECT_SOURCE_DIR}/test/programs/symbol_program.test.cpp
${PROJECT_SOURCE_DIR}/test/renderer/backend_scope.test.cpp
${PROJECT_SOURCE_DIR}/test/renderer/image_manager.test.cpp
${PROJECT_SOURCE_DIR}/test/renderer/pattern_atlas.test.cpp
${PROJECT_SOURCE_DIR}/test/sprite/sprite_loader.test.cpp
${PROJECT_SOURCE_DIR}/test/sprite/sprite_parser.test.cpp
${PROJECT_SOURCE_DIR}/test/src/mbgl/test/fixture_log_observer.cpp
${PROJECT_SOURCE_DIR}/test/src/mbgl/test/getrss.cpp
${PROJECT_SOURCE_DIR}/test/src/mbgl/test/sqlite3_test_fs.cpp
${PROJECT_SOURCE_DIR}/test/src/mbgl/test/stub_file_source.cpp
${PROJECT_SOURCE_DIR}/test/src/mbgl/test/test.cpp
${PROJECT_SOURCE_DIR}/test/src/mbgl/test/util.cpp
${PROJECT_SOURCE_DIR}/test/storage/asset_file_source.test.cpp
${PROJECT_SOURCE_DIR}/test/storage/database_file_source.test.cpp
${PROJECT_SOURCE_DIR}/test/storage/headers.test.cpp
${PROJECT_SOURCE_DIR}/test/storage/http_file_source.test.cpp
${PROJECT_SOURCE_DIR}/test/storage/local_file_source.test.cpp
${PROJECT_SOURCE_DIR}/test/storage/main_resource_loader.test.cpp
${PROJECT_SOURCE_DIR}/test/storage/offline.test.cpp
${PROJECT_SOURCE_DIR}/test/storage/offline_database.test.cpp
${PROJECT_SOURCE_DIR}/test/storage/offline_download.test.cpp
${PROJECT_SOURCE_DIR}/test/storage/online_file_source.test.cpp
${PROJECT_SOURCE_DIR}/test/storage/resource.test.cpp
${PROJECT_SOURCE_DIR}/test/storage/sqlite.test.cpp
${PROJECT_SOURCE_DIR}/test/style/conversion/conversion_impl.test.cpp
${PROJECT_SOURCE_DIR}/test/style/conversion/function.test.cpp
${PROJECT_SOURCE_DIR}/test/style/conversion/geojson_options.test.cpp
${PROJECT_SOURCE_DIR}/test/style/conversion/layer.test.cpp
${PROJECT_SOURCE_DIR}/test/style/conversion/light.test.cpp
${PROJECT_SOURCE_DIR}/test/style/conversion/property_value.test.cpp
${PROJECT_SOURCE_DIR}/test/style/conversion/stringify.test.cpp
${PROJECT_SOURCE_DIR}/test/style/conversion/tileset.test.cpp
${PROJECT_SOURCE_DIR}/test/style/expression/expression.test.cpp
${PROJECT_SOURCE_DIR}/test/style/expression/util.test.cpp
${PROJECT_SOURCE_DIR}/test/style/filter.test.cpp
${PROJECT_SOURCE_DIR}/test/style/properties.test.cpp
${PROJECT_SOURCE_DIR}/test/style/property_expression.test.cpp
${PROJECT_SOURCE_DIR}/test/style/source.test.cpp
${PROJECT_SOURCE_DIR}/test/style/style.test.cpp
${PROJECT_SOURCE_DIR}/test/style/style_image.test.cpp
${PROJECT_SOURCE_DIR}/test/style/style_layer.test.cpp
${PROJECT_SOURCE_DIR}/test/style/style_parser.test.cpp
${PROJECT_SOURCE_DIR}/test/text/bidi.test.cpp
${PROJECT_SOURCE_DIR}/test/text/calculate_tile_distances.test.cpp
${PROJECT_SOURCE_DIR}/test/text/cross_tile_symbol_index.test.cpp
${PROJECT_SOURCE_DIR}/test/text/formatted.test.cpp
${PROJECT_SOURCE_DIR}/test/text/get_anchors.test.cpp
${PROJECT_SOURCE_DIR}/test/text/glyph_manager.test.cpp
${PROJECT_SOURCE_DIR}/test/text/glyph_pbf.test.cpp
${PROJECT_SOURCE_DIR}/test/text/language_tag.test.cpp
${PROJECT_SOURCE_DIR}/test/text/local_glyph_rasterizer.test.cpp
${PROJECT_SOURCE_DIR}/test/text/quads.test.cpp
${PROJECT_SOURCE_DIR}/test/text/shaping.test.cpp
${PROJECT_SOURCE_DIR}/test/text/tagged_string.test.cpp
${PROJECT_SOURCE_DIR}/test/tile/custom_geometry_tile.test.cpp
${PROJECT_SOURCE_DIR}/test/tile/geojson_tile.test.cpp
${PROJECT_SOURCE_DIR}/test/tile/geometry_tile_data.test.cpp
${PROJECT_SOURCE_DIR}/test/tile/raster_dem_tile.test.cpp
${PROJECT_SOURCE_DIR}/test/tile/raster_tile.test.cpp
${PROJECT_SOURCE_DIR}/test/tile/tile_cache.test.cpp
${PROJECT_SOURCE_DIR}/test/tile/tile_coordinate.test.cpp
${PROJECT_SOURCE_DIR}/test/tile/tile_id.test.cpp
${PROJECT_SOURCE_DIR}/test/tile/vector_tile.test.cpp
${PROJECT_SOURCE_DIR}/test/util/async_task.test.cpp
${PROJECT_SOURCE_DIR}/test/util/dtoa.test.cpp
${PROJECT_SOURCE_DIR}/test/util/geo.test.cpp
${PROJECT_SOURCE_DIR}/test/util/grid_index.test.cpp
${PROJECT_SOURCE_DIR}/test/util/http_timeout.test.cpp
${PROJECT_SOURCE_DIR}/test/util/image.test.cpp
${PROJECT_SOURCE_DIR}/test/util/mapbox.test.cpp
${PROJECT_SOURCE_DIR}/test/util/memory.test.cpp
${PROJECT_SOURCE_DIR}/test/util/merge_lines.test.cpp
${PROJECT_SOURCE_DIR}/test/util/number_conversions.test.cpp
${PROJECT_SOURCE_DIR}/test/util/offscreen_texture.test.cpp
${PROJECT_SOURCE_DIR}/test/util/position.test.cpp
${PROJECT_SOURCE_DIR}/test/util/projection.test.cpp
${PROJECT_SOURCE_DIR}/test/util/run_loop.test.cpp
${PROJECT_SOURCE_DIR}/test/util/string.test.cpp
${PROJECT_SOURCE_DIR}/test/util/text_conversions.test.cpp
${PROJECT_SOURCE_DIR}/test/util/thread.test.cpp
${PROJECT_SOURCE_DIR}/test/util/thread_local.test.cpp
${PROJECT_SOURCE_DIR}/test/util/tile_cover.test.cpp
${PROJECT_SOURCE_DIR}/test/util/tile_range.test.cpp
${PROJECT_SOURCE_DIR}/test/util/timer.test.cpp
${PROJECT_SOURCE_DIR}/test/util/token.test.cpp
${PROJECT_SOURCE_DIR}/test/util/url.test.cpp
)
if(MBGL_WITH_OPENGL)
target_compile_definitions(
mbgl-test
PRIVATE MBGL_RENDER_BACKEND_OPENGL=1
)
endif()
if(WIN32 OR CMAKE_SYSTEM_NAME STREQUAL Android AND ANDROID_NATIVE_API_LEVEL VERSION_LESS 24)
message("Target platform does not support HTTP tests or dependencies not found.")
set(MBGL_TEST_HAS_TEST_SERVER 0)
else()
set(MBGL_TEST_HAS_TEST_SERVER 1)
target_sources(
mbgl-test
PRIVATE ${PROJECT_SOURCE_DIR}/test/src/mbgl/test/http_server.cpp
)
set_source_files_properties(
${PROJECT_SOURCE_DIR}/test/src/mbgl/test/http_server.cpp
PROPERTIES
COMPILE_FLAGS
-Wno-shadow
)
target_include_directories(
mbgl-test
PRIVATE ${PROJECT_SOURCE_DIR}/vendor/cpp-httplib
)
endif()
if(NOT DEFINED ENV{CI})
set(MBGL_TEST_BUILD_ON_CI 0)
else()
set(MBGL_TEST_BUILD_ON_CI 1)
endif()
target_compile_definitions(
mbgl-test
PRIVATE TEST_HAS_SERVER=${MBGL_TEST_HAS_TEST_SERVER} CI_BUILD=${MBGL_TEST_BUILD_ON_CI}
)
target_include_directories(
mbgl-test
PRIVATE
${PROJECT_SOURCE_DIR}/platform/default/include
${PROJECT_SOURCE_DIR}/platform/gfx/gl/src
${PROJECT_SOURCE_DIR}/src
${PROJECT_SOURCE_DIR}/test/src
)
target_include_directories(
mbgl-test
PUBLIC ${PROJECT_SOURCE_DIR}/include ${PROJECT_SOURCE_DIR}/test/include
)
include(${PROJECT_SOURCE_DIR}/vendor/googletest.cmake)
# Needed for testing private classes
get_target_property(MBGL_CORE_PRIVATE_LIBRARIES mbgl-core LINK_LIBRARIES)
target_link_libraries(
mbgl-test
PRIVATE
${MBGL_CORE_PRIVATE_LIBRARIES}
Mapbox::Base::Extras::args
Mapbox::Base::pixelmatch-cpp
mbgl-compiler-options
PUBLIC mbgl-core
)
target_link_libraries(
mbgl-test
PUBLIC mbgl-vendor-googletest
)
set_property(TARGET mbgl-test PROPERTY FOLDER Core)

View File

@@ -33,7 +33,7 @@ android {
externalNativeBuild {
cmake {
version '3.10.2'
path '../../../next/CMakeLists.txt'
path '../../../CMakeLists.txt'
}
}
buildTypes {