Giter VIP home page Giter VIP logo

Comments (23)

incanus avatar incanus commented on May 22, 2024

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.

incanus avatar incanus commented on May 22, 2024

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.

incanus avatar incanus commented on May 22, 2024

Oh yeah, this is gonna work great. Done.

sudo npm install ios-sim -g

from mapbox-gl-native.

springmeyer avatar springmeyer commented on May 22, 2024

This would be very cool. Didn't even think this was possible.

from mapbox-gl-native.

incanus avatar incanus commented on May 22, 2024

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.

incanus avatar incanus commented on May 22, 2024

Beyond this; blocking on libpng Gyp failure now.

from mapbox-gl-native.

incanus avatar incanus commented on May 22, 2024

Latest: https://gist.github.com/incanus/8762364eb383ae384cb6

from mapbox-gl-native.

incanus avatar incanus commented on May 22, 2024

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.

incanus avatar incanus commented on May 22, 2024

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.

springmeyer avatar springmeyer commented on May 22, 2024

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.

kkaefer avatar kkaefer commented on May 22, 2024

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

incanus avatar incanus commented on May 22, 2024

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.

incanus avatar incanus commented on May 22, 2024

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.

incanus avatar incanus commented on May 22, 2024

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

kkaefer avatar kkaefer commented on May 22, 2024

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

incanus avatar incanus commented on May 22, 2024

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.

incanus avatar incanus commented on May 22, 2024

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.

kkaefer avatar kkaefer commented on May 22, 2024

if we link to the core framework in the ios app, our lib will also get smaller

from mapbox-gl-native.

incanus avatar incanus commented on May 22, 2024

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.

incanus avatar incanus commented on May 22, 2024

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.

springmeyer avatar springmeyer commented on May 22, 2024

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.

kkaefer avatar kkaefer commented on May 22, 2024

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.

kkaefer avatar kkaefer commented on May 22, 2024

Ah sorry, I didn't run the ios setup script.

from mapbox-gl-native.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.