diff options
| author | Matthias Melcher <fltk@matthiasm.com> | 2010-04-14 20:17:44 +0000 |
|---|---|---|
| committer | Matthias Melcher <fltk@matthiasm.com> | 2010-04-14 20:17:44 +0000 |
| commit | 30d00ceb075adaa945a5176a3272982a856f0a9b (patch) | |
| tree | 8eb8bcd198f8166516bb36b81c7ccf2a9c2091ff /fluid | |
| parent | 79b2c201a0d36651e97140ddff215a3b1bbde93e (diff) | |
Fludi IDE: now supporting header files for OS X. If those are included for a library, the resulting framework will receive a copy of the headers, allowing Xcode to simply include the file into any new project. frameworks must be installed in /Library?Frameworks to be found automatically. A little more fixing is required.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7504 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'fluid')
| -rw-r--r-- | fluid/ide_support.cxx | 188 | ||||
| -rw-r--r-- | fluid/ide_support.h | 1 | ||||
| -rw-r--r-- | fluid/ide_xcode.cxx | 256 |
3 files changed, 264 insertions, 181 deletions
diff --git a/fluid/ide_support.cxx b/fluid/ide_support.cxx index 9f9e9f755..f6b4ae2ec 100644 --- a/fluid/ide_support.cxx +++ b/fluid/ide_support.cxx @@ -197,6 +197,15 @@ Fl_Preferences::ID Fl_Target_Prefs::add_source(Fl_IDE_Prefs &fdb, const char *pa return id; } +Fl_Preferences::ID Fl_Target_Prefs::add_header(Fl_IDE_Prefs &fdb, const char *pathAndName) { + Fl_IDE_Prefs file(fdb.add_with_key("pathAndName", pathAndName)); + Fl_IDE_Prefs p(*this, "headers"); + Fl_Preferences::ID id = p.add_with_key("refUUID", file.name()); + Fl_Preferences ref(id); + ref.set("(filename)", pathAndName); + return id; +} + Fl_Preferences::ID Fl_Target_Prefs::add_fl(Fl_IDE_Prefs &fdb, const char *pathAndName) { Fl_IDE_Prefs file(fdb.add_with_key("pathAndName", pathAndName)); Fl_IDE_Prefs p(*this, "fl"); @@ -501,10 +510,141 @@ int create_new_database(const char *filename) fltk_lib.add_source(files_db, "src/xutf8/case.c"); fltk_lib.add_source(files_db, "src/xutf8/is_right2left.c"); fltk_lib.add_source(files_db, "src/xutf8/is_spacing.c"); + + + fltk_lib.add_header(files_db, "FL/Enumerations.H"); + fltk_lib.add_header(files_db, "FL/Fl.H"); + fltk_lib.add_header(files_db, "FL/Fl_Abstract_Printer.H"); + fltk_lib.add_header(files_db, "FL/Fl_Adjuster.H"); + fltk_lib.add_header(files_db, "FL/Fl_Bitmap.H"); + fltk_lib.add_header(files_db, "FL/Fl_Box.H"); + fltk_lib.add_header(files_db, "FL/Fl_Browser.H"); + fltk_lib.add_header(files_db, "FL/Fl_Browser_.H"); + fltk_lib.add_header(files_db, "FL/Fl_Button.H"); + fltk_lib.add_header(files_db, "FL/Fl_Cairo.H"); + fltk_lib.add_header(files_db, "FL/Fl_Cairo_Window.H"); + fltk_lib.add_header(files_db, "FL/Fl_Chart.H"); + fltk_lib.add_header(files_db, "FL/Fl_Check_Browser.H"); + fltk_lib.add_header(files_db, "FL/Fl_Check_Button.H"); + fltk_lib.add_header(files_db, "FL/Fl_Choice.H"); + fltk_lib.add_header(files_db, "FL/Fl_Clock.H"); + fltk_lib.add_header(files_db, "FL/Fl_Color_Chooser.H"); + fltk_lib.add_header(files_db, "FL/Fl_Counter.H"); + fltk_lib.add_header(files_db, "FL/Fl_Device.H"); + fltk_lib.add_header(files_db, "FL/Fl_Dial.H"); + fltk_lib.add_header(files_db, "FL/Fl_Double_Window.H"); + fltk_lib.add_header(files_db, "FL/Fl_Export.H"); + fltk_lib.add_header(files_db, "FL/Fl_File_Browser.H"); + fltk_lib.add_header(files_db, "FL/Fl_File_Chooser.H"); + fltk_lib.add_header(files_db, "FL/Fl_File_Icon.H"); + fltk_lib.add_header(files_db, "FL/Fl_File_Input.H"); + fltk_lib.add_header(files_db, "FL/Fl_Fill_Dial.H"); + fltk_lib.add_header(files_db, "FL/Fl_Fill_Slider.H"); + fltk_lib.add_header(files_db, "FL/Fl_Float_Input.H"); + fltk_lib.add_header(files_db, "FL/Fl_FormsBitmap.H"); + fltk_lib.add_header(files_db, "FL/Fl_FormsPixmap.H"); + fltk_lib.add_header(files_db, "FL/Fl_Free.H"); + fltk_lib.add_header(files_db, "FL/Fl_Group.H"); + fltk_lib.add_header(files_db, "FL/Fl_Hold_Browser.H"); + fltk_lib.add_header(files_db, "FL/Fl_Hor_Fill_Slider.H"); + fltk_lib.add_header(files_db, "FL/Fl_Hor_Nice_Slider.H"); + fltk_lib.add_header(files_db, "FL/Fl_Hor_Slider.H"); + fltk_lib.add_header(files_db, "FL/Fl_Hor_Value_Slider.H"); + fltk_lib.add_header(files_db, "FL/Fl_Image.H"); + fltk_lib.add_header(files_db, "FL/Fl_Input.H"); + fltk_lib.add_header(files_db, "FL/Fl_Input_.H"); + fltk_lib.add_header(files_db, "FL/Fl_Input_Choice.H"); + fltk_lib.add_header(files_db, "FL/Fl_Int_Input.H"); + fltk_lib.add_header(files_db, "FL/Fl_Light_Button.H"); + fltk_lib.add_header(files_db, "FL/Fl_Line_Dial.H"); + fltk_lib.add_header(files_db, "FL/Fl_Menu.H"); + fltk_lib.add_header(files_db, "FL/Fl_Menu_.H"); + fltk_lib.add_header(files_db, "FL/Fl_Menu_Bar.H"); + fltk_lib.add_header(files_db, "FL/Fl_Menu_Button.H"); + fltk_lib.add_header(files_db, "FL/Fl_Menu_Item.H"); + fltk_lib.add_header(files_db, "FL/Fl_Menu_Window.H"); + fltk_lib.add_header(files_db, "FL/Fl_Multi_Browser.H"); + fltk_lib.add_header(files_db, "FL/Fl_Multi_Label.H"); + fltk_lib.add_header(files_db, "FL/Fl_Multiline_Input.H"); + fltk_lib.add_header(files_db, "FL/Fl_Multiline_Output.H"); + fltk_lib.add_header(files_db, "FL/Fl_Native_File_Chooser.H"); + fltk_lib.add_header(files_db, "FL/Fl_Nice_Slider.H"); + fltk_lib.add_header(files_db, "FL/Fl_Object.H"); + fltk_lib.add_header(files_db, "FL/Fl_Output.H"); + fltk_lib.add_header(files_db, "FL/Fl_Overlay_Window.H"); + fltk_lib.add_header(files_db, "FL/Fl_PSfile_Device.H"); + fltk_lib.add_header(files_db, "FL/Fl_Pack.H"); + fltk_lib.add_header(files_db, "FL/Fl_Pixmap.H"); + fltk_lib.add_header(files_db, "FL/Fl_Plugin.H"); + fltk_lib.add_header(files_db, "FL/Fl_Positioner.H"); + fltk_lib.add_header(files_db, "FL/Fl_Preferences.H"); + fltk_lib.add_header(files_db, "FL/Fl_Printer.H"); + fltk_lib.add_header(files_db, "FL/Fl_Progress.H"); + fltk_lib.add_header(files_db, "FL/Fl_RGB_Image.H"); + fltk_lib.add_header(files_db, "FL/Fl_Radio_Button.H"); + fltk_lib.add_header(files_db, "FL/Fl_Radio_Light_Button.H"); + fltk_lib.add_header(files_db, "FL/Fl_Radio_Round_Button.H"); + fltk_lib.add_header(files_db, "FL/Fl_Repeat_Button.H"); + fltk_lib.add_header(files_db, "FL/Fl_Return_Button.H"); + fltk_lib.add_header(files_db, "FL/Fl_Roller.H"); + fltk_lib.add_header(files_db, "FL/Fl_Round_Button.H"); + fltk_lib.add_header(files_db, "FL/Fl_Round_Clock.H"); + fltk_lib.add_header(files_db, "FL/Fl_Scroll.H"); + fltk_lib.add_header(files_db, "FL/Fl_Scrollbar.H"); + fltk_lib.add_header(files_db, "FL/Fl_Secret_Input.H"); + fltk_lib.add_header(files_db, "FL/Fl_Select_Browser.H"); + fltk_lib.add_header(files_db, "FL/Fl_Shared_Image.H"); + fltk_lib.add_header(files_db, "FL/Fl_Simple_Counter.H"); + fltk_lib.add_header(files_db, "FL/Fl_Single_Window.H"); + fltk_lib.add_header(files_db, "FL/Fl_Slider.H"); + fltk_lib.add_header(files_db, "FL/Fl_Spinner.H"); + fltk_lib.add_header(files_db, "FL/Fl_Sys_Menu_Bar.H"); + fltk_lib.add_header(files_db, "FL/Fl_Table.H"); + fltk_lib.add_header(files_db, "FL/Fl_Table_Row.H"); + fltk_lib.add_header(files_db, "FL/Fl_Tabs.H"); + fltk_lib.add_header(files_db, "FL/Fl_Text_Buffer.H"); + fltk_lib.add_header(files_db, "FL/Fl_Text_Display.H"); + fltk_lib.add_header(files_db, "FL/Fl_Text_Editor.H"); + fltk_lib.add_header(files_db, "FL/Fl_Tile.H"); + fltk_lib.add_header(files_db, "FL/Fl_Tiled_Image.H"); + fltk_lib.add_header(files_db, "FL/Fl_Timer.H"); + fltk_lib.add_header(files_db, "FL/Fl_Toggle_Button.H"); + fltk_lib.add_header(files_db, "FL/Fl_Toggle_Light_Button.H"); + fltk_lib.add_header(files_db, "FL/Fl_Toggle_Round_Button.H"); + fltk_lib.add_header(files_db, "FL/Fl_Tooltip.H"); + fltk_lib.add_header(files_db, "FL/Fl_Tree.H"); + fltk_lib.add_header(files_db, "FL/Fl_Tree_Item.H"); + fltk_lib.add_header(files_db, "FL/Fl_Tree_Item_Array.H"); + fltk_lib.add_header(files_db, "FL/Fl_Tree_Prefs.H"); + fltk_lib.add_header(files_db, "FL/Fl_Valuator.H"); + fltk_lib.add_header(files_db, "FL/Fl_Value_Input.H"); + fltk_lib.add_header(files_db, "FL/Fl_Value_Output.H"); + fltk_lib.add_header(files_db, "FL/Fl_Value_Slider.H"); + fltk_lib.add_header(files_db, "FL/Fl_Widget.H"); + fltk_lib.add_header(files_db, "FL/Fl_Window.H"); + fltk_lib.add_header(files_db, "FL/Fl_Wizard.H"); + fltk_lib.add_header(files_db, "FL/Fl_XBM_Image.H"); + fltk_lib.add_header(files_db, "FL/Fl_XPM_Image.H"); + fltk_lib.add_header(files_db, "FL/Xutf8.h"); + fltk_lib.add_header(files_db, "FL/dirent.h"); + fltk_lib.add_header(files_db, "FL/filename.H"); + fltk_lib.add_header(files_db, "FL/fl_ask.H"); + fltk_lib.add_header(files_db, "FL/fl_draw.H"); + fltk_lib.add_header(files_db, "FL/fl_message.H"); + fltk_lib.add_header(files_db, "FL/fl_show_colormap.H"); + fltk_lib.add_header(files_db, "FL/fl_show_input.H"); + fltk_lib.add_header(files_db, "FL/fl_types.h"); + fltk_lib.add_header(files_db, "FL/fl_utf8.h"); + fltk_lib.add_header(files_db, "FL/mac.H"); + fltk_lib.add_header(files_db, "FL/math.h"); + fltk_lib.add_header(files_db, "FL/names.h"); + fltk_lib.add_header(files_db, "FL/win32.H"); + fltk_lib.add_header(files_db, "FL/x.H"); + xcode_only(fltk_lib.add_external_lib(files_db, "/System/Library/Frameworks/AudioToolbox.framework")); } - Fl_Target_Prefs fltk_gl_lib(libs_db.add_with_key("name", "fltkgl")); { + Fl_Target_Prefs fltk_gl_lib(libs_db.add_with_key("name", "fltk_gl")); { fltk_gl_lib.add_source(files_db, "src/Fl_Gl_Choice.cxx"); fltk_gl_lib.add_source(files_db, "src/Fl_Gl_Device_Plugin.cxx"); fltk_gl_lib.add_source(files_db, "src/Fl_Gl_Overlay.cxx"); @@ -516,12 +656,20 @@ int create_new_database(const char *filename) fltk_gl_lib.add_source(files_db, "src/gl_draw.cxx"); fltk_gl_lib.add_source(files_db, "src/glut_compatability.cxx"); fltk_gl_lib.add_source(files_db, "src/glut_font.cxx"); + + fltk_gl_lib.add_header(files_db, "FL/Fl_Gl_Window.H"); + fltk_gl_lib.add_header(files_db, "FL/gl.h"); + fltk_gl_lib.add_header(files_db, "FL/gl2opengl.h"); + fltk_gl_lib.add_header(files_db, "FL/gl_draw.H"); + fltk_gl_lib.add_header(files_db, "FL/glu.h"); + fltk_gl_lib.add_header(files_db, "FL/glut.H"); + xcode_only(fltk_gl_lib.add_external_lib(files_db, "/System/Library/Frameworks/OpenGL.framework")); xcode_only(fltk_gl_lib.add_external_lib(files_db, "/System/Library/Frameworks/AGL.framework")); fltk_gl_lib.add_lib(fltk_lib); } - Fl_Target_Prefs fltk_images_lib(libs_db.add_with_key("name", "fltkimages")); { + Fl_Target_Prefs fltk_images_lib(libs_db.add_with_key("name", "fltk_images")); { fltk_images_lib.add_source(files_db, "src/Fl_BMP_Image.cxx"); fltk_images_lib.add_source(files_db, "src/Fl_File_Icon2.cxx"); fltk_images_lib.add_source(files_db, "src/Fl_GIF_Image.cxx"); @@ -530,10 +678,19 @@ int create_new_database(const char *filename) fltk_images_lib.add_source(files_db, "src/Fl_PNG_Image.cxx"); fltk_images_lib.add_source(files_db, "src/Fl_PNM_Image.cxx"); fltk_images_lib.add_source(files_db, "src/fl_images_core.cxx"); + + fltk_images_lib.add_header(files_db, "FL/Fl_BMP_Image.H"); + fltk_images_lib.add_header(files_db, "FL/Fl_GIF_Image.H"); + fltk_images_lib.add_header(files_db, "FL/Fl_Help_Dialog.H"); + fltk_images_lib.add_header(files_db, "FL/Fl_Help_View.H"); + fltk_images_lib.add_header(files_db, "FL/Fl_JPEG_Image.H"); + fltk_images_lib.add_header(files_db, "FL/Fl_PNG_Image.H"); + fltk_images_lib.add_header(files_db, "FL/Fl_PNM_Image.H"); + fltk_images_lib.add_lib(fltk_lib); } - Fl_Target_Prefs fltk_png_lib(libs_db.add_with_key("name", "fltkpng")); { + Fl_Target_Prefs fltk_png_lib(libs_db.add_with_key("name", "fltk_png")); { fltk_png_lib.add_source(files_db, "png/png.c"); fltk_png_lib.add_source(files_db, "png/pngerror.c"); fltk_png_lib.add_source(files_db, "png/pngget.c"); @@ -553,7 +710,7 @@ int create_new_database(const char *filename) fltk_images_lib.add_lib(fltk_png_lib); } - Fl_Target_Prefs fltk_jpeg_lib(libs_db.add_with_key("name", "fltkjpeg")); { + Fl_Target_Prefs fltk_jpeg_lib(libs_db.add_with_key("name", "fltk_jpeg")); { fltk_jpeg_lib.add_source(files_db, "jpeg/jcapimin.c"); fltk_jpeg_lib.add_source(files_db, "jpeg/jcapistd.c"); fltk_jpeg_lib.add_source(files_db, "jpeg/jccoefct.c"); @@ -604,17 +761,20 @@ int create_new_database(const char *filename) fltk_images_lib.add_lib(fltk_jpeg_lib); } - Fl_Target_Prefs fltk_forms_lib(libs_db.add_with_key("name", "fltkforms")); { + Fl_Target_Prefs fltk_forms_lib(libs_db.add_with_key("name", "fltk_forms")); { fltk_forms_lib.add_source(files_db, "src/forms_bitmap.cxx"); fltk_forms_lib.add_source(files_db, "src/forms_compatability.cxx"); fltk_forms_lib.add_source(files_db, "src/forms_free.cxx"); fltk_forms_lib.add_source(files_db, "src/forms_fselect.cxx"); fltk_forms_lib.add_source(files_db, "src/forms_pixmap.cxx"); fltk_forms_lib.add_source(files_db, "src/forms_timer.cxx"); + + fltk_forms_lib.add_header(files_db, "FL/forms.H"); + fltk_forms_lib.add_lib(fltk_lib); } - Fl_Target_Prefs fltk_z_lib(libs_db.add_with_key("name", "zlib")); { + Fl_Target_Prefs fltk_z_lib(libs_db.add_with_key("name", "fltk_zlib")); { fltk_z_lib.add_source(files_db, "zlib/adler32.c"); fltk_z_lib.add_source(files_db, "zlib/compress.c"); fltk_z_lib.add_source(files_db, "zlib/crc32.c"); @@ -656,6 +816,22 @@ int create_new_database(const char *filename) fluid_app.add_source(files_db, "fluid/template_panel.cxx"); fluid_app.add_source(files_db, "fluid/undo.cxx"); fluid_app.add_source(files_db, "fluid/widget_panel.cxx"); + + fluid_app.add_header(files_db, "fluid/CodeEditor.h"); + fluid_app.add_header(files_db, "fluid/Fl_Type.h"); + fluid_app.add_header(files_db, "fluid/Fl_Widget_Type.h"); + fluid_app.add_header(files_db, "fluid/Fluid_Image.h"); + fluid_app.add_header(files_db, "fluid/Shortcut_Button.h"); + fluid_app.add_header(files_db, "fluid/about_panel.h"); + fluid_app.add_header(files_db, "fluid/alignment_panel.h"); + fluid_app.add_header(files_db, "fluid/comments.h"); + fluid_app.add_header(files_db, "fluid/function_panel.h"); + fluid_app.add_header(files_db, "fluid/ide_support.h"); + fluid_app.add_header(files_db, "fluid/print_panel.h"); + fluid_app.add_header(files_db, "fluid/template_panel.h"); + fluid_app.add_header(files_db, "fluid/undo.h"); + fluid_app.add_header(files_db, "fluid/widget_panel.h"); + fluid_app.add_lib(fltk_lib); fluid_app.add_lib(fltk_forms_lib); fluid_app.add_lib(fltk_images_lib); diff --git a/fluid/ide_support.h b/fluid/ide_support.h index 20721b021..8adb077c5 100644 --- a/fluid/ide_support.h +++ b/fluid/ide_support.h @@ -72,6 +72,7 @@ class Fl_Target_Prefs : public Fl_IDE_Prefs { public: Fl_Target_Prefs(Fl_Preferences::ID id); Fl_Preferences::ID add_source(Fl_IDE_Prefs &fdb, const char *pathAndName); + Fl_Preferences::ID add_header(Fl_IDE_Prefs &fdb, const char *pathAndName); Fl_Preferences::ID add_fl(Fl_IDE_Prefs &fdb, const char *pathAndName); Fl_Preferences::ID depends_on(Fl_IDE_Prefs &dep); Fl_Preferences::ID add_lib(Fl_IDE_Prefs &lib); diff --git a/fluid/ide_xcode.cxx b/fluid/ide_xcode.cxx index fdc24d346..8735460bf 100644 --- a/fluid/ide_xcode.cxx +++ b/fluid/ide_xcode.cxx @@ -25,8 +25,6 @@ // http://www.fltk.org/str.php // -#define XCODE_DEFAULT 1 - /* XCODE 3.0 IDE FILES @@ -171,6 +169,21 @@ public: const char *fullName = fileDB.fullName(); fprintf(out, "\t\t%s /* %s in Sources */ = {isa = PBXBuildFile; fileRef = %s /* %s */; };\n", xcBuildFileID, fullName, xcFileID, fullName); } + // --- write all references to headers from the given target + Fl_Preferences headersDB(targetDB, "headers"); + n = headersDB.groups(); + for (i=0; i<n; i++) { + Fl_Preferences headerDB(headersDB, i); + GET_UUID(refUUID, headerDB); + MAKE_XCID(xcCopyHeaderID, headerDB); + Fl_File_Prefs fileDB(filesDB, refUUID); + MAKE_XCID(xcFileID, fileDB); + const char *fullName = fileDB.fullName(); + fprintf(out, "\t\t%s /* %s in Headers */ = " + "{isa = PBXBuildFile; fileRef = %s /* %s */; " + "settings = {ATTRIBUTES = (Public, ); }; };\n", + xcCopyHeaderID, fullName, xcFileID, fullName); + } // --- write all references to Fluid UI files from the given target Fl_Preferences flsDB(targetDB, "fl"); n = flsDB.groups(); @@ -440,8 +453,12 @@ public: filetype = "sourcecode.cpp.objcpp"; } else if (strcmp(ext, ".cxx")==0) { filetype = "sourcecode.cpp.cpp"; + } else if (strcmp(ext, ".H")==0) { + filetype = "sourcecode.cpp.h"; } else if (strcmp(ext, ".c")==0) { filetype = "sourcecode.c.c"; + } else if (strcmp(ext, ".h")==0) { + filetype = "sourcecode.c.h"; } else if (strcmp(ext, ".mm")==0) { filetype = "sourcecode.cpp.objcpp"; } else if (strcmp(ext, ".dylib")==0) { @@ -542,7 +559,34 @@ public: fprintf(out, "/* End PBXFrameworksBuildPhase section */\n\n"); return 0; } - + + /* + * + */ + int writeTargetHeaders(FILE *out, Fl_Preferences &targetDB) { + MAKE_XCID(xcTargetHeadersGroupID, targetDB); + fprintf(out, "\t\t%s /* Headers */ = {\n", xcTargetHeadersGroupID); + fprintf(out, "\t\t\tisa = PBXGroup;\n"); + fprintf(out, "\t\t\tchildren = (\n"); + + Fl_Preferences headersDB(targetDB, "headers"); + int j, n = headersDB.groups(); + for (j=0; j<n; j++) { + Fl_Preferences headerDB(headersDB, j); + GET_UUID(refUUID, headerDB); + Fl_File_Prefs fileDB(filesDB, refUUID); + MAKE_XCID(xcFileID, fileDB); + const char *fullName = fileDB.fullName(); + fprintf(out, "\t\t\t\t%s /* %s */,\n", xcFileID, fullName); + } + + fprintf(out, "\t\t\t);\n"); + fprintf(out, "\t\t\tname = Headers;\n"); + fprintf(out, "\t\t\tsourceTree = \"<group>\";\n"); + fprintf(out, "\t\t};\n"); + return 0; + } + /* * */ @@ -554,6 +598,13 @@ public: fprintf(out, "\t\t\tisa = PBXGroup;\n"); fprintf(out, "\t\t\tchildren = (\n"); + Fl_Preferences headersDB(targetDB, "headers"); + int nHeaders = headersDB.groups(); + if (nHeaders) { + MAKE_XCID(xcTargetHeadersGroupID, targetDB); + fprintf(out, "\t\t\t\t%s /* Headers */,\n", xcTargetHeadersGroupID); + } + MAKE_XCID(xcProductID, targetDB); Fl_Preferences sourcesDB(targetDB, "sources"); int j, n = sourcesDB.groups(); @@ -592,6 +643,9 @@ public: fprintf(out, "\t\t\tname = %s;\n", name); fprintf(out, "\t\t\tsourceTree = \"<group>\";\n"); fprintf(out, "\t\t};\n"); + + writeTargetHeaders(out, targetDB); + return 0; } @@ -711,19 +765,20 @@ public: fprintf(out, "\t\t\tisa = PBXHeadersBuildPhase;\n"); fprintf(out, "\t\t\tbuildActionMask = 2147483647;\n"); fprintf(out, "\t\t\tfiles = (\n"); -#if 0 - // FIXME: list all required headers - Fl_Preferences libsDB(targetDB, "libs"); - int i, n = libsDB.groups(); - for (i=0; i<n; i++) { - Fl_Preferences libDB(libsDB, i); - GET_UUID(refUUID, libDB); - MAKE_XCID(xcCopyFrameworkID, libDB); - Fl_Preferences tgtLibDB(tgtLibsDB, refUUID); - char name[80]; tgtLibDB.get("name", name, "DBERROR", 80);; - fprintf(out, "\t\t\t\t%s /* %s.framework in CopyFiles */,\n", xcCopyFrameworkID, name); + + // did not work! + Fl_Preferences headersDB(targetDB, "headers"); + int j, n = headersDB.groups(); + for (j=0; j<n; j++) { + Fl_Preferences headerDB(headersDB, j); + GET_UUID(refUUID, headerDB); + MAKE_XCID(xcCopyHeaderID, headerDB); + Fl_File_Prefs fileDB(filesDB, refUUID); + const char *fullName = fileDB.fullName(); + fprintf(out, "\t\t\t\t%s /* %s in Copyheaders */,\n", xcCopyHeaderID, fullName); } -#endif + // end + fprintf(out, "\t\t\t);\n"); fprintf(out, "\t\t\trunOnlyForDeploymentPostprocessing = 0;\n"); fprintf(out, "\t\t};\n"); @@ -1029,7 +1084,6 @@ public: fprintf(out, "\t\t%s /* Debug */ = {\n", xcBuildConfigurationDebugID); fprintf(out, "\t\t\tisa = XCBuildConfiguration;\n"); fprintf(out, "\t\t\tbuildSettings = {\n"); -#ifdef XCODE_DEFAULT fprintf(out, "\t\t\t\tARCHS = \"$(ARCHS_STANDARD_32_64_BIT)\";\n"); fprintf(out, "\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n"); fprintf(out, "\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n"); @@ -1038,19 +1092,6 @@ public: fprintf(out, "\t\t\t\tONLY_ACTIVE_ARCH = YES;\n"); fprintf(out, "\t\t\t\tPREBINDING = NO;\n"); fprintf(out, "\t\t\t\tSDKROOT = macosx10.5;\n"); -#else - fprintf(out, "\t\t\t\tCOPY_PHASE_STRIP = NO;\n"); - fprintf(out, "\t\t\t\tGCC_ENABLE_TRIGRAPHS = YES;\n"); - fprintf(out, "\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n"); - fprintf(out, "\t\t\t\tGCC_PFE_FILE_C_DIALECTS = \"c c++\";\n"); - fprintf(out, "\t\t\t\tGCC_PRECOMPILE_PREFIX_HEADER = YES;\n"); - fprintf(out, "\t\t\t\tGCC_PREFIX_HEADER = \"\";\n"); - fprintf(out, "\t\t\t\tGCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;\n"); - fprintf(out, "\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.2;\n"); - fprintf(out, "\t\t\t\tSDKROOT = \"$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk\";\n"); - fprintf(out, "\t\t\t\tUSER_HEADER_SEARCH_PATHS = ../../jpeg;\n"); - fprintf(out, "\t\t\t\tWARNING_CFLAGS = \"\";\n"); -#endif fprintf(out, "\t\t\t};\n"); fprintf(out, "\t\t\tname = Debug;\n"); fprintf(out, "\t\t};\n"); @@ -1058,28 +1099,12 @@ public: fprintf(out, "\t\t%s /* Release */ = {\n", xcBuildConfigurationReleaseID); fprintf(out, "\t\t\tisa = XCBuildConfiguration;\n"); fprintf(out, "\t\t\tbuildSettings = {\n"); -#ifdef XCODE_DEFAULT fprintf(out, "\t\t\t\tARCHS = \"$(ARCHS_STANDARD_32_64_BIT)\";\n"); fprintf(out, "\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n"); fprintf(out, "\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES;\n"); fprintf(out, "\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n"); fprintf(out, "\t\t\t\tPREBINDING = NO;\n"); fprintf(out, "\t\t\t\tSDKROOT = macosx10.5;\n"); -#else - fprintf(out, "\t\t\t\tARCHS = \"$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)\";\n"); - fprintf(out, "\t\t\t\tARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = \"ppc i386 x86_64\";\n"); - fprintf(out, "\t\t\t\tCOPY_PHASE_STRIP = YES;\n"); - fprintf(out, "\t\t\t\tGCC_GENERATE_DEBUGGING_SYMBOLS = NO;\n"); - fprintf(out, "\t\t\t\tGCC_PFE_FILE_C_DIALECTS = \"c c++\";\n"); - fprintf(out, "\t\t\t\tGCC_PRECOMPILE_PREFIX_HEADER = YES;\n"); - fprintf(out, "\t\t\t\tGCC_PREFIX_HEADER = \"\";\n"); - fprintf(out, "\t\t\t\tGCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;\n"); - fprintf(out, "\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.3;\n"); - fprintf(out, "\t\t\t\tSDKROOT = \"$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk\";\n"); - fprintf(out, "\t\t\t\tUSER_HEADER_SEARCH_PATHS = ../../jpeg;\n"); - fprintf(out, "\t\t\t\tVALID_ARCHS = \"i386 ppc x86_64\";\n"); - fprintf(out, "\t\t\t\tWARNING_CFLAGS = \"\";\n"); -#endif fprintf(out, "\t\t\t};\n"); fprintf(out, "\t\t\tname = Release;\n"); fprintf(out, "\t\t};\n"); @@ -1095,7 +1120,6 @@ public: fprintf(out, "\t\t%s /* Debug */ = {\n", xcBuildConfigurationDebugID); fprintf(out, "\t\t\tisa = XCBuildConfiguration;\n"); fprintf(out, "\t\t\tbuildSettings = {\n"); -#ifdef XCODE_DEFAULT fprintf(out, "\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n"); fprintf(out, "\t\t\t\tCOPY_PHASE_STRIP = NO;\n"); fprintf(out, "\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n"); @@ -1121,36 +1145,6 @@ public: fprintf(out, "\t\t\t\t);\n"); fprintf(out, "\t\t\t\tPRODUCT_NAME = %s;\n", name); fprintf(out, "\t\t\t\tWARNING_CFLAGS = (\"-Wno-format-security\",\"-Wall\");\n"); -#else - fprintf(out, "\t\t\t\tCOPY_PHASE_STRIP = NO;\n"); - fprintf(out, "\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n"); - fprintf(out, "\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = YES;\n"); - fprintf(out, "\t\t\t\tGCC_MODEL_TUNING = G5;\n"); - fprintf(out, "\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n"); - fprintf(out, "\t\t\t\tGCC_PRECOMPILE_PREFIX_HEADER = YES;\n"); - fprintf(out, "\t\t\t\tGCC_PREFIX_HEADER = \"\";\n"); - fprintf(out, "\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = \"USING_XCODE=1\";\n"); - fprintf(out, "\t\t\t\tHEADER_SEARCH_PATHS = (\n"); - fprintf(out, "\t\t\t\t\t../../ide/XCode3/,\n"); - fprintf(out, "\t\t\t\t\t../../,\n"); - fprintf(out, "\t\t\t\t\t../../png,\n"); - fprintf(out, "\t\t\t\t\t../../jpeg,\n"); - fprintf(out, "\t\t\t\t);\n"); - fprintf(out, "\t\t\t\tINFOPLIST_FILE = \"plists/%s-Info.plist\";\n", name); - fprintf(out, "\t\t\t\tINSTALL_PATH = /Applications;\n"); - fprintf(out, "\t\t\t\tOTHER_LDFLAGS = (\n"); - fprintf(out, "\t\t\t\t\t\"-framework\",\n"); - fprintf(out, "\t\t\t\t\tCocoa,\n"); - fprintf(out, "\t\t\t\t\t\"-framework\",\n"); - fprintf(out, "\t\t\t\t\tCarbon,\n"); - fprintf(out, "\t\t\t\t);\n"); - fprintf(out, "\t\t\t\tPREBINDING = NO;\n"); - fprintf(out, "\t\t\t\tPRODUCT_NAME = %s;\n", name); - fprintf(out, "\t\t\t\tUSER_HEADER_SEARCH_PATHS = \"\";\n"); - fprintf(out, "\t\t\t\tWARNING_CFLAGS = (\"-Wno-format-security\",\"-Wall\");\n"); - fprintf(out, "\t\t\t\tWRAPPER_EXTENSION = app;\n"); - fprintf(out, "\t\t\t\tZERO_LINK = YES;\n"); -#endif fprintf(out, "\t\t\t};\n"); fprintf(out, "\t\t\tname = Debug;\n"); fprintf(out, "\t\t};\n"); @@ -1158,7 +1152,6 @@ public: fprintf(out, "\t\t%s /* Release */ = {\n", xcBuildConfigurationReleaseID); fprintf(out, "\t\t\tisa = XCBuildConfiguration;\n"); fprintf(out, "\t\t\tbuildSettings = {\n"); -#ifdef XCODE_DEFAULT fprintf(out, "\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n"); fprintf(out, "\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n"); fprintf(out, "\t\t\t\tGCC_MODEL_TUNING = G5;\n"); @@ -1181,35 +1174,6 @@ public: fprintf(out, "\t\t\t\t);\n"); fprintf(out, "\t\t\t\tPRODUCT_NAME = %s;\n", name); fprintf(out, "\t\t\t\tWARNING_CFLAGS = (\"-Wno-format-security\",\"-Wall\");\n"); -#else - fprintf(out, "\t\t\t\tCOPY_PHASE_STRIP = YES;\n"); - fprintf(out, "\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n"); - fprintf(out, "\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n"); - fprintf(out, "\t\t\t\tGCC_MODEL_TUNING = G5;\n"); - fprintf(out, "\t\t\t\tGCC_PRECOMPILE_PREFIX_HEADER = YES;\n"); - fprintf(out, "\t\t\t\tGCC_PREFIX_HEADER = \"\";\n"); - fprintf(out, "\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = \"USING_XCODE=1\";\n"); - fprintf(out, "\t\t\t\tHEADER_SEARCH_PATHS = (\n"); - fprintf(out, "\t\t\t\t\t../../ide/XCode3/,\n"); - fprintf(out, "\t\t\t\t\t../../,\n"); - fprintf(out, "\t\t\t\t\t../../png,\n"); - fprintf(out, "\t\t\t\t\t../../jpeg,\n"); - fprintf(out, "\t\t\t\t);\n"); - fprintf(out, "\t\t\t\tINFOPLIST_FILE = \"plists/%s-Info.plist\";\n", name); - fprintf(out, "\t\t\t\tINSTALL_PATH = /Applications;\n"); - fprintf(out, "\t\t\t\tOTHER_LDFLAGS = (\n"); - fprintf(out, "\t\t\t\t\t\"-framework\",\n"); - fprintf(out, "\t\t\t\t\tCocoa,\n"); - fprintf(out, "\t\t\t\t\t\"-framework\",\n"); - fprintf(out, "\t\t\t\t\tCarbon,\n"); - fprintf(out, "\t\t\t\t);\n"); - fprintf(out, "\t\t\t\tPREBINDING = NO;\n"); - fprintf(out, "\t\t\t\tPRODUCT_NAME = %s;\n", name); - fprintf(out, "\t\t\t\tUSER_HEADER_SEARCH_PATHS = \"\";\n"); - fprintf(out, "\t\t\t\tWARNING_CFLAGS = (\"-Wno-format-security\",\"-Wall\");\n"); - fprintf(out, "\t\t\t\tWRAPPER_EXTENSION = app;\n"); - fprintf(out, "\t\t\t\tZERO_LINK = NO;\n"); -#endif fprintf(out, "\t\t\t};\n"); fprintf(out, "\t\t\tname = Release;\n"); fprintf(out, "\t\t};\n"); @@ -1225,7 +1189,6 @@ public: fprintf(out, "\t\t%s /* Debug */ = {\n", xcBuildConfigurationDebugID); fprintf(out, "\t\t\tisa = XCBuildConfiguration;\n"); fprintf(out, "\t\t\tbuildSettings = {\n"); -#ifdef XCODE_DEFAULT fprintf(out, "\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n"); fprintf(out, "\t\t\t\tCOPY_PHASE_STRIP = NO;\n"); fprintf(out, "\t\t\t\tDYLIB_COMPATIBILITY_VERSION = 1;\n"); @@ -1254,38 +1217,6 @@ public: fprintf(out, "\t\t\t\tPREBINDING = NO;\n"); fprintf(out, "\t\t\t\tPRODUCT_NAME = %s;\n", name); fprintf(out, "\t\t\t\tWARNING_CFLAGS = (\"-Wno-format-security\",\"-Wall\");\n"); -#else - fprintf(out, "\t\t\t\tALWAYS_SEARCH_USER_PATHS = YES;\n"); - fprintf(out, "\t\t\t\tCOPY_PHASE_STRIP = NO;\n"); - fprintf(out, "\t\t\t\tDYLIB_COMPATIBILITY_VERSION = 1;\n"); - fprintf(out, "\t\t\t\tDYLIB_CURRENT_VERSION = 1;\n"); - fprintf(out, "\t\t\t\tEXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES = \"*.nib *.lproj *.framework *.gch (*) CVS .svn *.xcodeproj *.xcode *.pbproj *.pbxproj\";\n"); - fprintf(out, "\t\t\t\tFRAMEWORK_VERSION = A;\n"); - fprintf(out, "\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n"); - fprintf(out, "\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = YES;\n"); - fprintf(out, "\t\t\t\tGCC_MODEL_TUNING = G5;\n"); - fprintf(out, "\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n"); - fprintf(out, "\t\t\t\tGCC_PFE_FILE_C_DIALECTS = \"c c++ objective-c++\";\n"); - fprintf(out, "\t\t\t\tHEADER_SEARCH_PATHS = (\n"); - fprintf(out, "\t\t\t\t\t../../ide/XCode3/,\n"); - fprintf(out, "\t\t\t\t\t../../,\n"); - fprintf(out, "\t\t\t\t\t../../png,\n"); - fprintf(out, "\t\t\t\t\t../../jpeg,\n"); - fprintf(out, "\t\t\t\t);\n"); - fprintf(out, "\t\t\t\tINFOPLIST_FILE = \"plists/%s-Info.plist\";\n", name); - fprintf(out, "\t\t\t\tINSTALL_PATH = \"@executable_path/../Frameworks\";\n"); - fprintf(out, "\t\t\t\tOTHER_LDFLAGS = (\n"); - fprintf(out, "\t\t\t\t\t\"-framework\",\n"); - fprintf(out, "\t\t\t\t\tCocoa,\n"); - fprintf(out, "\t\t\t\t\t\"-framework\",\n"); - fprintf(out, "\t\t\t\t\tCarbon,\n"); - fprintf(out, "\t\t\t\t);\n"); - fprintf(out, "\t\t\t\tPREBINDING = NO;\n"); - fprintf(out, "\t\t\t\tPRODUCT_NAME = %s;\n", name); - fprintf(out, "\t\t\t\tUSER_HEADER_SEARCH_PATHS = \"\";\n"); - fprintf(out, "\t\t\t\tWARNING_CFLAGS = (\"-Wno-format-security\",\"-Wall\");\n"); - fprintf(out, "\t\t\t\tZERO_LINK = YES;\n"); -#endif fprintf(out, "\t\t\t};\n"); fprintf(out, "\t\t\tname = Debug;\n"); fprintf(out, "\t\t};\n"); @@ -1293,7 +1224,6 @@ public: fprintf(out, "\t\t%s /* Release */ = {\n", xcBuildConfigurationReleaseID); fprintf(out, "\t\t\tisa = XCBuildConfiguration;\n"); fprintf(out, "\t\t\tbuildSettings = {\n"); -#ifdef XCODE_DEFAULT fprintf(out, "\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n"); fprintf(out, "\t\t\t\tCOPY_PHASE_STRIP = YES;\n"); fprintf(out, "\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n"); @@ -1322,39 +1252,6 @@ public: fprintf(out, "\t\t\t\tPRODUCT_NAME = %s;\n", name); fprintf(out, "\t\t\t\tWARNING_CFLAGS = (\"-Wno-format-security\",\"-Wall\");\n"); fprintf(out, "\t\t\t\tZERO_LINK = NO;\n"); -#else - fprintf(out, "\t\t\t\tALWAYS_SEARCH_USER_PATHS = YES;\n"); - fprintf(out, "\t\t\t\tCOPY_PHASE_STRIP = YES;\n"); - fprintf(out, "\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n"); - fprintf(out, "\t\t\t\tDYLIB_COMPATIBILITY_VERSION = 1;\n"); - fprintf(out, "\t\t\t\tDYLIB_CURRENT_VERSION = 1;\n"); - fprintf(out, "\t\t\t\tEXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES = \"*.nib *.lproj *.framework *.gch (*) CVS .svn *.xcodeproj *.xcode *.pbproj *.pbxproj\";\n"); - fprintf(out, "\t\t\t\tFRAMEWORK_VERSION = A;\n"); - fprintf(out, "\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n"); - fprintf(out, "\t\t\t\tGCC_MODEL_TUNING = G5;\n"); - fprintf(out, "\t\t\t\tGCC_PFE_FILE_C_DIALECTS = \"c c++ objective-c++\";\n"); - fprintf(out, "\t\t\t\tHEADER_SEARCH_PATHS = (\n"); - fprintf(out, "\t\t\t\t\t../../ide/XCode3/,\n"); - fprintf(out, "\t\t\t\t\t../../,\n"); - fprintf(out, "\t\t\t\t\t../../png,\n"); - fprintf(out, "\t\t\t\t\t../../jpeg,\n"); - fprintf(out, "\t\t\t\t);\n"); - fprintf(out, "\t\t\t\tINFOPLIST_FILE = \"plists/%s-Info.plist\";\n", name); - fprintf(out, "\t\t\t\tINSTALL_PATH = \"@executable_path/../Frameworks\";\n"); - fprintf(out, "\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.2;\n"); - fprintf(out, "\t\t\t\tOTHER_LDFLAGS = (\n"); - fprintf(out, "\t\t\t\t\"-framework\",\n"); - fprintf(out, "\t\t\t\tCocoa,\n"); - fprintf(out, "\t\t\t\t\t\"-framework\",\n"); - fprintf(out, "\t\t\t\t\tCarbon,\n"); - fprintf(out, "\t\t\t\t);\n"); - fprintf(out, "\t\t\t\tPREBINDING = NO;\n"); - fprintf(out, "\t\t\t\tPRODUCT_NAME = %s;\n", name); - fprintf(out, "\t\t\t\tSDKROOT = \"\";\n"); - fprintf(out, "\t\t\t\tUSER_HEADER_SEARCH_PATHS = \"\";\n"); - fprintf(out, "\t\t\t\tWARNING_CFLAGS = (\"-Wno-format-security\",\"-Wall\");\n"); - fprintf(out, "\t\t\t\tZERO_LINK = NO;\n"); -#endif fprintf(out, "\t\t\t};\n"); fprintf(out, "\t\t\tname = Release;\n"); fprintf(out, "\t\t};\n"); @@ -1567,8 +1464,13 @@ public: fprintf(f, "\t\t</dict>\n"); fprintf(f, "\t</array>\n"); } - fprintf(f, "\t<key>CFBundleExecutable</key>\n"); - fprintf(f, "\t<string>${EXECUTABLE_NAME}</string>\n"); + if (fmwk) { + fprintf(f, "\t<key>CFBundleName</key>\n"); + fprintf(f, "\t<string>${PRODUCT_NAME}</string>\n"); + } else { + fprintf(f, "\t<key>CFBundleExecutable</key>\n"); + fprintf(f, "\t<string>${EXECUTABLE_NAME}</string>\n"); + } // find the first suitable icon file if there is one Fl_Preferences extsDB(target_db, "externals"); int i, n = extsDB.groups(); @@ -1596,6 +1498,10 @@ public: fprintf(f, "\t<string>FLTK</string>\n"); fprintf(f, "\t<key>CFBundleVersion</key>\n"); fprintf(f, "\t<string>1.0</string>\n"); + fprintf(f, "\t<key>NSHumanReadableCopyright</key>\n"); + fprintf(f, "\t<string>Copyright 1998-2010 by Bill Spitzak and others.</string>\n"); + fprintf(f, "\t<key>CFBundleGetInfoString</key>\n"); + fprintf(f, "\t<string>Part of the FLTK library. Please visit www.fltk.org.</string>\n"); fprintf(f, "</dict>\n"); fprintf(f, "\t</plist>\n"); fclose(f); |
