Comments (23)
Bunch of approaches to this, but http://psellos.com/ios/iossim-command-line.html looks to be one of the freshest / most compelling / most self-contained.
from mapbox-gl-native.
Also https://github.com/phonegap/ios-sim comes recommended to me by @landonf, who wrote the original implementation. NPM-installable, too.
from mapbox-gl-native.
Oh yeah, this is gonna work great. Done.
sudo npm install ios-sim -g
from mapbox-gl-native.
This would be very cool. Didn't even think this was possible.
from mapbox-gl-native.
Almost building. Looking like this so far:
https://gist.github.com/incanus/1ac9408ce885b644d4b4#file-makefile-L31-L34
Error:
=== BUILD TARGET iosapp OF PROJECT llmr-app WITH THE DEFAULT CONFIGURATION (Release) ===
Check dependencies
target specifies product type 'com.apple.product-type.tool', but there's no such product type for the 'iphoneos' platform
** BUILD FAILED **
The following build commands failed:
Check dependencies
(1 failure)
make: *** [iapp] Error 65
from mapbox-gl-native.
Beyond this; blocking on libpng
Gyp failure now.
from mapbox-gl-native.
Latest: https://gist.github.com/incanus/8762364eb383ae384cb6
from mapbox-gl-native.
Latest fail w/ libpng
is related to dylibs:
ld: warning: ignoring file /usr/local/Cellar/libpng/1.5.17/lib/libpng15.dylib, file was built for x86_64 which is not the architecture being linked (armv7): /usr/local/Cellar/libpng/1.5.17/lib/libpng15.dylib
from mapbox-gl-native.
As noted by @springmeyer, we need to somehow build libpng
for ARM etc. Best approach is probably documenting this and leaving it up to the user to who needs to build/test on iOS. He's prepping some material to help me set this up.
from mapbox-gl-native.
I've documented in the readme in 8b4b91f. Not as clean as I'd like it, but should work. @incanus - Can you check what you have for iOS in when you have a chance so I can test if my universal png libs work okay?
from mapbox-gl-native.
@incanus I'm pretty sure that libpng already exists somewhere on iOS, likely buried in a Framework. Alternatively, we can move this to platform.hpp and use an iOS-native library to decode the PNGs.
from mapbox-gl-native.
Good call, I will look into that. It kind of rings a bell, but it would have to indeed be buried because I couldn't find it in the normal places.
from mapbox-gl-native.
No such luck.
How invasive is it to go the native decoding route? That would be really easy in native code. Do you foresee another external lib coming up soon that we'd have to deal with again anyway? (i.e. should we just figure out a pattern for custom-arch external libs?)
from mapbox-gl-native.
@springmeyer working through your Mapnik-based steps now. One note is you now need three arches for device: armv7
, armv7s
, and arm64
, as well as both i386
and x86_64
for simulator (64-bit simulator is now available).
I'm getting errors trying to write to /out
but I'll patch that up.
from mapbox-gl-native.
@incanus likely candidates for inclusion in the app are HarfBuzz, but not much beyond that. For HarfBuzz, we could substitute Core Text/TextKit, but it'll likely produce slightly different results.
from mapbox-gl-native.
Ok. Let me see how painful building my own libpng is. Again, this is just for us for now and in future, for people hacking on llmr, not end devs using, say, the Cocoa API.
from mapbox-gl-native.
Putting this into a do.sh
script instead of typing/pasting direct solved the /out
/ $BASH_SOURCE
problem, so I think I'm about set:
Architectures in the fat file: /Users/incanus/Documents/Projects/Mapbox/vector/llmr.native/mapnik-packaging/osx/out/build-cpp11-libcpp-universal/libpng16.a are: x86_64 armv7s armv7 i386 arm64
from mapbox-gl-native.
if we link to the core framework in the ios app, our lib will also get smaller
from mapbox-gl-native.
Ok I got a build working ok. For practicality, does it make sense to include the build scripts used from mapnik-packaging
along with the ios
directory in this project?
Here's my calling script that leads to a fat libpng
and a successful iOS app build:
https://gist.github.com/incanus/8913d9783e3bc0bab17d
from mapbox-gl-native.
Ok, test app is in master
. See ios/README.md
. I'll start cleaning up the actual functionality of it (mostly pinch gestures).
The ios-sim
thing is a little janky, plus per the README you should test on device anyway. Might work on that later, but it's low priority.
Took care of libpng
with ios/setup_libpng.sh
. Related: mapnik/mapnik-packaging#119
from mapbox-gl-native.
Nice work @incanus - sticking with external/fat libpng for now seems great for now - gets us running fast and helps create a framework for testing other external libs. But I agree with @kkaefer that ideally/long term we try to stay small/core and minimize external libs - I think it just may take some time to figure out the details while right now our focus should be on functionality and ensuring we are cross platform.
from mapbox-gl-native.
I'm still getting "building for iOS Simulator, but linking against dylib built for MacOSX file '/opt/X11/lib/libpng15.dylib' for architecture i386"
from mapbox-gl-native.
Ah sorry, I didn't run the ios setup script.
from mapbox-gl-native.
Related Issues (20)
- Map tiles not downloading to device HOT 5
- Android: can't call java.lang.String com.mapbox.geojson.GeoJson.type() on null object when adding trailing line behind location history
- Location component puck drifts on its own with no user movement after the map has been initialised for a few minutes
- Linux build fails on exception_ptr HOT 2
- Using GPU server to speed up the rendering of mapbox-gl-native on the server side
- attach MouseArea to MapParameter
- App crashes when trying to draw polyline by adding coordinates using onLocationChanged but works using hardcoded coordinates
- Unable to generate docs using javadoc HOT 1
- Shove / Tilt gesture unreliable on Android HOT 2
- MapBox, UserTrackingMode.follow when GPS is enabled (problem) HOT 1
- Archive repository
- What is the status of this engine ? is it still updated ?
- Unable to submit iOS app with mapbox static framework
- Syntax error while adding a filter to pre-exisiting filter in a fill layer using NSCompoundPredicate
- Fix build under MacOS Ventura SDK 13.3
- Stuck trying to install crossover app. HOT 1
- `cmake -DMBGL_WITH_QT=ON` fails with `_populate_Gui_plugin_properties Macro invoked with incorrect arguments for macro named: _populate_Gui_plugin_properties`.
- Build with GCC 13.1.1 fails with `geometry.hpp:9:24: error: found ‘:’ in nested-name-specifier, expected ‘::’` and subsequent errors `error: ‘FeatureType’ has not been declared`.
- queryRenderedFeatures does not respect the vertical order of layers HOT 1
- Display properties in glfw-linux-application
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mapbox-gl-native.