Commit Graph

24 Commits

Author SHA1 Message Date
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
Konstantin Käfer
8d711e9c80 [test] update test suite to include more comprehensive GeoJSON tests 2015-12-11 16:23:43 -08:00
Konstantin Käfer
da7b6bb8b9 [core] upgrade to GeoJSON VT 3.0.0 2015-12-10 12:54:58 -08:00
John Firebaugh
eb60131741 [core] Only android needs libzip 2015-12-01 20:16:06 -08:00
John Firebaugh
ed5eb9edc1 [test] Add pixelmatch; use in annotation tests 2015-11-25 15:57:37 -08:00
Mike Morris
79a5a96037 [core] mason geojsonvt-2.1.6.3
- [osx] set -fvisibility-inlines-hidden in gyp/common.gypi to silence
  mismatched visibility linker warnings
- [linux] set cxx_host in GYP_FLAGS to set -fabi-version=0 on gcc builds
  to use clang-built mason binaries
- [ios] update symbol visibility for iOS tests
- [ios] link libgeojsonvt.a in iOS tests xcodeproj
  - add libgeojsonvt.a to General -> Linked Frameworks and Libraries
  - add mason_packages (recursive) to Build Settings -> Library Search Path
- [ios] add libuv and geojsonvt first in iOS libtool smush to ensure symbols
  are found by later compilation units where they are undefined
2015-11-02 18:41:34 -05:00
Leith Bade
abf93c008b [core] Remove bundled styles.
Fixes #2239
2015-10-30 13:09:04 -07:00
Leith Bade
77b0e240a3 [android] [ios] [linux] [osx] Update many mason modules 2015-10-24 19:33:42 +11:00
Mike Morris
62595a9b39 [core] bump libuv to 1.7.5 across all platforms
UV_ASYNC_PARAMS and UV_TIMER_PARAMS for libuv <= 0.10 compatibility

use st_mtim.tv_sec in libuv > 0.10.x
2015-10-14 11:36:28 -04:00
John Firebaugh
ddc4a8193e Install gtest from mason 2015-10-02 10:17:16 -07:00
John Firebaugh
2066295e35 Install RapidJSON from mason 2015-10-01 11:40:47 -07:00
Mike Morris
b46c102eb0 mason variant@1.0 2015-09-30 15:34:40 -07:00
Konstantin Käfer
e6053aa547 Make build system architecture agnostic to remove Android special case 2015-08-04 14:08:58 +02:00
Justin R. Miller
dcbb5b2e4e manually handle GeoJSONVT for OS X 2015-06-17 15:52:00 -07:00
John Firebaugh
4db34bd9ef Don't do things that set -e in Travis's shell
Sourcing files that set flags bleed into Travis' wrapper script, which
messes with their workflow, e.g. preventing after_failure scripts from
triggering.

These changes fix that:

* Move exported variables from install.sh to setup.sh, so install.sh
  doesn't have to be sourced.
* Source setup.sh from run.sh, rather than directly from .travis.yml.

In addition, as a good practice, remove `set -e` etc. from setup.sh,
and add a comment not to add them back. It's the sourcing script's
responsibility to set these flags.
2015-05-13 15:21:56 -07:00
Mike Morris
3034d9d704 Revert "Revert "Merge pull request #1429 from mapbox/travis-setup""
This reverts commit 3ccb0b5610.

Conflicts:
	.travis.yml
2015-05-12 11:51:46 -04:00
Konstantin Käfer
f31b3d2ce5 build render binary 2015-05-12 15:15:05 +02:00
John Firebaugh
3ccb0b5610 Revert "Merge pull request #1429 from mapbox/travis-setup"
This reverts commit 9a233c7ed2, reversing
changes made to 642024af6d.
2015-05-11 22:03:46 -07:00
Mike Morris
8e15732954 drop unnecessary mason PATH and MASON_DIR exports from setup.sh 2015-05-07 16:08:10 -04:00
Mike Morris
6b90079139 break out setup.sh from run.sh
chmod +x

drop travis_helper from android and ios

source travis_helper.sh before_install

only run setup.sh if file exists

explicitly local paths

explicit if statement in before_install

source setup.sh
2015-05-07 15:50:46 -04:00
Konstantin Käfer
2b633cc51c build on Travis' sudo: false infrastructure 2015-04-28 10:43:13 +02:00