From e7b48eee5be34717648992559ffa669ff62f9ab4 Mon Sep 17 00:00:00 2001 From: Matthias Melcher Date: Sat, 20 Feb 2010 22:38:04 +0000 Subject: Supporting an application icon in Fluid IDE support. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7120 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- fluid/ide_support.cxx | 1 + fluid/ide_xcode.cxx | 70 +++++++++++++++++++++++++++++++++++++-------------- 2 files changed, 52 insertions(+), 19 deletions(-) diff --git a/fluid/ide_support.cxx b/fluid/ide_support.cxx index b2daa8f74..2b78db550 100644 --- a/fluid/ide_support.cxx +++ b/fluid/ide_support.cxx @@ -584,6 +584,7 @@ int create_new_database(const char *filename) fluid_app.add_lib(fltk_images_lib); fluid_app.add_lib(fltk_jpeg_lib); fluid_app.add_lib(fltk_png_lib); + osx_only(fluid_app.add_external_lib(files_db, "icons/fluid.icns")); } // --- create test applications diff --git a/fluid/ide_xcode.cxx b/fluid/ide_xcode.cxx index 0ea3d8f83..e9a68c9f4 100644 --- a/fluid/ide_xcode.cxx +++ b/fluid/ide_xcode.cxx @@ -196,11 +196,17 @@ public: for (i=0; i\"; };\n", xcFileID, fullName, fullName, pathAndName ); filetype = 0L; + } else if (strcmp(ext, ".icns")==0) { + fprintf(out, + "\t\t%s /* %s */ = {isa = PBXFileReference; " + "lastKnownFileType = \"image.icns\"; " + "name = %s; path = %s; " + "sourceTree = \"\"; };\n", + xcFileID, fullName, fullName, pathAndName ); + filetype = 0L; } else if (strcmp(ext, ".plist")==0) { filetype = "text.plist.xml"; } @@ -489,8 +503,10 @@ public: GET_UUID(refUUID, extDB); MAKE_XCID(xcBuildFrameworkID, extDB); Fl_File_Prefs fileDB(filesDB, refUUID); - const char *name = fileDB.fileName(); - fprintf(out, "\t\t\t\t%s /* lib%s.dylib in Frameworks */,\n", xcBuildFrameworkID, name); + const char *fullName = fileDB.fullName(); + if (strcmp(fileDB.fileExt(), ".icns")!=0) { + fprintf(out, "\t\t\t\t%s /* %s in Frameworks */,\n", xcBuildFrameworkID, fullName); + } } fprintf(out, "\t\t\t);\n"); fprintf(out, "\t\t\trunOnlyForDeploymentPostprocessing = 0;\n"); @@ -616,15 +632,8 @@ public: fprintf(out, "\t\t\tsourceTree = \"\";\n"); fprintf(out, "\t\t};\n"); // --- FIXME: missing "plists" group - // --- FIXME: missing "Library Sources" group - // --- FIXME: missing "Test Sources" group - // --- FIXME: missing "Frameworks" group - // --- FIXME: missing "Fluid Sources" group - // --- FIXME: missing "jpeg Sources" group - // --- FIXME: missing "png Sources" group - // --- FIXME: missing "libs" group - // --- "Applications" group for testing + // --- "Applications" group fprintf(out, "\t\t%s /* Applications */ = {\n", xcAppsGroupID); fprintf(out, "\t\t\tisa = PBXGroup;\n"); fprintf(out, "\t\t\tchildren = (\n"); @@ -642,7 +651,7 @@ public: Fl_Preferences targetDB(tgtAppsDB, i); writeTargetFiles(out, targetDB); } - // --- "Frameworks" group for testing + // --- "Frameworks" group fprintf(out, "\t\t%s /* Frameworks */ = {\n", xcLibsGroupID); fprintf(out, "\t\t\tisa = PBXGroup;\n"); fprintf(out, "\t\t\tchildren = (\n"); @@ -660,7 +669,7 @@ public: Fl_Preferences targetDB(tgtLibsDB, i); writeTargetFiles(out, targetDB); } - // --- "Tests" group for testing + // --- "Tests" group fprintf(out, "\t\t%s /* Tests */ = {\n", xcTestsGroupID); fprintf(out, "\t\t\tisa = PBXGroup;\n"); fprintf(out, "\t\t\tchildren = (\n"); @@ -850,6 +859,17 @@ public: fprintf(out, "\t\t\tisa = PBXResourcesBuildPhase;\n"); fprintf(out, "\t\t\tbuildActionMask = 2147483647;\n"); fprintf(out, "\t\t\tfiles = (\n"); + Fl_Preferences extsDB(targetDB, "externals"); + int i, n = extsDB.groups(); + for (i=0; iEnglish\n"); fprintf(f, "\tCFBundleExecutable\n"); fprintf(f, "\t${EXECUTABLE_NAME}\n"); + // find the first suitable icon file if there is one + Fl_Preferences extsDB(target_db, "externals"); + int i, n = extsDB.groups(); + for (i=0; iCFBundleIconFile\n\t%s", fileDB.fileName()); + break; + } + } fprintf(f, "\tCFBundleIdentifier\n"); fprintf(f, "\torg.fltk.%s\n", name); fprintf(f, "\tCFBundleInfoDictionaryVersion\n"); -- cgit v1.2.3