#include <direct.h>
#endif
+#ifdef __APPLE__
+# include <CoreFoundation/CoreFoundation.h>
+#endif
+
#include "FGGLApplication.hxx"
#include "FGPanelApplication.hxx"
#if defined (SG_MAC)
return ParseArgs( argc, argv, s );
}
+
+// define default location of fgdata (use the same as for fgfs)
+#if defined(__CYGWIN__)
+inline static string platformDefaultRoot()
+{
+ return "../data";
+}
+
+#elif defined(_WIN32)
+inline static string platformDefaultRoot()
+{
+ return "..\\data";
+}
+#elif defined(__APPLE__)
+inline static string platformDefaultRoot()
+{
+ /*
+ The following code looks for the base package inside the application
+ bundle, in the standard Contents/Resources location.
+ */
+ CFURLRef resourcesUrl = CFBundleCopyResourcesDirectoryURL(CFBundleGetMainBundle());
+
+ // look for a 'data' subdir
+ CFURLRef dataDir = CFURLCreateCopyAppendingPathComponent(NULL, resourcesUrl, CFSTR("data"), true);
+
+ // now convert down to a path, and the a c-string
+ CFStringRef path = CFURLCopyFileSystemPath(dataDir, kCFURLPOSIXPathStyle);
+ string root = CFStringGetCStringPtr(path, CFStringGetSystemEncoding());
+
+ CFRelease(resourcesUrl);
+ CFRelease(dataDir);
+ CFRelease(path);
+
+ return root;
+}
+#else
+inline static string platformDefaultRoot()
+{
+ return PKGLIBDIR;
+}
+#endif
+
#include "FGPNGTextureLoader.hxx"
#include "FGRGBTextureLoader.hxx"
static FGPNGTextureLoader pngTextureLoader;
FGCroppedTexture::registerTextureLoader( "png", &pngTextureLoader );
FGCroppedTexture::registerTextureLoader( "rgb", &rgbTextureLoader );
+ ApplicationProperties::root = platformDefaultRoot();
+
string panelFilename;
string fgRoot;