Commit Graph

429 Commits

Author SHA1 Message Date
Minh Nguyễn
2893f39249 [android] Rename OS X SDK to macOS SDK in Android 4.1 release branch
Fixes #5382

Also renamed as many references to OS X as possible to macOS in documentation.
2016-06-16 16:15:45 -04:00
Konstantin Käfer
e2bcea90fc [core] use #pragma once instead of ifdef include guards 2016-05-25 21:35:37 +02:00
Bruno de Oliveira Abinader
60bce7014b [build] Restrict C++11 ABI check script for Linux 2016-05-24 19:26:27 +03:00
John Firebaugh
1f8de2be5c [build] Inline main.mk Android targets into Makefile 2016-05-23 21:33:17 -07:00
John Firebaugh
d5840beb47 [build] Inline main.mk linux and qt targets into Makefile 2016-05-23 20:29:14 -07:00
John Firebaugh
b611a6f5dc [build] Inline main.mk node targets into Makefile 2016-05-23 19:15:03 -07:00
John Firebaugh
c4ba219581 [build] Simplify control flow in main.mk 2016-05-23 18:26:54 -07:00
John Firebaugh
a8014dbe3f [build] Remove unnecessary exported variables 2016-05-23 17:38:11 -07:00
John Firebaugh
d378d1f823 [build] Avoid variable name coupling between main.mk and configure 2016-05-23 17:38:11 -07:00
John Firebaugh
58cd5cae12 [build] Avoid variable name coupling between main.mk and clang-tidy.sh 2016-05-23 17:36:20 -07:00
John Firebaugh
c6256de2e8 [build] Avoid variable name coupling between main.mk and collect-coverage.sh 2016-05-23 17:36:20 -07:00
John Firebaugh
f38f58f758 [build] Avoid variable name coupling between main.mk and configure.sh 2016-05-23 17:36:20 -07:00
Thiago Marcos P. Santos
6a9a8e2008 [build] Fix broken build on OSX 2016-05-10 14:41:04 +03:00
Thiago Marcos P. Santos
4213dc53dc [Qt] Use C++11 ABI packages
These were causing linking errors on more recent Linux distros.

Fixes #3123.
2016-05-10 11:36:56 +03:00
Bruno de Oliveira Abinader
433ca3026b [build] Fix parallel 'make linux' call 2016-05-04 18:12:56 +03:00
Bruno de Oliveira Abinader
fde981a4fc [build] Move Qt version define to configure.sh 2016-04-27 18:57:31 +03:00
Bruno de Oliveira Abinader
a083fcbd77 [Qt] Added qt-qml-app example 2016-04-27 17:36:35 +03:00
Bruno de Oliveira Abinader
72bcad210d [Qt] Added QQuickMapboxGL{,Renderer} 2016-04-27 17:36:35 +03:00
Thiago Marcos P. Santos
8b9f84d815 [Qt] Add toolchain support
Enables cross-compilation.
2016-04-25 16:44:28 +03:00
John Firebaugh
d77e35b686 [test] Run with --gtest_catch_exceptions=0 2016-04-22 15:53:18 -07:00
Thiago Marcos P. Santos
c8c69f1d2a [Qt] Build the Qt port 2016-04-20 20:55:51 +03:00
John Firebaugh
2d33ae5ed7 [ios, osx] Eliminate use of main.mk 2016-04-19 16:28:30 -07:00
Thiago Marcos P. Santos
301b4c7c4e [build] Use which instead of command
`command` is shell buitin on Linux.
2016-04-18 17:50:18 +03:00
Thiago Marcos P. Santos
87b27711d5 [build] Make run-glfw-app not working on Linux 2016-04-18 17:08:20 +03:00
Minh Nguyễn
b8c39667ff [ios] Moved SDK from gyp into Xcode project
Added a new Cocoa Touch dynamic framework target and Cocoa Touch static library target to the main iOS Xcode project. The targets are based on the templates provided by Xcode. They contain headers and source files in the darwin/ and ios/ subdirectories. Headers are explicitly marked public or project-internal instead of implicitly by subdirectory.

The SDK targets have a few dependencies that are managed by mason. Transform the config.gypi generated by configure into an .xcconfig file that Xcode uses to fill in compiler and linker flags.

Removed the iossdk target from platform.gypi and pared down the platform-lib target. make iproj opens the overall Xcode workspace instead of just the core project.

Resolved some warnings that are only now appearing because we’re using the standard warning and error flags instead of the pedantic and somewhat inappropriate flags that were forced by the gyp configuration files. Removed a console message informing developers of a long-ago deleted delegate method; the message was triggering a “selector not found” warning. Conditionalized some deprecated symbol usage that’s still needed for the static framework but not the dynamic framework, due to differing minimum deployment targets.

Added a build phase to the static library target that copies headers for use with the static library itself. This would allow us to potentially include a header in the dynamic framework but not the static library and vice-versa.

Updated the changelog to note that unused SVG files have been removed from the distribution.
2016-04-16 22:45:59 -07:00
John Firebaugh
be47e35a97 [ios, osx] The return of xcpretty, part II (#4676) 2016-04-11 16:45:14 -07:00
John Firebaugh
f964e40e7e [build] Refactor and simplify build system
* Main gyp files are now standardized as platform/<platform>/platform.gyp.
* Each platform gyp file defines appropriate loop_lib and headless_lib variables.
* Each platform gyp file includes mbgl.gypi, which defines base targets which may be useful to all platforms.
* CI targets are consistent across platforms: `make $(PLATFORM) && make test-$(PLATFORM)`.
* Renamed the "linux" test app to "glfw". It's now built in OS X CI.
* Android build flakiness is fixed.
* iOS CI builds the bench and iosapp targets.
* Mesa version is now in one place.
* CI scripts use bash "strict mode" and correct error handling.
* All build output goes to the build directory.
* Removed vestigial iOS/OS X/Android Travis scripts.
2016-04-07 18:01:02 -07:00
Konstantin Käfer
65acf35dcf [core] fix various compilation issues 2016-04-04 16:20:04 -07:00
John Firebaugh
409822633d [build] Fix/simplify ios, isim, and ibench targets 2016-04-04 11:32:42 -07:00
John Firebaugh
879382f724 [ios, osx] Replace libuv with native implementations 2016-04-01 09:26:54 -07:00
Bruno de Oliveira Abinader
bfd5ad3220 [gyp] Coverage only if BUILDTYPE=Debug and ENABLE_COVERAGE=1
Coverage compiler and linker flags are used only when (1) in debug build
and (2) with ENABLE_COVERAGE set to 1. Besides, because OS X's libtool
is unable to understand '--coverage', this linker flag is only used
genrating executable targets. Also, using 'link_settings' to specify
linker options and separate instructions for OSX and Linux.
2016-02-21 17:22:26 +02:00
Bruno de Oliveira Abinader
1dbfbfe7e3 [tests] Upload coverage reports to coveralls.io 2016-02-20 11:43:42 +02:00
Bruno de Oliveira Abinader
6792d78952 [tests] Use ENABLE_COVERAGE=1 envvar to enable coverage
This detaches coverage data collection from typical debug build.
2016-02-19 17:40:30 +02:00
Bruno de Oliveira Abinader
cdfe4e46aa [tests] Added coverage report target 'check'
Issuing 'make check' now collects unit tests coverage data and generates
a report in HTML.
2016-02-18 15:01:58 +02:00
John Firebaugh
13e2acbc75 [ios, osx] Consolidate remaining files in platform/{ios,osx} 2016-02-12 14:53:52 -08:00
Thiago Marcos P. Santos
9413c41ba3 [build] Build offline smoke test for Linux 2016-02-11 17:20:58 +02:00
Konstantin Käfer
2f06ca74e2 [core] move platform/gl.hpp to gl/gl.hpp 2016-02-08 12:50:00 +01:00
Bruno de Oliveira Abinader
7bd4745cf1 [core] Fix typo in version-specific host defaults path 2015-12-23 14:53:59 -04:00
Bruno de Oliveira Abinader
908f4d7eb1 [core] Fix build script paths 2015-12-23 14:02:24 -04:00
John Firebaugh
b60b6c47c0 [core] Merge SQLiteCache into the platform library
OfflineFileSource will depend on SQLite too.
2015-12-22 12:09:14 -08:00
John Firebaugh
3d37017c68 [ios, osx] Drop xcpretty
It's buggy and hides necessary diagnostics.
2015-12-21 16:59:35 -08:00
John Firebaugh
7a4e7376e1 Move platform scripts into platforms 2015-12-16 17:49:22 -08:00
John Firebaugh
13d5b18eba [android] Move into platform subdirectory 2015-12-16 14:52:29 -08:00
Minh Nguyễn
62412af6ab [osx] Only build osxapp on Travis
Building osxapp means building the SDK, so building the SDK independently is wasteful.

Fixes #3313.
2015-12-15 10:47:33 -08:00
Konstantin Käfer
95cef66e22 [core] change RapidJSON usage to use CrtAllocator and bump GeoJSON VT 2015-12-14 16:43:35 -08:00
Minh Nguyễn
e7d7add420 [ios] Strip OS X–specific APIs from iOS documentation
appledoc can’t understand conditional compilation. This is the best we can do until we move to Jazzy.
2015-12-13 17:26:53 -08:00
Minh Nguyễn
62e6c04c73 [osx] Align build settings with Xcode framework project template
In particular, -Os yields significant size improvements in Release.
2015-12-13 17:26:53 -08:00
Minh Nguyễn
47fb5e820b [osx] Moved Mapbox.{h,m} into framework proper; set version variables 2015-12-13 17:26:53 -08:00
Minh Nguyễn
df0511af18 [osx] Build framework based on static library 2015-12-13 17:26:53 -08:00
Minh Nguyễn
0cab7809eb [osx] Rewrote platform-osx and osxapp
platform-osx now vends a real NSView subclass, MGLMapView, that is readily embedded inside a Cocoa application for OS X. MGLMapView is backed by an NSOpenGLLayer for optimal performance and integration with other layer-backed views. It supports keyboard shortcuts and several gestures and hosts attribution, zooming, and rotation controls as subviews. osxapp is now a bona fide Cocoa application that embeds MGLMapView inside a XIB. osxapp has preferences and a share button for tight integration with custom styles.

Enabling asynchronous rendering would be more consistent with iOS but increases CPU usage so much, even when idle, that it isn’t worth any performance gain. The bigger issue is that VAOs aren’t being used.

make xpackage creates a static library similar to the one created by make ipackage. make clean cleans additional places where build output ends up.

The OS X minimum deployment target has been increased from 10.9 to 10.10. osxapp’s window has a full size content view, which requires 10.10. Lightweight generics require iOS 9+ and OS X 10.11 regardless, because it was only in that release that Foundation collection classes started adopting lightweight generics.

Shuffled files around and refactored annotations so that iOS and OS X share a good chunk of the annotations code, which now takes advantage of polymorphism. MGLMapView can now display annotations but cannot yet select them. In osxapp, a long press drops a pin, and so does the map view’s context menu.

Annotations have NSPopovers as callouts, and their view controllers can be customized. Annotation image alignment rects are respected for hit testing purposes and for positioning the callout anchor. Callouts in osxapp demonstrate the use of bindings to keep callouts in sync with underlying model objects.
2015-12-13 17:17:35 -08:00