Commit Graph

167 Commits

Author SHA1 Message Date
Thiago Marcos P. Santos
ee1d700a9b [core] Add platform abstractions for utils::now()
Some platforms might require special permissions or custom APIs
to access the current time of the day.
2020-04-20 19:03:46 +03:00
Thiago Marcos P. Santos
c4cb026fa4 [core] Fix readability-redundant-member-init errors in header files
As reported by clang-tidy-8.
2020-04-17 13:36:50 +03:00
Thiago Marcos P. Santos
62b543e44a [core] Fix google-explicit-constructor errors
As reported by clang-tidy-8.
2020-03-30 23:37:44 +03:00
Thiago Marcos P. Santos
dc510e44c0 [default] Build a no-op number formatter for old ICUs
This has been causing too many build problems and it is
a major source of complains because of different ICU interfaces.
2020-03-05 01:58:34 +02:00
Thiago Marcos P. Santos
47f2b20435 [build] Remove unused files
Buck build is no longer needed, neither is the previous
CMake buildsystem.
2020-02-07 20:12:44 +02:00
Thiago Marcos P. Santos
f7fef70e9d [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.
2020-02-07 20:12:44 +02:00
Juha Alanen
ce59c56f9f [build] Disable TSAN checks for the test HTTP server in CI builds 2020-01-30 13:52:09 +02:00
Alexander Shalamov
879c44f661 [core] Modularize FileSource codebase (#15768)
* [core] Introduce FileSourceManager and use it for default platform impl

  - Add `FileSourceManager` interface that provides access to `FileSource`
    instances and means of registering / unregistering `FileSource` factories
  - Split `DefaultFileSource` into smaller parts
  - Add `DatabaseFileSource` interface and it's default implementation
  - Remove inter-dependencies between concrete `FileSource` classes

* [build] Add files to next build system

* [core] Add generic property setters / getters

* [core] Remove setOnlineStatus from OnlineFileSource interface

* [core] Hide threading implementation details from DatabaseFileSource interface

* [core] Make DB file source methods virtual

* [core] Add documentation for DatabaseFileSource and rename one method

* [core] Use simple callback instead of ActorRef

* [core] Remove ActorRef from OnlineFileSource public header

* [core] Add callback to FileSource::forward async API

* [core] Pass OfflineRegionDefinition by value

* [core] Update tests to use modular file sources

* [core] Update unit tests

* [core] Update unit tests after rebase

* [core] Backport low prio fix for cached requests

* [core] Backport pack database

* [core] Return removed factory from unRegisterFileSourceFactory

* [core] Rename shadowed args in onlinefilesource

* [core] Remove simple std::function callback aliases

* [core] Expose online file source property keys in public header file

* [test-runner] Add proxy file source test runner

* [cache] Update mbgl-cache utility to use new file source

* [metrics] Rebaseline binary size metrics

* [offline] Update offline utility

* [core] Update changelog
2020-01-13 10:57:23 +02:00
Mikko Pulkki
4176b28a77 [Linux] Remove CA certificate bundle 2019-11-11 10:11:49 +02:00
Mikko Pulkki
0ca96fd8a4 [render-test] Implement fps benchmarking tests (#15803) 2019-10-22 12:13:55 +03:00
Alexander Shalamov
e5cdc4ecf3 [core][android][darwin] Move number format to i18n 2019-09-26 10:55:47 +03:00
Alexander Shalamov
9c8295c6a6 [core][android][darwin] Move platform specific Collator impls from expression
Platform specific Collator implementations should not be part of an expression APIs.
2019-09-26 10:55:47 +03:00
Alexander Shalamov
30ffbe9b8d [core][android] Remove unaccent from platform interfaces
The unaccent is used only within collator, thus, there is no
need to have separate platform interface for it.
2019-09-26 10:55:47 +03:00
Thiago Marcos P. Santos
3888af2460 [build] Move compression to platform
It depends on platform specific compression library.
2019-09-20 15:27:52 +03:00
Thiago Marcos P. Santos
8ee6cfa8fb [build] Cosmetics on vendor packages
- Add include guards on all the files
- Add a vendor package for sqlite and gtest
- Use relative paths to all the files
2019-09-17 12:28:55 +03:00
Thiago Marcos P. Santos
102a07cc63 [build] Remove CXX11 flag
No longer needed after we vendorized so many deps.
2019-09-11 11:33:34 +03:00
Tom Payne
d2368bef2e [linux] Fix run test instructions 2019-09-06 11:01:36 +03:00
Juha Alanen
0ca8ea6f16 [core] Add number-format expression 2019-06-27 15:51:22 +03:00
Aleksandar Stojiljkovic
3cd8c6c1fd [core] Refactor HeadlessFrontend/Backend: GL separation and factory (#14692)
Refactor out HeadlessFrontend and HeadlessBackend gl independent code to gfx.
Define gl::HeadlessBackend as subclass, instantiated by gfx::HeadlessBackend static factory method.
GL dependent tests are still using gl::HeadlessBackend directly (not through gfx).
2019-05-21 07:37:49 +03:00
Thiago Marcos P. Santos
06f1dc48a2 [core] Make the BackgroundScheduler a singleton
- Do not carry it over everywhere as parameter, it is a shared
  instance anyway and the lifecycle is pretty much the app lifecycle
  from the moment we instantiate a map.
- Rename to BackgroundScheduler because it is a Scheduler that will
  do tasks in the background, we don't make assumptions if it is a
  thread pool or a single thread.
- Most importantly, remove the dependency from `core` on `platform`.
2019-05-10 14:20:38 +03:00
Konstantin Käfer
66c020034e [core] refactor RendererBackend 2019-04-05 11:49:17 +02:00
Bruno de Oliveira Abinader
d5868d3da8 [core] Remove file source from public Map ctor 2019-03-20 21:30:08 +02:00
Thiago Marcos P. Santos
65cec8be34 [android,darwin,ios,qt] Remove unused code
These files are no longer needed after the new GL abstraction.
2019-02-12 19:42:08 +02:00
Thiago Marcos P. Santos
690833ef92 [core] Switch to the new OpenGL abstraction
This patch will make Mapbox GL Core never use OpenGL
directly. We should consider locking into OpenGL ES 2.0
to simplify the code path and remove #ifdefs.
2019-02-12 19:42:08 +02:00
Thiago Marcos P. Santos
470b01847d [android,linux,darwin,qt] Load OpenGL for the platform
These loaders will provide pointers to the platform implementation
of OpenGL. On Android, Linux and Darwin, we simply link with the
OpenGL implementation that is expected to exist on the platform.

Qt has its own GL loader, so we just connect the dots.
2019-02-12 19:42:08 +02:00
Alexander Shalamov
2da9d483ac [android] Implement google benchmark runner for Android platform 2019-01-11 09:49:36 +02:00
Konstantin Käfer
1d8235f5b8 [build] rework platform/default directory and add -files.txt for vendored libs 2018-12-14 11:03:03 +01:00
Jordan Kiley
7cbd31e456 Switch code coverage system to CodeCov (#13297) 2018-11-08 10:56:44 -08:00
Mikhail Pozdnyakov
ffdeef3a26 Refer corresponding LayerFactory instance from the Layer::Impl 2018-11-07 16:34:20 +02:00
Thiago Marcos P. Santos
69960afb8d [build] Add build system for submodules
Vendorize the submodules and a simple CMake build
system for all them. The dependencies will inherit
compilation options for core.

The goal is to make Mapbox GL Core completely self
contained with a simple offline build.
2018-10-31 18:19:28 +02:00
ear7h
7bf29bbf5a [linux] add map_snapshotter.*pp to linux core build 2018-10-09 11:15:19 +03:00
Konstantin Käfer
071129bf61 [linux,qt] Remove remainder of WebP support 2018-09-13 13:27:44 +02:00
Konstantin Käfer
4a3c4edb59 [android] add support for gnustl 2018-09-11 11:43:54 +02:00
Konstantin Käfer
e51eb0fc23 [build] use vendored version of ICU 2018-09-05 12:26:15 +02:00
Konstantin Käfer
679d66f36d [build] use vendored SQLite for LTO benefits + custom compile flags 2018-09-05 12:26:15 +02:00
Ivo van Dongen
fcb68041d5 [offline] Add option to pass geojson input file 2018-08-20 22:49:01 +03:00
John Firebaugh
ca9ba9cb43 [build] Move all mason_use statements to a single file
So its checksum can be used in a CI cache key name.
2018-07-13 11:50:39 -07:00
John Firebaugh
840a5cf120 [build] Record binary size via GitHub check 2018-07-03 14:03:32 -07:00
Chris Loer
35256c6e5b [core] Default "collator" implementation
- Based on nunicode
 - Not locale-aware
 - Used by linux and Qt builds
2018-07-03 10:03:05 -07:00
Chris Loer
251f5e605f [core, vendor] Create vendored nunicode 1.8.
- Version bump to 1.8 necessary for "unaccent" functionality
- Qt now depends on nunicode, ruling out use of precompiled binaries
2018-07-03 10:03:05 -07:00
Antonio Zugaldia
36c6a8ea79 [linux] Documentation update to reflect Ubuntu 18.04 packages (#12272)
* [linux] update libllvm version for ubuntu 18.04

* [linux] cmake 3.x is now bundled with ubuntu 18.04
2018-07-02 09:10:08 -04:00
Bruno de Oliveira Abinader
192bee256b [build] GLFW version 2018-06-27-0be4f3f 2018-06-27 17:23:49 +03:00
Konstantin Käfer
9ebb504164 [node] hide all symbols from the Node.js addons 2018-06-04 10:43:21 +02:00
Konstantin Käfer
d232a7a6f3 [linux] link EGL backend against SwiftShader to avoid Mesa dependency 2018-06-04 10:43:21 +02:00
Konstantin Käfer
500cf3864e [linux] load cURL dynamically for wider compatibility 2018-06-04 10:43:21 +02:00
Konstantin Käfer
0b305aca7d [linux] statically link the C++ standard library
Most of the STL is header-only anyway, and statically linking it only has a small overhead. On the other hand, it allows us to build more portable executables.
2018-06-04 10:43:21 +02:00
John Firebaugh
e423ef5609 [linux] Don't compile linux mbgl-loop-uv against node headers
Previously, `target_include_directories(mbgl-loop-uv PUBLIC ${NODEJS_INCLUDE_DIRS})` always applied. Compiles were working by accident because node is always installed in CI. Instead, split and inline loop-uv.cmake contents: linux uses `target_add_mason_package(mbgl-loop-uv PUBLIC libuv)`, node uses `target_include_directories(mbgl-loop-node PUBLIC ${NODEJS_INCLUDE_DIRS})`.
2018-05-04 07:19:36 -07:00
John Firebaugh
9a4b806fa8 [docs] Make per-platform installation docs self-contained
I've seen several issues where users followed platform-specific install docs, but were unaware of additional prerequisites spelled out in the top-level INSTALL.md. So let's try making each platform's installation documentation self contained.
2018-04-30 13:10:31 -07:00
Konstantin Käfer
1dd5e405c1 [build] Remove unused files, and cleanup directories 2018-01-03 01:07:41 +01:00
Bruno de Oliveira Abinader
6a838eeffb [build] Replace boost_libprogram_options with args 2017-12-18 16:40:29 +02:00