Planetary icon indicating copy to clipboard operation
Planetary copied to clipboard

build issues

Open burkhardm opened this issue 12 years ago • 6 comments

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

burkhardm avatar Aug 27 '13 21:08 burkhardm

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.

RandomEtc avatar Aug 27 '13 23:08 RandomEtc

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.

  • Home directories with a hyphen in the name do not work with the build setting you require of CINDER_PATH_(username)
  • Cinder requires libc++ as the C++ standard library, but the default compiler for Planetary (LLVM GCC 4.2) does not seem to allow this option to be set in Xcode. Changing the compiler and setting this to libc++ seems to work.
  • Other errors seem Cinder-specific, however Cinder builds successfully on its own so perhaps there is something else in the Planetary compiler settings I haven't noticed yet?
    • For example, cinder's URL.h "UrlLoadExc" function complains about the definition being too "lax" (adding a simple destructor quieted that).
    • cinder's Texture.h complains about "No matching function for call to 'make_shared' ".

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.

ChristopherDrum avatar Aug 28 '13 09:08 ChristopherDrum

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.

burkhardm avatar Aug 28 '13 09:08 burkhardm

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'

jjg avatar Sep 18 '13 18:09 jjg

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.

burkhardm avatar Sep 18 '13 19:09 burkhardm

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 :)

jjg avatar Sep 30 '13 13:09 jjg