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
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
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?
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
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.
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.
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?
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)
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
So, does panda 3D games run on iphone now ?
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.
Thank you for the information.
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,
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?
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.
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.
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
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.
I did this several years ago. Haven’t tried it recently.
David
Ok thanks for letting me know. Knowing it was done before is helpful since the error could be just project settings.
I’m not sure if apple allows open discussion of their SDK, but I get typedef redefinitions of basic types and an error in their Framework memory management system about returning nil instead of void *.
I get these with prefixing dtool_config.h and setting the header search path to include my build include directory.
Umm, hmm, are you sure you’re compiling in C++ mode and not Objective-C mode? “nil” isn’t a C++ datatype.
David