diff options
-rw-r--r-- | .travis.yml | 25 | ||||
-rw-r--r-- | Makefile | 17 | ||||
-rw-r--r-- | README.md | 8 | ||||
m--------- | ios/mapbox-gl-cocoa | 0 | ||||
-rw-r--r-- | mapboxgl.gyp | 1 | ||||
-rwxr-xr-x | setup-libraries.sh | 37 |
6 files changed, 55 insertions, 33 deletions
diff --git a/.travis.yml b/.travis.yml index d2d77a43bb..a2bf164c62 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,16 +1,23 @@ language: cpp -os: - - linux - - osx - -compiler: - - clang +matrix: + exclude: + - os: linux + include: + - os: linux + env: BUILDTYPE=Release + compiler: clang + - os: linux + env: BUILDTYPE=Debug + compiler: clang + - os: linux + env: BUILDTYPE=Release + compiler: gcc + - os: osx + env: BUILDTYPE=Debug + compiler: clang env: - matrix: - - BUILDTYPE=Release - - BUILDTYPE=Debug global: - secure: "bG4YYWMfl9API0MSRgmOaJrlGLv06tRg9KJNawBieZvBJbITPpxVGJZT3/l/SEJ+Rl15e2dRex4k+MGQlmT2SqPQxTEYWv1qxNigKPPcla7IWeNmWWqW8uVvFjdglojgBOK2k/xErVQtA4zDfi3mwSXH4DKwquXWsoEKmX2SV7M=" - secure: "Cbvap9ubVKgjPe3hUhI6JGeDZzBXHpOG9RaYKh+SdoIPhKnlJiNOYm1egomi+e4uqJInlFKuVHTw7Ng9Cun6Zm0jIxpkSchv1GpsR7hmB3UGnGed19Dw8121FwuUaktN+4YnbVlsyd+u8EHD3+h58t4eELrLrZolM4rS7DL6caA=" @@ -9,6 +9,12 @@ setup: config.gypi config.gypi: ./setup-libraries.sh +xlibs: + @./mapnik-packaging/osx/darwin_configure.sh osx + +ilibs: + @./mapnik-packaging/osx/darwin_configure.sh ios + # Builds the regular library mbgl: config.gypi mapboxgl.gyp node deps/run_gyp mapboxgl.gyp --depth=. -Goutput_dir=.. --generator-output=./build/mbgl -f make @@ -37,7 +43,7 @@ xtest: config.gypi clear_xcode_cache node ##### Makefile builds ########################################################## -# Builds the linux app with make. This is also used by Travis CI +# Builds the linux app with make. linux: config.gypi linux/mapboxgl-app.gyp node deps/run_gyp linux/mapboxgl-app.gyp --depth=. -Goutput_dir=.. --generator-output=./build/linux -f make $(MAKE) -C build/linux BUILDTYPE=$(BUILDTYPE) V=$(V) linuxapp @@ -71,14 +77,14 @@ clear_xcode_cache: fi # build Mac OS X project for Xcode -xproj-cli: config.gypi macosx/mapboxgl-app.gyp clear_xcode_cache node +xproj-cli: config.gypi xlibs macosx/mapboxgl-app.gyp clear_xcode_cache node deps/run_gyp macosx/mapboxgl-app.gyp --depth=. --generator-output=./build -f xcode xproj: xproj-cli open ./build/macosx/mapboxgl-app.xcodeproj # build iOS project for Xcode -iproj-cli: config.gypi ios/mapbox-gl-cocoa/app/mapboxgl-app.gyp clear_xcode_cache node +iproj-cli: config.gypi ilibs ios/mapbox-gl-cocoa/app/mapboxgl-app.gyp clear_xcode_cache node deps/run_gyp ios/mapbox-gl-cocoa/app/mapboxgl-app.gyp --depth=. --generator-output=./build -f xcode iproj: iproj-cli @@ -98,7 +104,8 @@ clean: clear_xcode_cache -rm -rf ./config.gypi distclean: clean - -rm -rf ./config.gypi - -rm -rf ./mapnik-packaging/osx/out/ + -rm -rf ./mapnik-packaging/osx/out/build-* + -rm -rf ./mapnik-packaging/osx/out/universal + -find ./mapnik-packaging/osx/out/packages -type d ! -name 'packages' -maxdepth 1 -exec rm -rf {} \; .PHONY: mbgl test linux @@ -53,6 +53,8 @@ To create projects, you can run: and settings storage. This is what is also being built on Linux. - `make linux`: Builds the Linux GLFW application with `make`. +Note that if you are doing iOS development as well, to toggle from iOS back to OS X, you will need to `make xproj` again. + Target OS: 10.9+ ## iOS @@ -74,6 +76,8 @@ This downloads all required dependencies, builds them and creates universal libr Lastly, `make iproj` to create and open an Xcode project with an iOS-specific view controller housing. +Note that if you are doing OS X development as well, to toggle from OS X back to iOS, you will need to `make iproj` again. + Target devices: iPhone 4 and above (4S, 5, 5c, 5s) and iPad 2 and above (3, 4, mini and/or retina). Target OS: 7.0+ @@ -85,9 +89,9 @@ Set the environment variable `MAPBOX_ACCESS_TOKEN` to your token. Ensure you have git and other build essentials: sudo apt-get update - sudo apt-get install git build-essential zlib1g-dev automake libtool xutils-dev make cmake pkg-config nodejs-legacy curl + sudo apt-get install git build-essential zlib1g-dev automake libtool xutils-dev make cmake pkg-config nodejs-legacy curl libuv-dev -Install a `-std=c++11` capable compiler +If you are running Ubuntu 13.10 or older, install a `-std=c++11` capable compiler: sudo add-apt-repository --yes ppa:ubuntu-toolchain-r/test sudo apt-get update diff --git a/ios/mapbox-gl-cocoa b/ios/mapbox-gl-cocoa -Subproject 8a315662b365566cb37b3c9f13da6d6730d0abd +Subproject 461024ae406fd98b7a27d3297298cf68284e32a diff --git a/mapboxgl.gyp b/mapboxgl.gyp index f389e7d48d..dcd89f3a76 100644 --- a/mapboxgl.gyp +++ b/mapboxgl.gyp @@ -196,6 +196,7 @@ 'xcode_settings': { 'SDKROOT': 'iphoneos', 'SUPPORTED_PLATFORMS':['iphonesimulator','iphoneos'], + 'ARCHS': [ "armv7", "armv7s", "arm64", "i386", "x86_64" ], 'TARGETED_DEVICE_FAMILY': '1,2', 'CODE_SIGN_IDENTITY': 'iPhone Developer', 'IPHONEOS_DEPLOYMENT_TARGET': '7.0', diff --git a/setup-libraries.sh b/setup-libraries.sh index 7d205ac4ec..7947efe494 100755 --- a/setup-libraries.sh +++ b/setup-libraries.sh @@ -51,7 +51,7 @@ set -u NODE=$(which node) NPM=$(which npm) -MP_HASH="8239a894fecdfc001016a4669bc5ca289763048f" +MP_HASH="c0fc970e52950a6f16e3172f1114e5a4ae1e0aa9" DIR_HASH=$(echo `pwd` | git hash-object --stdin) if [ ! -d 'mapnik-packaging/' ]; then git clone https://github.com/mapnik/mapnik-packaging.git @@ -67,9 +67,13 @@ export CXX11=true if [ ${UNAME} = 'Darwin' ]; then if [ ! -z "${TRAVIS:-}" ]; then - if aws s3 cp s3://${AWS_S3_BUCKET}/dependencies/build-cpp11-libcpp-universal_${MP_HASH}_${DIR_HASH}.tar.gz ./out/ ; then - rm -rf out/build-cpp11-libcpp-universal - tar -xzf out/build-cpp11-libcpp-universal_${MP_HASH}_${DIR_HASH}.tar.gz + if aws s3 cp s3://${AWS_S3_BUCKET}/dependencies/build-cpp11-libcpp-osx_${MP_HASH}_${DIR_HASH}.tar.gz ./out/ ; then + if aws s3 cp s3://${AWS_S3_BUCKET}/dependencies/build-cpp11-libcpp-ios_${MP_HASH}_${DIR_HASH}.tar.gz ./out/ ; then + rm -rf out/build-cpp11-libcpp-x86_64-macosx + rm -rf out/build-cpp11-libcpp-universal + tar -xzf out/build-cpp11-libcpp-osx_${MP_HASH}_${DIR_HASH}.tar.gz + tar -xzf out/build-cpp11-libcpp-ios_${MP_HASH}_${DIR_HASH}.tar.gz + fi fi fi @@ -99,12 +103,10 @@ export LIBUV_VERSION=0.10.28 if [ ! -f out/build-cpp11-libcpp-i386-iphonesimulator/lib/libuv.a ] ; then ./scripts/build_libuv.sh ; fi echo ' ...done' -# libs conflict with MacOSX build -# TODO: need to break apart targets -#source iPhoneSimulator64.sh -# if [ ! -f out/build-cpp11-libcpp-x86_64-iphonesimulator/lib/libpng.a ] ; then ./scripts/build_png.sh ; fi -# if [ ! -f out/build-cpp11-libcpp-x86_64-iphonesimulator/lib/libuv.a ] ; then ./scripts/build_libuv.sh ; fi -# echo ' ...done' +source iPhoneSimulator64.sh + if [ ! -f out/build-cpp11-libcpp-x86_64-iphonesimulator/lib/libpng.a ] ; then ./scripts/build_png.sh ; fi + if [ ! -f out/build-cpp11-libcpp-x86_64-iphonesimulator/lib/libuv.a ] ; then ./scripts/build_libuv.sh ; fi + echo ' ...done' source MacOSX.sh export LIBUV_VERSION=0.10.28 @@ -116,21 +118,22 @@ export LIBUV_VERSION=0.10.28 if [ ! -d out/build-cpp11-libcpp-x86_64-macosx/include/boost ] ; then ./scripts/build_boost.sh `pwd`/../../src/ `pwd`/../../include/ `pwd`/../../linux/ `pwd`/../../common/ ; fi echo ' ...done' +# setup iOS universal libs ./scripts/make_universal.sh if [ ! -z "${AWS_ACCESS_KEY_ID}" ] && [ ! -z "${AWS_SECRET_ACCESS_KEY}" ] ; then - tar -zcf out/build-cpp11-libcpp-universal_${MP_HASH}_${DIR_HASH}.tar.gz out/build-cpp11-libcpp-universal - aws s3 cp --acl public-read out/build-cpp11-libcpp-universal_${MP_HASH}_${DIR_HASH}.tar.gz s3://${AWS_S3_BUCKET}/dependencies/ + tar -zcf out/build-cpp11-libcpp-ios_${MP_HASH}_${DIR_HASH}.tar.gz out/build-cpp11-libcpp-universal + aws s3 cp --acl public-read out/build-cpp11-libcpp-ios_${MP_HASH}_${DIR_HASH}.tar.gz s3://${AWS_S3_BUCKET}/dependencies/ + tar -zcf out/build-cpp11-libcpp-osx_${MP_HASH}_${DIR_HASH}.tar.gz out/build-cpp11-libcpp-x86_64-macosx + aws s3 cp --acl public-read out/build-cpp11-libcpp-osx_${MP_HASH}_${DIR_HASH}.tar.gz s3://${AWS_S3_BUCKET}/dependencies/ fi fi cd ../../ -./configure \ ---pkg-config-root=`pwd`/mapnik-packaging/osx/out/build-cpp11-libcpp-universal/lib/pkgconfig \ ---boost=`pwd`/mapnik-packaging/osx/out/build-cpp11-libcpp-universal \ ---npm=$NPM \ ---node=$NODE + +# default to OS X build product symlinking +./mapnik-packaging/osx/darwin_configure.sh osx elif [ ${UNAME} = 'Linux' ]; then |