iPhone support?


#99

I’m an Android guy, but I’m really interested to see Panda running on an Iphone. So good luck!


#100

Here is the latest error:


env MACOSX_DEPLOYMENT_TARGET=10.6 PATH="/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++-4.2 -arch armv6 -mcpu=arm1176jzf-s -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk -fpascal-strings -miphoneos-version-min=4.3  -o Opt1-OSX-iPhoneOS/check_adler Opt1-OSX-iPhoneOS/check_adler_check_adler.o    -L../downloader/Opt1-OSX-iPhoneOS -L../express/Opt1-OSX-iPhoneOS -L../pandabase/Opt1-OSX-iPhoneOS -L/Users/gongpei/Projects/panda3d/built/lib -L/Users/gongpei/Projects/panda3d/built/lib -lp3downloader -lp3express -lp3express -lp3pandabase -lp3pandabase -lp3interrogatedb -lp3prc -lp3dconfig -lp3dtoolutil -lp3dtoolbase -lp3pystub -lp3prc -lz  -framework Foundation
Undefined symbols for architecture armv6:
  "_Dtool_TypedReferenceCount", referenced from:
      MemoryUsagePointers::get_python_pointer(int) constin libp3express.a(p3express_p3express_composite1.o)
  "_Dtool_TypedObject", referenced from:
      MemoryUsagePointers::get_python_pointer(int) constin libp3express.a(p3express_p3express_composite1.o)
  "_Dtool_ReferenceCount", referenced from:
      MemoryUsagePointers::get_python_pointer(int) constin libp3express.a(p3express_p3express_composite1.o)
ld: symbol(s) not found for architecture armv6

I’m guessing these symbols should be in dtoolbase?


#101

So the error is in downloadutils. I’m not sure what this is for. Can I just turn it off for iPhone? If so, how would I do that.

thanks
colin


#102

You should not put built/bin on your PATH. This makes the installer use the copy of interrogate that is in there, which will not work because it is compiled for a different architecture.

Instead, leave your system Panda3D SDK somewhere on the PATH. Just keep in mind that interrogate depends on other Panda3D libraries in dtool that, when added to the DYLD_LIBRARY_PATH, may interfere with your build.

Also keep in mind that the “dtool” tree contains libraries that need to be linked into other Panda libraries later in the process, so compiling the “dtool” tree for Mac OS X instead of iPhoneOS to solve the interrogate issue will not work. You really need two separate versions of Panda3D; the iPhoneOS ones you are building, and the one that is used by utilities that need to be run during the build (mainly interrogate), which could simply be an existing installation of the Panda3D SDK for Mac OS X.

For the record, I do not recommend compiling with an optimize level of 1 when building for such a low-end machine; it’s usually best to squeeze out every drop of performance to make it run decently. Optimize 1 will be exceedingly slow on the iPhone.

The errors you’re getting indicate that the _igate.o file for libp3express didn’t get properly linked in. Can you show me the compilation steps for a clean build of the express directory?


#103

Doing a clean build now. I turned off interrogate and python support adding:

#define INTERROGATE_PYTHON_INTERFACE
#define HAVE_PYTHON false

in my Config.pp

I also didn’t have an installed Python when first attempting this, so I deleted everything and started anew without trying to turn off interrogate and python (which could be the cause of this igate issue)

colin


#104

This error must have been related to either my attempt at disabling interrogate (maybe dtool wasn’t cleaned?).

I suppose I can look into the original error more if you are interested, but for now with python/interrogate enabled I have a complete build.

Thanks for the heads up on the OPTIMIZE setting but 1 is intended since I’m statically linking panda to my app and I want as much debugging as possible until I push out a final build. :slight_smile:


#105

Sorry for all the handholding, but I have another question.

Here is my current Config.pp


#define OPTIMIZE 1
#define BUILD_IPHONE iPhoneOS
#define HAVE_GLES 1
#define GLES_LIBS
#define HAVE_FREETYPE
#define FREETYPE_CONFIG
#define COMPILE_IN_DEFAULT_FONT

#define HAVE_OPENGL
#define HAVE_GL

#define HAVE_OPENSSL
#define LINK_ALL_STATIC

I’ve turned off open gl since glstuff would not compile, but I then get errors in included files present in the glstuff directory:


cd ./src/iphonedisplay && make all
env MACOSX_DEPLOYMENT_TARGET=10.5 PATH="/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++-4.2 -ftemplate-depth-30 -arch armv6 -mcpu=arm1176jzf-s -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk -fpascal-strings -miphoneos-version-min=2.0 -c -o Opt1-OSX-iPhoneOS/p3iphonedisplay_config_iphonedisplay.o -I. -I/Users/colinn/Projects/panda3d/panda -I../../metalibs/panda -I../audio -I../chan -I../char -I../collide -I../cull -I../device -I../dgraph -I../display -I../downloader -I../dxml -I../event -I../express -I../framework -I../glesgsg -I../glstuff -I../gobj -I../grutil -I../gsgbase -I../linmath -I../mathutil -I../movies -I../nativenet -I../net -I../pandabase -I../parametrics -I../pgraph -I../pgraphnodes -I../pgui -I../pipeline -I../pnmimage -I../pnmimagetypes -I../pstatclient -I../putil -I../recorder -I../text -I../tform -I/Users/colinn/Projects/panda3d/built/include -I/usr/include/python2.6 -I/usr/include/python2.6   -D__IPHONE_OS_VERSION_MIN_REQUIRED=20000 -Wall -gdwarf-2 -fPIC config_iphonedisplay.mm
env MACOSX_DEPLOYMENT_TARGET=10.5 PATH="/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++-4.2 -ftemplate-depth-30 -arch armv6 -mcpu=arm1176jzf-s -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk -fpascal-strings -miphoneos-version-min=2.0 -c -o Opt1-OSX-iPhoneOS/p3iphonedisplay_viewController.o -I. -I/Users/colinn/Projects/panda3d/panda -I../../metalibs/panda -I../audio -I../chan -I../char -I../collide -I../cull -I../device -I../dgraph -I../display -I../downloader -I../dxml -I../event -I../express -I../framework -I../glesgsg -I../glstuff -I../gobj -I../grutil -I../gsgbase -I../linmath -I../mathutil -I../movies -I../nativenet -I../net -I../pandabase -I../parametrics -I../pgraph -I../pgraphnodes -I../pgui -I../pipeline -I../pnmimage -I../pnmimagetypes -I../pstatclient -I../putil -I../recorder -I../text -I../tform -I/Users/colinn/Projects/panda3d/built/include -I/usr/include/python2.6 -I/usr/include/python2.6   -D__IPHONE_OS_VERSION_MIN_REQUIRED=20000 -Wall -gdwarf-2 -fPIC viewController.mm
env MACOSX_DEPLOYMENT_TARGET=10.5 PATH="/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++-4.2 -ftemplate-depth-30 -arch armv6 -mcpu=arm1176jzf-s -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk -fpascal-strings -miphoneos-version-min=2.0 -c -o Opt1-OSX-iPhoneOS/p3iphonedisplay_eaglView.o -I. -I/Users/colinn/Projects/panda3d/panda -I../../metalibs/panda -I../audio -I../chan -I../char -I../collide -I../cull -I../device -I../dgraph -I../display -I../downloader -I../dxml -I../event -I../express -I../framework -I../glesgsg -I../glstuff -I../gobj -I../grutil -I../gsgbase -I../linmath -I../mathutil -I../movies -I../nativenet -I../net -I../pandabase -I../parametrics -I../pgraph -I../pgraphnodes -I../pgui -I../pipeline -I../pnmimage -I../pnmimagetypes -I../pstatclient -I../putil -I../recorder -I../text -I../tform -I/Users/colinn/Projects/panda3d/built/include -I/usr/include/python2.6 -I/usr/include/python2.6   -D__IPHONE_OS_VERSION_MIN_REQUIRED=20000 -Wall -gdwarf-2 -fPIC eaglView.mm
In file included from ../glstuff/glTextureContext_src.h:63,
                 from ../glstuff/glstuff_src.h:36,
                 from ../glesgsg/glesgsg.h:111,
                 from iPhoneGraphicsWindow.h:21,
                 from eaglView.mm:22:
../glstuff/glTextureContext_src.I: In constructor ‘GLESTextureContext::GLESTextureContext(PreparedGraphicsObjects*, Texture*, int)’:
../glstuff/glTextureContext_src.I:32: error: ‘GL_NONE_OES’ was not declared in this scope
make[1]: *** [Opt1-OSX-iPhoneOS/p3iphonedisplay_eaglView.o] Error 1

I’ll start looking into this error now, but if you know the problem I’d appreciate a solution to save me some time. :slight_smile:


#106

Has something has changed in the API:

Marks-iMac-2:panda colinn$ grep -Rn "GL_NONE_OES" /Developer//Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/System/Library/Frameworks/OpenGLES.framework/*
Marks-iMac-2:panda colinn$ grep -Rn "GL_NONE" /Developer//Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/System/Library/Frameworks/OpenGLES.framework/*
/Developer//Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/System/Library/Frameworks/OpenGLES.framework/Headers/ES2/gl.h:489:#define GL_NONE 

How should I wrap this? Use HAVE_GLES?


#107

Not sure where that GL_NONE is supposed to be defined, so for now I just set it to 0


#define GL_NONE 0 // GL_NONE_OES

Next error is here:

void IPhoneGraphicsWindow::
close_window() {
  //  system_close_window();

  WindowProperties properties;
  properties.set_open(false);
  system_changed_properties(properties);

//  release_system_resources(false);
  _gsg.clear();
  [color=red]_active = false;
  GraphicsWindow::close_window();
}

_active isn’t found so I replaced it with set_active(false)


#108

Looks like direct is a little out of date:

cd ./src/showbase && make all
env MACOSX_DEPLOYMENT_TARGET=10.5 PATH="/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++-4.2 -ftemplate-depth-30 -arch armv6 -mcpu=arm1176jzf-s -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk -fpascal-strings -miphoneos-version-min=2.0 -c -o Opt1-OSX-iPhoneOS/p3showbase_showBase_assist.o -I. -I/Users/colinn/Projects/panda3d/direct -I../directbase -I/Users/colinn/Projects/panda3d/built/include -I/Users/colinn/Projects/panda3d/built/include -I/usr/include/python2.6   -D__IPHONE_OS_VERSION_MIN_REQUIRED=20000 -Wall -gdwarf-2 -fPIC showBase_assist.mm
showBase_assist.mm:7:27: error: AppKit/AppKit.h: No such file or directory
showBase_assist.mm: In function ‘void activate_osx_application()’:
showBase_assist.mm:17: error: ‘NSApplication’ was not declared in this scope
showBase_assist.mm:17: error: ‘YES’ was not declared in this scope

#109

So, does panda 3D games run on iphone now ?


#110

I think they have rendered since 2009, I don’t know if there is anything there for input or sound (although I guess you could just use openAL)

I tried building the iPhoneSimulator but got some linker errors in interrogate. I’m doing a clean, statically linked, release build for iPhoneOS to see how large pview is.

EDIT:

pview comes in at around 30 megabytes, which is rather large. I’ll be looking into whether or not I can get rid of some libraries.


#111

Thank you for the information. :slight_smile:


#112

I don’t know what libraries exist in the iphone realm, but there’s a list of libraries and what they do in this thread: panda3d.org/forums/viewtopic … 15&start=0
On Windows/Linux/Mac you can save tons of space by excluding some of them,


#113

Any ideas on how to get the library sizes down? I turned off most everything:

Config.pp


#define HAVE_P3D_RTDIST


#define HAVE_TINYDISPLAY
#define HAVE_EIGEN
#define HAVE_ODE
#define HAVE_NET
#define HAVE_EGG
#define HAVE_PNG
#define HAVE_JPEG
#define HAVE_VIDEO4LINUX
#define HAVE_TIFF
#define HAVE_SGI_RGB 
#define HAVE_TGA 
#define HAVE_IMG 
#define HAVE_SOFTIMAGE_PIC 
#define HAVE_BMP 
#define HAVE_PNM 
#define HAVE_TAR
#define HAVE_FFTW
#define HAVE_SQUISH
#define HAVE_BDB
#define HAVE_CG
#define HAVE_CGGL
#define HAVE_CGDDX8
#define HAVE_CGDX9
#define HAVE_CGDX10
#define HAVE_VRPN
#define HAVE_HELIX
#define HAVE_ZLIB
#define HAVE_GL
#define HAVE_MESA
#define HAVE_SDL
#define HAVE_X11
#define HAVE_XF86DGA
#define HAVE_XRANDR
#define HAVE_XCURSOR
#define HAVE_WGL
#define HAVE_DX8
#define HAVE_DX9
#define HAVE_OPENCV
#define HAVE_ODE
#define HAVE_AWESOMIUM
#define HAVE_PHYSX
#define HAVE_SPEEDTREE
#define HAVE_WX
#define HAVE_FOCLLADA
#define HAVE_COLLADA14DOM
#define HAVE_COLLADA15DOM
#define HAVE_ASSIMP
#define HAVE_ARTOOLKIT

#define OPTIMIZE 4
#define BUILD_IPHONE iPhoneOS
#define HAVE_GLES 1 
#define GLES_LIBS
#define HAVE_FREETYPE
#define FREETYPE_CONFIG
#define COMPILE_IN_DEFAULT_FONT

#define HAVE_OPENGL
//#define GL_IPATH
//#define GL_FRAMEWORK
//#define GL_LIBS
#define HAVE_GL

#define HAVE_OPENSSL
#define LINK_ALL_STATIC yes

And here are the sizes I get:


-rwxr-xr-x  1 colinn  staff   289544 24 Apr 15:48 libp3audio.a
-rwxr-xr-x  1 colinn  staff    30344 24 Apr 15:48 libp3cftalk.a
-rwxr-xr-x  1 colinn  staff  1149616 24 Apr 15:48 libp3chan.a
-rwxr-xr-x  1 colinn  staff   449096 24 Apr 15:48 libp3char.a
-rwxr-xr-x  1 colinn  staff  1447216 24 Apr 15:48 libp3collide.a
-rwxr-xr-x  1 colinn  staff   724288 24 Apr 15:21 libp3cppParser.a
-rwxr-xr-x  1 colinn  staff   113496 24 Apr 15:48 libp3cull.a
-rwxr-xr-x  1 colinn  staff     6296 24 Apr 15:21 libp3dconfig.a
-rwxr-xr-x  1 colinn  staff   331352 24 Apr 15:48 libp3device.a
-rwxr-xr-x  1 colinn  staff   160184 24 Apr 15:48 libp3dgraph.a
-rwxr-xr-x  1 colinn  staff  2043568 24 Apr 15:48 libp3display.a
-rwxr-xr-x  1 colinn  staff   320808 24 Apr 15:48 libp3distort.a
-rwxr-xr-x  1 colinn  staff   603896 24 Apr 15:48 libp3downloader.a
-rwxr-xr-x  1 colinn  staff      672 24 Apr 15:21 libp3dtool.a
-rwxr-xr-x  1 colinn  staff    80080 24 Apr 15:21 libp3dtoolbase.a
-rwxr-xr-x  1 colinn  staff    42640 24 Apr 15:21 libp3dtoolconfig.a
-rwxr-xr-x  1 colinn  staff   305496 24 Apr 15:21 libp3dtoolutil.a
-rwxr-xr-x  1 colinn  staff   414688 24 Apr 15:48 libp3dxml.a
-rwxr-xr-x  1 colinn  staff  3464008 24 Apr 14:00 libp3egg.a
-rwxr-xr-x  1 colinn  staff   627464 24 Apr 14:00 libp3egg2pg.a
-rwxr-xr-x  1 colinn  staff   816808 24 Apr 15:48 libp3event.a
-rwxr-xr-x  1 colinn  staff  3057496 24 Apr 15:48 libp3express.a
-rwxr-xr-x  1 colinn  staff   428736 24 Apr 15:48 libp3framework.a
-rwxr-xr-x  1 colinn  staff   422264 24 Apr 15:48 libp3glesgsg.a
-rwxr-xr-x  1 colinn  staff     1936 24 Apr 15:48 libp3glstuff.a
-rwxr-xr-x  1 colinn  staff  5369864 24 Apr 15:48 libp3gobj.a
-rwxr-xr-x  1 colinn  staff  1365856 24 Apr 15:48 libp3grutil.a
-rwxr-xr-x  1 colinn  staff    69120 24 Apr 15:48 libp3gsgbase.a
-rwxr-xr-x  1 colinn  staff   261672 24 Apr 15:21 libp3interrogatedb.a
-rwxr-xr-x  1 colinn  staff   138560 24 Apr 15:48 libp3iphonedisplay.a
-rwxr-xr-x  1 colinn  staff  2979168 24 Apr 15:48 libp3linmath.a
-rwxr-xr-x  1 colinn  staff  1751576 24 Apr 15:48 libp3mathutil.a
-rwxr-xr-x  1 colinn  staff   246872 24 Apr 15:48 libp3movies.a
-rwxr-xr-x  1 colinn  staff   233576 24 Apr 15:48 libp3nativenet.a
-rwxr-xr-x  1 colinn  staff   578616 24 Apr 13:59 libp3net.a
-rwxr-xr-x  1 colinn  staff   134224 24 Apr 15:48 libp3openal_audio.a
-rwxr-xr-x  1 colinn  staff     1832 24 Apr 15:48 libp3pandabase.a
-rwxr-xr-x  1 colinn  staff   984744 24 Apr 15:48 libp3parametrics.a
-rwxr-xr-x  1 colinn  staff  1228808 24 Apr 15:48 libp3particlesystem.a
-rwxr-xr-x  1 colinn  staff  7923568 24 Apr 15:48 libp3pgraph.a
-rwxr-xr-x  1 colinn  staff   994880 24 Apr 15:48 libp3pgraphnodes.a
-rwxr-xr-x  1 colinn  staff  1011664 24 Apr 15:48 libp3pgui.a
-rwxr-xr-x  1 colinn  staff   938248 24 Apr 15:48 libp3physics.a
-rwxr-xr-x  1 colinn  staff   346848 24 Apr 15:48 libp3pipeline.a
-rwxr-xr-x  1 colinn  staff   647624 24 Apr 15:48 libp3pnmimage.a
-rwxr-xr-x  1 colinn  staff    39152 24 Apr 15:48 libp3pnmimagetypes.a
-rwxr-xr-x  1 colinn  staff   246800 24 Apr 15:21 libp3prc.a
-rwxr-xr-x  1 colinn  staff   139616 24 Apr 15:48 libp3pstatclient.a
-rwxr-xr-x  1 colinn  staff  2182544 24 Apr 15:48 libp3putil.a
-rwxr-xr-x  1 colinn  staff    10760 24 Apr 15:21 libp3pystub.a
-rwxr-xr-x  1 colinn  staff   231320 24 Apr 15:48 libp3recorder.a
-rwxr-xr-x  1 colinn  staff    35032 24 Apr 15:48 libp3skel.a
-rwxr-xr-x  1 colinn  staff   963856 24 Apr 15:48 libp3text.a
-rwxr-xr-x  1 colinn  staff   893048 24 Apr 15:48 libp3tform.a
-rwxr-xr-x  1 colinn  staff  7232016 24 Apr 14:00 libp3tinydisplay.a
-rwxr-xr-x  1 colinn  staff   102880 24 Apr 15:48 libp3tinyxml.a
-rwxr-xr-x  1 colinn  staff    45288 24 Apr 15:48 libp3vision.a
-rwxr-xr-x  1 colinn  staff     5912 24 Apr 15:48 libpanda.a
-rwxr-xr-x  1 colinn  staff     4528 24 Apr 14:00 libpandaegg.a
-rwxr-xr-x  1 colinn  staff     4296 24 Apr 15:48 libpandaexpress.a
-rwxr-xr-x  1 colinn  staff     4392 24 Apr 15:48 libpandafx.a
-rwxr-xr-x  1 colinn  staff     2248 24 Apr 15:48 libpandagles.a
-rwxr-xr-x  1 colinn  staff     4600 24 Apr 15:48 libpandaphysics.a

libp3graph is close to 8 MB which is about the size I wanted in total for final app.

Looking at the components of libp3graph we can see that the majority looks to be igate generated stuff:


-rw-r--r--  1 colinn  staff  7923568 24 Apr 15:35 libp3pgraph.a
-rw-r--r--  1 colinn  staff  2222433 24 Apr 15:33 libp3pgraph.in
-rw-r--r--  1 colinn  staff  7762381 24 Apr 15:33 libp3pgraph_igate.cxx
-rw-r--r--  1 colinn  staff  4069288 24 Apr 15:35 libp3pgraph_igate.o
-rw-r--r--  1 colinn  staff   441284 24 Apr 15:31 p3pgraph_nodePath.o
-rw-r--r--  1 colinn  staff   463516 24 Apr 15:32 p3pgraph_p3pgraph_composite1.o
-rw-r--r--  1 colinn  staff   811832 24 Apr 15:32 p3pgraph_p3pgraph_composite2.o
-rw-r--r--  1 colinn  staff   920308 24 Apr 15:33 p3pgraph_p3pgraph_composite3.o
-rw-r--r--  1 colinn  staff   882092 24 Apr 15:33 p3pgraph_p3pgraph_composite4.o

interrogate is interesting but this 7 meg c++ file it generated is a little hard to swallow. Is there an easy way to have more granularity over what you want interrogate to generate without needing to #ifdef?


#114

Without Python I have sizes like this

bin dir:


-rwxr-xr-x  1 colinn  staff   1550732 24 Apr 16:57 interrogate
-rwxr-xr-x  1 colinn  staff    588156 24 Apr 16:57 interrogate_module
-rwxr-xr-x  1 colinn  staff  10498684 24 Apr 17:10 iphone_pview
-rwxr-xr-x  1 colinn  staff    790196 24 Apr 17:10 multify
-rwxr-xr-x  1 colinn  staff    765116 24 Apr 16:57 parse_file
-rwxr-xr-x  1 colinn  staff    598392 24 Apr 16:54 ppremake
-rwxr-xr-x  1 colinn  staff  10208084 24 Apr 17:10 pview
-rwxr-xr-x  1 colinn  staff    592228 24 Apr 16:57 test_interrogate
Lib dir:


-rwxr-xr-x  1 colinn  staff    86392 24 Apr 17:10 libp3audio.a
-rwxr-xr-x  1 colinn  staff    30344 24 Apr 17:10 libp3cftalk.a
-rwxr-xr-x  1 colinn  staff   656840 24 Apr 17:10 libp3chan.a
-rwxr-xr-x  1 colinn  staff   334072 24 Apr 17:10 libp3char.a
-rwxr-xr-x  1 colinn  staff   930120 24 Apr 17:10 libp3collide.a
-rwxr-xr-x  1 colinn  staff   724328 24 Apr 16:57 libp3cppParser.a
-rwxr-xr-x  1 colinn  staff   107912 24 Apr 17:10 libp3cull.a
-rwxr-xr-x  1 colinn  staff     6296 24 Apr 16:57 libp3dconfig.a
-rwxr-xr-x  1 colinn  staff   228160 24 Apr 17:10 libp3device.a
-rwxr-xr-x  1 colinn  staff   125384 24 Apr 17:10 libp3dgraph.a
-rwxr-xr-x  1 colinn  staff  1022792 24 Apr 17:10 libp3display.a
-rwxr-xr-x  1 colinn  staff   202224 24 Apr 17:10 libp3distort.a
-rwxr-xr-x  1 colinn  staff   220352 24 Apr 17:10 libp3downloader.a
-rwxr-xr-x  1 colinn  staff      672 24 Apr 16:57 libp3dtool.a
-rwxr-xr-x  1 colinn  staff    79808 24 Apr 16:57 libp3dtoolbase.a
-rwxr-xr-x  1 colinn  staff      688 24 Apr 16:57 libp3dtoolconfig.a
-rwxr-xr-x  1 colinn  staff   301136 24 Apr 16:57 libp3dtoolutil.a
-rwxr-xr-x  1 colinn  staff    98488 24 Apr 17:10 libp3dxml.a
-rwxr-xr-x  1 colinn  staff   370928 24 Apr 17:10 libp3event.a
-rwxr-xr-x  1 colinn  staff   513296 24 Apr 17:10 libp3express.a
-rwxr-xr-x  1 colinn  staff   428736 24 Apr 17:10 libp3framework.a
-rwxr-xr-x  1 colinn  staff   422264 24 Apr 17:10 libp3glesgsg.a
-rwxr-xr-x  1 colinn  staff     1936 24 Apr 17:10 libp3glstuff.a
-rwxr-xr-x  1 colinn  staff  2400000 24 Apr 17:10 libp3gobj.a
-rwxr-xr-x  1 colinn  staff   826288 24 Apr 17:10 libp3grutil.a
-rwxr-xr-x  1 colinn  staff    23952 24 Apr 17:10 libp3gsgbase.a
-rwxr-xr-x  1 colinn  staff   229944 24 Apr 16:57 libp3interrogatedb.a
-rwxr-xr-x  1 colinn  staff   137992 24 Apr 17:10 libp3iphonedisplay.a
-rwxr-xr-x  1 colinn  staff   168048 24 Apr 17:10 libp3linmath.a
-rwxr-xr-x  1 colinn  staff   309688 24 Apr 17:10 libp3mathutil.a
-rwxr-xr-x  1 colinn  staff   108944 24 Apr 17:10 libp3movies.a
-rwxr-xr-x  1 colinn  staff    28536 24 Apr 17:10 libp3nativenet.a
-rwxr-xr-x  1 colinn  staff   134224 24 Apr 17:10 libp3openal_audio.a
-rwxr-xr-x  1 colinn  staff     1832 24 Apr 17:10 libp3pandabase.a
-rwxr-xr-x  1 colinn  staff   518288 24 Apr 17:10 libp3parametrics.a
-rwxr-xr-x  1 colinn  staff   502952 24 Apr 17:10 libp3particlesystem.a
-rwxr-xr-x  1 colinn  staff  3774728 24 Apr 17:10 libp3pgraph.a
-rwxr-xr-x  1 colinn  staff   687640 24 Apr 17:10 libp3pgraphnodes.a
-rwxr-xr-x  1 colinn  staff   570320 24 Apr 17:10 libp3pgui.a
-rwxr-xr-x  1 colinn  staff   306424 24 Apr 17:10 libp3physics.a
-rwxr-xr-x  1 colinn  staff   115544 24 Apr 17:10 libp3pipeline.a
-rwxr-xr-x  1 colinn  staff   190704 24 Apr 17:10 libp3pnmimage.a
-rwxr-xr-x  1 colinn  staff    39152 24 Apr 17:10 libp3pnmimagetypes.a
-rwxr-xr-x  1 colinn  staff   246776 24 Apr 16:57 libp3prc.a
-rwxr-xr-x  1 colinn  staff    63024 24 Apr 17:10 libp3pstatclient.a
-rwxr-xr-x  1 colinn  staff   725816 24 Apr 17:10 libp3putil.a
-rwxr-xr-x  1 colinn  staff    10760 24 Apr 16:57 libp3pystub.a
-rwxr-xr-x  1 colinn  staff   171080 24 Apr 17:10 libp3recorder.a
-rwxr-xr-x  1 colinn  staff     8280 24 Apr 17:10 libp3skel.a
-rwxr-xr-x  1 colinn  staff   484568 24 Apr 17:10 libp3text.a
-rwxr-xr-x  1 colinn  staff   487896 24 Apr 17:10 libp3tform.a
-rwxr-xr-x  1 colinn  staff   102880 24 Apr 17:10 libp3tinyxml.a
-rwxr-xr-x  1 colinn  staff    16032 24 Apr 17:10 libp3vision.a
-rwxr-xr-x  1 colinn  staff     2440 24 Apr 17:10 libpanda.a
-rwxr-xr-x  1 colinn  staff     1984 24 Apr 17:10 libpandaexpress.a
-rwxr-xr-x  1 colinn  staff     2152 24 Apr 17:10 libpandafx.a
-rwxr-xr-x  1 colinn  staff     2248 24 Apr 17:10 libpandagles.a
-rwxr-xr-x  1 colinn  staff     2288 24 Apr 17:10 libpandaphysics.a

10 megs for pview is an improvement, but we should be able to get it smaller.


#115

Try dynamic linking instead of static linking. If you link statically, then pview will contain the code of all the Panda libraries it depends on; no wonder it’s so big.


#116

I think apple requires statically linked apps. I’m not entirely sure how dynamic linking works but don’t the required libraries get linked in at runtime anyways (net the same footprint).

For reference, here are the sizes I have when using dynamic linking:

-rwxr-xr-x  1 colinn  staff  937488 25 Apr 10:45 interrogate
-rwxr-xr-x  1 colinn  staff   26580 25 Apr 10:45 interrogate_module
-rwxr-xr-x  1 colinn  staff   30564 25 Apr 11:04 iphone_pview
-rwxr-xr-x  1 colinn  staff   57980 25 Apr 11:04 multify
-rwxr-xr-x  1 colinn  staff  483664 25 Apr 10:45 parse_file
-rwxr-xr-x  1 colinn  staff  598392 24 Apr 16:54 ppremake
-rwxr-xr-x  1 colinn  staff   45604 25 Apr 11:04 pview
-rwxr-xr-x  1 colinn  staff   36808 25 Apr 10:45 test_interrogate
-rwxr-xr-x  1 colinn  staff    86392 24 Apr 17:10 libp3audio.a
-rwxr-xr-x  1 colinn  staff    65152 25 Apr 11:04 libp3audio.dylib
-rwxr-xr-x  1 colinn  staff    30344 24 Apr 17:10 libp3cftalk.a
-rwxr-xr-x  1 colinn  staff    23908 25 Apr 11:04 libp3cftalk.dylib
-rwxr-xr-x  1 colinn  staff   656840 24 Apr 17:10 libp3chan.a
-rwxr-xr-x  1 colinn  staff   438664 25 Apr 11:04 libp3chan.dylib
-rwxr-xr-x  1 colinn  staff   334072 24 Apr 17:10 libp3char.a
-rwxr-xr-x  1 colinn  staff   251720 25 Apr 11:04 libp3char.dylib
-rwxr-xr-x  1 colinn  staff   930120 24 Apr 17:10 libp3collide.a
-rwxr-xr-x  1 colinn  staff   706620 25 Apr 11:04 libp3collide.dylib
-rwxr-xr-x  1 colinn  staff   738040 25 Apr 10:45 libp3cppParser.a
-rwxr-xr-x  1 colinn  staff   107912 24 Apr 17:10 libp3cull.a
-rwxr-xr-x  1 colinn  staff    65392 25 Apr 11:04 libp3cull.dylib
-rwxr-xr-x  1 colinn  staff     6296 24 Apr 16:57 libp3dconfig.a
-rwxr-xr-x  1 colinn  staff     9564 25 Apr 10:45 libp3dconfig.dylib
-rwxr-xr-x  1 colinn  staff   228160 24 Apr 17:10 libp3device.a
-rwxr-xr-x  1 colinn  staff   170252 25 Apr 11:04 libp3device.dylib
-rwxr-xr-x  1 colinn  staff   125384 24 Apr 17:10 libp3dgraph.a
-rwxr-xr-x  1 colinn  staff    81492 25 Apr 11:04 libp3dgraph.dylib
-rwxr-xr-x  1 colinn  staff  1022792 24 Apr 17:10 libp3display.a
-rwxr-xr-x  1 colinn  staff   774040 25 Apr 11:04 libp3display.dylib
-rwxr-xr-x  1 colinn  staff   202224 24 Apr 17:10 libp3distort.a
-rwxr-xr-x  1 colinn  staff   195716 25 Apr 11:04 libp3distort.dylib
-rwxr-xr-x  1 colinn  staff   220352 24 Apr 17:10 libp3downloader.a
-rwxr-xr-x  1 colinn  staff   157792 25 Apr 11:04 libp3downloader.dylib
-rwxr-xr-x  1 colinn  staff      672 24 Apr 16:57 libp3dtool.a
-rwxr-xr-x  1 colinn  staff     8304 25 Apr 10:45 libp3dtool.dylib
-rwxr-xr-x  1 colinn  staff    79808 24 Apr 16:57 libp3dtoolbase.a
-rwxr-xr-x  1 colinn  staff    53480 25 Apr 10:45 libp3dtoolbase.dylib
-rwxr-xr-x  1 colinn  staff      688 24 Apr 16:57 libp3dtoolconfig.a
-rwxr-xr-x  1 colinn  staff     8304 25 Apr 10:45 libp3dtoolconfig.dylib
-rwxr-xr-x  1 colinn  staff   301136 24 Apr 16:57 libp3dtoolutil.a
-rwxr-xr-x  1 colinn  staff   212504 25 Apr 10:45 libp3dtoolutil.dylib
-rwxr-xr-x  1 colinn  staff    98488 24 Apr 17:10 libp3dxml.a
-rwxr-xr-x  1 colinn  staff    89412 25 Apr 11:04 libp3dxml.dylib
-rwxr-xr-x  1 colinn  staff   370928 24 Apr 17:10 libp3event.a
-rwxr-xr-x  1 colinn  staff   266048 25 Apr 11:04 libp3event.dylib
-rwxr-xr-x  1 colinn  staff   513296 24 Apr 17:10 libp3express.a
-rwxr-xr-x  1 colinn  staff   381672 25 Apr 11:04 libp3express.dylib
-rwxr-xr-x  1 colinn  staff   428736 24 Apr 17:10 libp3framework.a
-rwxr-xr-x  1 colinn  staff   428936 25 Apr 11:04 libp3framework.dylib
-rwxr-xr-x  1 colinn  staff   422264 24 Apr 17:10 libp3glesgsg.a
-rwxr-xr-x  1 colinn  staff   345268 25 Apr 11:04 libp3glesgsg.dylib
-rwxr-xr-x  1 colinn  staff     1936 24 Apr 17:10 libp3glstuff.a
-rwxr-xr-x  1 colinn  staff     8568 25 Apr 11:04 libp3glstuff.dylib
-rwxr-xr-x  1 colinn  staff  2400000 24 Apr 17:10 libp3gobj.a
-rwxr-xr-x  1 colinn  staff  1903716 25 Apr 11:04 libp3gobj.dylib
-rwxr-xr-x  1 colinn  staff   826288 24 Apr 17:10 libp3grutil.a
-rwxr-xr-x  1 colinn  staff   668512 25 Apr 11:04 libp3grutil.dylib
-rwxr-xr-x  1 colinn  staff    23952 24 Apr 17:10 libp3gsgbase.a
-rwxr-xr-x  1 colinn  staff    22064 25 Apr 11:04 libp3gsgbase.dylib
-rwxr-xr-x  1 colinn  staff   229944 24 Apr 16:57 libp3interrogatedb.a
-rwxr-xr-x  1 colinn  staff   149292 25 Apr 10:45 libp3interrogatedb.dylib
-rwxr-xr-x  1 colinn  staff   137992 24 Apr 17:10 libp3iphonedisplay.a
-rwxr-xr-x  1 colinn  staff    85620 25 Apr 11:04 libp3iphonedisplay.dylib
-rwxr-xr-x  1 colinn  staff   168048 24 Apr 17:10 libp3linmath.a
-rwxr-xr-x  1 colinn  staff   124844 25 Apr 11:04 libp3linmath.dylib
-rwxr-xr-x  1 colinn  staff   309688 24 Apr 17:10 libp3mathutil.a
-rwxr-xr-x  1 colinn  staff   237864 25 Apr 11:04 libp3mathutil.dylib
-rwxr-xr-x  1 colinn  staff   108944 24 Apr 17:10 libp3movies.a
-rwxr-xr-x  1 colinn  staff    83284 25 Apr 11:04 libp3movies.dylib
-rwxr-xr-x  1 colinn  staff    28536 24 Apr 17:10 libp3nativenet.a
-rwxr-xr-x  1 colinn  staff    22424 25 Apr 11:04 libp3nativenet.dylib
-rwxr-xr-x  1 colinn  staff   134224 24 Apr 17:10 libp3openal_audio.a
-rwxr-xr-x  1 colinn  staff   106080 25 Apr 11:04 libp3openal_audio.dylib
-rwxr-xr-x  1 colinn  staff     1832 24 Apr 17:10 libp3pandabase.a
-rwxr-xr-x  1 colinn  staff     8556 25 Apr 11:04 libp3pandabase.dylib
-rwxr-xr-x  1 colinn  staff   518288 24 Apr 17:10 libp3parametrics.a
-rwxr-xr-x  1 colinn  staff   398104 25 Apr 11:04 libp3parametrics.dylib
-rwxr-xr-x  1 colinn  staff   502952 24 Apr 17:10 libp3particlesystem.a
-rwxr-xr-x  1 colinn  staff   390788 25 Apr 11:04 libp3particlesystem.dylib
-rwxr-xr-x  1 colinn  staff  3774728 24 Apr 17:10 libp3pgraph.a
-rwxr-xr-x  1 colinn  staff  2945628 25 Apr 11:04 libp3pgraph.dylib
-rwxr-xr-x  1 colinn  staff   687640 24 Apr 17:10 libp3pgraphnodes.a
-rwxr-xr-x  1 colinn  staff   518820 25 Apr 11:04 libp3pgraphnodes.dylib
-rwxr-xr-x  1 colinn  staff   570320 24 Apr 17:10 libp3pgui.a
-rwxr-xr-x  1 colinn  staff   491168 25 Apr 11:04 libp3pgui.dylib
-rwxr-xr-x  1 colinn  staff   306424 24 Apr 17:10 libp3physics.a
-rwxr-xr-x  1 colinn  staff   222580 25 Apr 11:04 libp3physics.dylib
-rwxr-xr-x  1 colinn  staff   115544 24 Apr 17:10 libp3pipeline.a
-rwxr-xr-x  1 colinn  staff    77252 25 Apr 11:04 libp3pipeline.dylib
-rwxr-xr-x  1 colinn  staff   190704 24 Apr 17:10 libp3pnmimage.a
-rwxr-xr-x  1 colinn  staff   137724 25 Apr 11:04 libp3pnmimage.dylib
-rwxr-xr-x  1 colinn  staff    39152 24 Apr 17:10 libp3pnmimagetypes.a
-rwxr-xr-x  1 colinn  staff    30700 25 Apr 11:04 libp3pnmimagetypes.dylib
-rwxr-xr-x  1 colinn  staff   246776 24 Apr 16:57 libp3prc.a
-rwxr-xr-x  1 colinn  staff   165276 25 Apr 10:45 libp3prc.dylib
-rwxr-xr-x  1 colinn  staff    63024 24 Apr 17:10 libp3pstatclient.a
-rwxr-xr-x  1 colinn  staff    42256 25 Apr 11:04 libp3pstatclient.dylib
-rwxr-xr-x  1 colinn  staff   725816 24 Apr 17:10 libp3putil.a
-rwxr-xr-x  1 colinn  staff   490060 25 Apr 11:04 libp3putil.dylib
-rwxr-xr-x  1 colinn  staff    10760 24 Apr 16:57 libp3pystub.a
-rwxr-xr-x  1 colinn  staff    12864 25 Apr 10:45 libp3pystub.dylib
-rwxr-xr-x  1 colinn  staff   171080 24 Apr 17:10 libp3recorder.a
-rwxr-xr-x  1 colinn  staff   115564 25 Apr 11:04 libp3recorder.dylib
-rwxr-xr-x  1 colinn  staff     8280 24 Apr 17:10 libp3skel.a
-rwxr-xr-x  1 colinn  staff    14504 25 Apr 11:04 libp3skel.dylib
-rwxr-xr-x  1 colinn  staff   484568 24 Apr 17:10 libp3text.a
-rwxr-xr-x  1 colinn  staff   388268 25 Apr 11:04 libp3text.dylib
-rwxr-xr-x  1 colinn  staff   487896 24 Apr 17:10 libp3tform.a
-rwxr-xr-x  1 colinn  staff   350220 25 Apr 11:04 libp3tform.dylib
-rwxr-xr-x  1 colinn  staff   115464 25 Apr 11:04 libp3tinyxml.a
-rwxr-xr-x  1 colinn  staff    16032 24 Apr 17:10 libp3vision.a
-rwxr-xr-x  1 colinn  staff    20720 25 Apr 11:04 libp3vision.dylib
-rwxr-xr-x  1 colinn  staff     2440 24 Apr 17:10 libpanda.a
-rwxr-xr-x  1 colinn  staff     8796 25 Apr 11:04 libpanda.dylib
-rwxr-xr-x  1 colinn  staff     1984 24 Apr 17:10 libpandaexpress.a
-rwxr-xr-x  1 colinn  staff     8560 25 Apr 11:04 libpandaexpress.dylib
-rwxr-xr-x  1 colinn  staff     2152 24 Apr 17:10 libpandafx.a
-rwxr-xr-x  1 colinn  staff     8648 25 Apr 11:04 libpandafx.dylib
-rwxr-xr-x  1 colinn  staff     2248 24 Apr 17:10 libpandagles.a
-rwxr-xr-x  1 colinn  staff     8688 25 Apr 11:04 libpandagles.dylib
-rwxr-xr-x  1 colinn  staff     2288 24 Apr 17:10 libpandaphysics.a
-rwxr-xr-x  1 colinn  staff     8716 25 Apr 11:04 libpandaphysics.dylib

#117

Moving on from the size issue, I am attempting to create a project in xcode that will essentially be pview.

Has anyone attempted this? I believe it is necessary for codesigning reasons. My first attempt results in many errors.


#118

I did this several years ago. Haven’t tried it recently.

David