fix 64-bit iOS builds

This commit is contained in:
Justin R. Miller
2014-09-17 18:26:33 -07:00
parent 65185ca377
commit 5788714e3b
5 changed files with 38 additions and 23 deletions

View File

@@ -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

View File

@@ -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+

View File

@@ -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',

View File

@@ -51,7 +51,7 @@ set -u
NODE=$(which node)
NPM=$(which npm)
MP_HASH="e741a075d28812e5d16b581e1540248fe19c52ce"
MP_HASH="eb8c6d7e6bd6adb42c232ed806b889f3e6825bb5"
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://mapbox-gl-testing/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://mapbox-gl-testing/dependencies/build-cpp11-libcpp-osx_${MP_HASH}_${DIR_HASH}.tar.gz ./out/ ; then
if aws s3 cp s3://mapbox-gl-testing/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
@@ -95,12 +99,10 @@ source iPhoneSimulator.sh
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
if [ ! -f out/build-cpp11-libcpp-x86_64-macosx/lib/libpng.a ] ; then ./scripts/build_png.sh ; fi
@@ -111,21 +113,22 @@ source MacOSX.sh
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://mapbox-gl-testing/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://mapbox-gl-testing/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://mapbox-gl-testing/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