cooperhewitt / Planetary

the all new clean and UI callback enabled app formerly known as Kepler (AKA pollen-planets)
http://planetary.bloom.io/
BSD 3-Clause "New" or "Revised" License
200 stars 33 forks source link

build issues #232

Open burkhardm opened 11 years ago

burkhardm commented 11 years ago

Thank you very much for your efforts to publish, extend and maintain the source code of Planetary.

For a start, what Xcode, iOS SDK, architecture and Cinder version is required to successfully build and run Planetary?

I'm having issues to build Planetary with Xcode 4.6.3, iOS 6.1, armv7 armv7s and Cinder 0.8.5. I also tried Cinder 0.8.4 and 0.8.3. In the end I always get a link error "Undefined symbols for architecture armv7" or "Undefined symbols for architecture armv7s". For example the Flurry lib is missing armv7s support. See screenshot attached. link_error

RandomEtc commented 11 years ago

Hi @burkhardm - I confess that I haven't had a chance to compile Planetary since the last release, so it is very much presented as-is. I hope to find a moment soon, perhaps tonight, to get it up and running myself so I can better support curious people like you.

It was last compiled against the current master of https://github.com/bloomtime/Cinder with the XCode that was current at that time. I believe all the important settings are checked-in, but of course it's a constant battle to keep XCode projects current.

It may just be that the Flurry analytics stuff needs updating. I would also be OK with removing it from development builds with some #ifdefs.

Let me know if you try anything else - and thanks for your early interest! Hope to get this smoothed out soon.

ChristopherDrum commented 11 years ago

Firstly, a big thanks for the code release and congratulations on having your code become part of the Smithsonian. I think that's really incredible.

For the record, I am also having issues with building Planetary. This is with checking out the latest Planetary and Cinder 0.8.5, iOS 5.1 and 6.1, Xcode 4.6.2.

As for @burkhardm, Flurry is relatively notorious for that error message. Updating the Flurry library is 99% likely necessary. I see in my Flurry dev account that their library is up to version 4.2.3 where the .h file in Planetary is at 2.8.3.

burkhardm commented 11 years ago

Hi @RandomEtc, thank you for your prompt reply. I finally figured out what was missing for building Planetary.

The following settings were required for building Planetary with Xcode 4.6.3 and Cinder 0.8.5:

  1. Menu > Editor > Validate Settings > Update Settings (adds C++ Build Settings)
  2. Project > Targets > Planetary
  3. Build Settings > Architectures > Standard (armv7, armv7s)
  4. Build Settings > Build Active Architecture Only > No
  5. Build Settings > Valid Architectures > armv7
  6. Build Settings > iOS Deployment Target > iOS 5.0 (required for libc++)
  7. Build Settings > C++ Language Dialect > C++11
  8. Build Settings > C++ Standard Library > libc++
  9. Build Settings > Enable C++ Exceptions > Yes
  10. Build Settings > define CINDER_PATH_username
  11. Build Phases > Link Binary With Libraries > Add MobileCoreServices.framework
  12. Build Phases > Link Binary With Libraries > Add ImageIO.framework

@ChristopherDrum: Surprisingly, I didn't have to update the Flurry library by setting Valid Architectures to armv7. However, I had to comment out some older touch routines in BloomScene.cpp and GestureRecognizer.h. Please note, that this will lead to updates in the submodules.

jjg commented 11 years ago

Hi @burkhardm, thank you very much for this list!

I'm much closer to getting Planetary to build, but I'm still getting a few errors in GestureRecognizer.h. They are all "Semantic Issue", and an example is on line 54:

 No matching conversion for functional-style cast from 'std::vector<TouchEvent::Touch>' to 'cinder::app::TouchEvent'
burkhardm commented 11 years ago

Hi @jjg, you are very welcome. Well, I had the same semantic issue. Seems like the TouchEvent class of Cinder has changed with the new version. So for a start, I commented out all code lines for touch handling in BloomScene.cpp and GestureRecognizer.h. After that you should be able to build the project.

However, when I started the application it still crashed with EXC_BAD_ACCESS. I didn't have the time to figure this one out, yet.

jjg commented 11 years ago

Ah, thanks for the note on that @burkhardm.

I need to spend some heads-down time with our other iOS code soon so I'll schedule some time to play with this more after I've brushed up my iOS debugging skills :)