Commit Graph

40 Commits

Author SHA1 Message Date
Jason Wray
05026b704a [build, darwin] Disable Xcode indexing-while-compiling on CI 2019-03-04 15:59:01 -08:00
Jason Wray
b56a7181af [darwin, docs] Use shared mapbox/jazzy-theme submodule 2019-02-01 13:39:36 -08:00
Konstantin Käfer
6f60ccf08e [build] generate header maps instead of -files.txt 2019-01-09 10:26:53 +01:00
Jason Wray
29c6647e13 [core, build] Disable GCC_GENERATE_DEBUGGING_SYMBOLS for Release 2018-12-05 12:34:39 -05:00
Konstantin Käfer
a0b8f01c1b [build] use newer compiler versions for some builds 2018-11-28 14:49:44 +01:00
Jason Wray
add7e3b9f3 [darwin, build] Fix RelWithDebInfo name in cmake Xcode config 2018-10-26 13:25:22 -04:00
Ander Conselvan de Oliveira
b9ef805ae0 [build] Run cmake again when source file lists changes
Since commit bded6c65d5 ([build] use plain text files for file lists
to simplify integration with other build systems) adding new source
files would not cause cmake to be re-ran since it doesn't automatically
track the plain text files. Fix that by explicitly adding those files to
CMAKE_CONFIGURE_DEPENDS.
2018-09-14 13:36:47 +03:00
Konstantin Käfer
1e454642c8 [build] allow WITH_EGL for macOS as well (SwiftShader) and enable EGL for GLFW 2018-08-27 14:07:40 -07:00
Konstantin Käfer
bded6c65d5 [build] use plain text files for file lists to simplify integration with other build systems 2018-08-20 19:11:31 +02:00
Konstantin Käfer
036a75037a [build] also generate debugging symbols for Release builds in Xcode 2018-08-20 17:50:46 +02:00
John Firebaugh
19325b0293 [build] More diagnostics for npm install failures 2018-08-16 11:08:48 -07:00
Konstantin Käfer
9d72bf8a1a [build] make sure we're also updating the mapbox-ios-events submodule 2018-08-14 17:03:46 -07:00
Konstantin Käfer
6e06e55b95 WIP: use expected<T, E> for passing on errors 2018-08-14 17:03:46 -07:00
Vladimir Kondrashov
070f50d6b0 Update mbgl.cmake 2018-08-10 09:20:52 -04:00
John Firebaugh
9e3a4a2646 [ios, macos] Enable link-time optimization for iOS release builds (#12502) 2018-07-31 15:35:17 -07:00
John Firebaugh
7e5b054566 [build] See what happened when npm install fails 2018-07-20 13:22:25 -07:00
Konstantin Käfer
93d37282d9 [build] organize CMake targets in folders for IDEs 2018-07-17 18:36:17 +02: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
Jason Wray
7d050c4cda [ios, build] Remove obsolete UI tests, KIF and OHHTTPStubs submodules 2018-05-24 19:11:28 -04:00
Konstantin Käfer
d1a266b3e6 [node] allow building all ABIs at once 2018-05-22 11:17:01 +02:00
Jesse Bounds
2e3145db47 Replace embedded telem implementation with mapbox-mobile-events library (#10698)
* [ios] Introduce mobile events dependency

This adds the mobile events dependency including the events library's namespaced header file so that the related compiled symbols are prefixed to make them specific to the maps SDK. A pre-compiled header file is added so that the namespaced header file is added in all places where it is needed (most importantly every events library file).

* [ios] Use new events library for telemetry events

This makes the following significant changes:

Refactors the MGLMapboxEvents singleton to delegate internally to an instance of MMEEventsManager that it keeps for itself. The MGLMapboxEvents public API is refactored to reflect this. Note: MGLMapboxEvents continues to handle checking for opt out

Uses that new events API in MGLMapboxEvents to send all telem events (and turnstile)

All embedded certs are removed since the new telem library uses public key info pinning

Legacy telemetry utility classes for location and networking are removed since those are implemented in the telem library

* [ios] Update submodules initialized by cmake

We no longer bring in SMCalloutView as a submodule so it is removed.
We now vendor the telemetry events library as a submodule so it is added.

* Update mapbox-mobile-events

* Update mobile events lib

* Set events options with MGL user defaults values

For options that historically could be set with user defaults in the Maps SDK, collect them and set the appropriate property values in the new events library.

Also, check the existence of two new optional configuration values MGLTelemetryAccessToken and MGLTelemetryBaseURL so that the events endpoint and access token can be configured and the access token can easily be set dynamically and apart from the access token for the maps API.

MGLTelemetryBaseURL replaces the legacy MGLTelemetryTestServerURL. This is ok because this value was never intended to be used by client applications. The new name better reflects the fact that the URL can be changed to any backend stack, not just a test server.

Because it is possible for the configuration values to be read from user defaults before the events manager is fully set up, this also adds a local cache for the baseURL and accessToken values so that they can be stored and applied once it is time to setup the the events manager.

* Update mapbox-mobile-events

mapbox-mobile-events was forced pushed to include https://github.com/mapbox/mapbox-events-ios/pull/28

* Rename MGLMapboxEvents singleton access method

Manager is not in the name of the class. Just call it an instance.

* Update mapbox-mobile-events

* Add comments about config value loading

* Guard against creating events for IB

* Refactor user defaults update handler

This updates the handling logic for user defaults to break apart config changes that require a check for pausing or resuming the events lib’s telemetry collection from config changes that can happen with no update to the pause/resume state.

It also ports the optimization from https://github.com/mapbox/mapbox-gl-native/pull/10803 so that the call to pause and resume is not performed unless the user defaults store has new values that have not yet been applied to the events library.

* Update mapbox-mobile-events

* Rename events submodule folder

* Fix incorrect events library refs

* Update mapbox-mobile-events

* Update user user agent id value

This value aligns with our schme of {source-sdk-platform} and will be used by the events library in the user agent and vendorid.

* Update mapbox-mobile-events

Pin to v3.0.0 (d522b18)

* Improve code comments

* [ios] Fixed a broken file reference to MGLTelemetryConfig.
2018-02-20 09:54:11 -05:00
Thiago Marcos P. Santos
f391271532 [windows][build] Make nodejs/npm optional 2018-01-08 22:58:20 +02:00
Jason Wray
f4021c4a2e [build] Add new warnings suggested by Xcode 9
Also removes duplicate unknown pragmas warning.
2017-12-15 20:12:40 -05:00
Konstantin Käfer
64c75b442c [build] split out DefaultFileSource and dependents to a separate target
We don't want to link it into the node bindings, so keep it in a separate target
2017-09-28 13:48:36 -04:00
Anand Thakker
817ed1417e Initialize Xcode project build settings (#9777) 2017-08-16 08:29:05 -04:00
Asheem Mamoowala
8c75001443 [core][ios] Use explicit submodule update for ios target (#8973)
Closes #8750
2017-05-18 13:48:26 -07:00
Konstantin Käfer
e26308f1b9 [macos] expose link flags via mbgl-core target 2017-04-06 18:31:34 +02:00
Konstantin Käfer
a9896fa01b [build] generate .xcconfig files with configure_file
We previously used incremental `file(WRITE ...)` commands that gradually recreated the file on every CMake invocation. This sometimes lead to Xcode parsing a partially written file, which in turn breaks building dependend targets. Instead, we're now using a templated configuration file, which ensure that the file is created in one go and hopefully reduces the race condition between CMake and Xcode's automatic project updating.
2017-03-28 21:24:12 +02:00
Konstantin Käfer
5b24b14741 [build] use node-cmake 2.x
- Removes need to run `npm install` before invoking cmake
2017-02-22 18:22:18 +01:00
John Firebaugh
94a3c272ff [core] Update gl-js; fix $id filters with GeoJSON source 2017-02-08 19:07:53 -06:00
Konstantin Käfer
bb931505c5 [build] Remove Mason submodule in favor of CMake mason 2017-02-08 19:07:16 +01:00
John Firebaugh
150b938b49 [build, ios, macos] Simplify version portion of user agent string
The X.Y.Z version portion was unreliable, as it pulled from the latest tag regardless of platform. Set version to 0.0.0 and retrieve only the hash, which allows us to drop the node/npm dependency.
2017-02-08 10:59:59 -06:00
Konstantin Käfer
dbd7186bc5 [build] Run submodule update on every build, and npm install when the package.json changed
We're now running a submodule update as part of every build, and when the project files are generated. We also run an npm install whenever the package.json was updated, both during project generation and as part of every build.
2017-01-19 10:50:07 +01:00
Konstantin Käfer
bf7ab7ba2b [build] reduce framework size for Release builds on macOS 2016-11-22 15:54:26 +01:00
Konstantin Käfer
51391740bf [build] convert build-shaders script from Python to Node.js 2016-08-16 15:29:34 +02:00
Konstantin Käfer
131cd8a547 [build] Fix Qt4 build on OS X 2016-08-05 11:42:22 +02:00
Konstantin Käfer
95b6d48b71 [build] use cmake script bundled with Mason 2016-08-05 11:42:22 +02:00
Thiago Marcos P. Santos
821e58fdc1 [build] Build Qt with CMake 2016-08-05 11:42:22 +02:00
Thiago Marcos P. Santos
4e5fc0d7a4 [build] Do not redefine MASON_PLATFORM 2016-08-05 11:42:22 +02:00
Konstantin Käfer
692fe1f3ff [build] switch to CMake
This is very much a work in progress.
2016-08-05 11:42:22 +02:00