Author: manolo
Date: 2010-12-17 02:43:41 -0800 (Fri, 17 Dec 2010)
New Revision: 8049
Log:
The 3 objective-c++ files used for the Mac OS X support are no longer included
by other files but added to the list of source files to be compiled
for Mac OS X only. Support files for autoconf/configure/make, CMake and Xcode
are also modified accordingly.


Modified:
   branches/branch-1.3/configure.in
   branches/branch-1.3/fluid/ide_maketools.cxx
   branches/branch-1.3/fluid/ide_support.cxx
   branches/branch-1.3/fluid/ide_xcode.cxx
   branches/branch-1.3/makeinclude.in
   branches/branch-1.3/src/CMakeLists.txt
   branches/branch-1.3/src/Fl.cxx
   branches/branch-1.3/src/Fl_Native_File_Chooser.cxx
   branches/branch-1.3/src/Fl_Printer.cxx
   branches/branch-1.3/src/Fl_cocoa.mm
   branches/branch-1.3/src/Makefile

Modified: branches/branch-1.3/configure.in
===================================================================
--- branches/branch-1.3/configure.in    2010-12-16 20:23:57 UTC (rev 8048)
+++ branches/branch-1.3/configure.in    2010-12-17 10:43:41 UTC (rev 8049)
@@ -36,7 +36,11 @@
 dnl So --with-archflags option is used during "checking size of long"
 if test `uname` = Darwin; then
   CFLAGS="$CFLAGS $with_archflags"
+  USEMMFILES="Yes"
+else
+  USEMMFILES="No"
 fi
+AC_SUBST(USEMMFILES)
 
 dnl FLTK library versions...
 FL_MAJOR_VERSION=1

Modified: branches/branch-1.3/fluid/ide_maketools.cxx
===================================================================
--- branches/branch-1.3/fluid/ide_maketools.cxx 2010-12-16 20:23:57 UTC (rev 
8048)
+++ branches/branch-1.3/fluid/ide_maketools.cxx 2010-12-17 10:43:41 UTC (rev 
8049)
@@ -490,6 +490,11 @@
     fputs("\tfl_utf8.cxx \\\n", f);
     fputs("\tps_image.cxx\n", f);
     fputs("\n", f);
+    
+    fputs("OBJCPPFILES = \\\n", f);
+    fputs("\tFl_cocoa.mm Fl_Quartz_Printer.mm 
Fl_Native_File_Chooser_MAC.mm\n", f);
+    fputs("\n", f);
+    
     fputs("FLCPPFILES = \\\n", f);
     fputs("\tforms_compatability.cxx \\\n", f);
     fputs("\tforms_bitmap.cxx \\\n", f);
@@ -538,7 +543,12 @@
     fputs("\n", f);
     fputs("include ../makeinclude\n", f);
     fputs("\n", f);
-    fputs("OBJECTS = $(CPPFILES:.cxx=.o) $(CFILES:.c=.o) 
$(UTF8CFILES:.c=.o)\n", f);
+    
+    fputs("MMFILES = $(shell \\\n"
+         "\tif [ $(USEMMFILES) = Yes ]; then echo $(OBJCPPFILES);\\\n"
+         "\tfi)\n\n", f);
+    
+    fputs("OBJECTS = $(MMFILES:.mm=.o) $(CPPFILES:.cxx=.o) $(CFILES:.c=.o) 
$(UTF8CFILES:.c=.o)\n", f);
     fputs("GLOBJECTS = $(GLCPPFILES:.cxx=.o)\n", f);
     fputs("FLOBJECTS = $(FLCPPFILES:.cxx=.o)\n", f);
     fputs("IMGOBJECTS = $(IMGCPPFILES:.cxx=.o)\n", f);
@@ -795,8 +805,8 @@
     fputs("\t\tlibfltk_gl.dylib libfltk_images.dylib \\\n", f);
     fputs("\t\tcmap core\n", f);
     fputs("\n", f);
-    fputs("depend:\t$(CPPFILES) $(FLCPPFILES) $(GLCPPFILES) $(IMGCPPFILES) 
$(CFILES) $(UTF8CFILES)\n", f);
-    fputs("\tmakedepend -Y -I.. -f makedepend $(CPPFILES) $(FLCPPFILES) \\\n", 
f);
+    fputs("depend:\t$(CPPFILES) $(MMFILES) $(FLCPPFILES) $(GLCPPFILES) 
$(IMGCPPFILES) $(CFILES) $(UTF8CFILES)\n", f);
+    fputs("\tmakedepend -Y -I.. -f makedepend $(CPPFILES) $(MMFILES) 
$(FLCPPFILES) \\\n", f);
     fputs("\t\t$(GLCPPFILES) $(IMGCPPFILES) $(CFILES) $(UTF8CFILES)\n", f);
     fputs("\n", f);
     fputs("# Automatically generated dependencies... generated on a Linux/Unix 
host !\n", f);
@@ -807,8 +817,11 @@
     fputs("# Please add only non-Linux/Unix files or such that are 
optional\n", f);
     fputs("# (like \"*xft*\") here:\n", f);
     fputs("Fl_get_key.o:\tFl_get_key_mac.cxx Fl_get_key_win32.cxx\n", f);
-    fputs("Fl_Native_File_Chooser.o : Fl_Native_File_Chooser_MAC.mm 
Fl_Native_File_Chooser_WIN32.cxx\n", f);
-    fputs("Fl.o:\t\tFl_mac.cxx Fl_win32.cxx Fl_cocoa.mm\n", f);
+    fputs("Fl_Native_File_Chooser.o : Fl_Native_File_Chooser_WIN32.cxx\n", f);
+    fputs("Fl_Native_File_Chooser_MAC.o : Fl_Native_File_Chooser_MAC.mm\n", f);
+    fputs("Fl_Quartz_Printer.o : Fl_Quartz_Printer.mm\n", f);
+    fputs("Fl.o:\t\tFl_win32.cxx\n", f);
+    fputs("Fl_cocoa.o:\t\tFl_cocoa.mm\n", f);
     fputs("fl_color.o:\tfl_color_mac.cxx fl_color_win32.cxx\n", f);
     fputs("fl_dnd.o:\tfl_dnd_mac.cxx fl_dnd_win32.cxx fl_dnd_x.cxx\n", f);
     fputs("fl_draw_image.o: fl_draw_image_mac.cxx fl_draw_image_win32.cxx\n", 
f);
@@ -816,7 +829,7 @@
     fputs("fl_read_image.o: fl_read_image_mac.cxx fl_read_image_win32.cxx\n", 
f);
     fputs("fl_set_fonts.o:\tfl_set_fonts_mac.cxx fl_set_fonts_x.cxx \\\n", f);
     fputs("\t\tfl_set_fonts_xft.cxx fl_set_fonts_win32.cxx\n", f);
-    fputs("Fl_Printer.o:\tFl_Quartz_Printer.mm Fl_GDI_Printer.cxx 
Fl_PS_Printer.cxx\n", f);
+    fputs("Fl_Printer.o:\tFl_GDI_Printer.cxx Fl_PostScript.cxx\n", f);
     fputs("\n", f);
     fputs("fl_arci.o:\t../FL/mac.H ../FL/win32.H\n", f);
     fputs("Fl_arg.o:\t../FL/mac.H ../FL/win32.H\n", f);

Modified: branches/branch-1.3/fluid/ide_support.cxx
===================================================================
--- branches/branch-1.3/fluid/ide_support.cxx   2010-12-16 20:23:57 UTC (rev 
8048)
+++ branches/branch-1.3/fluid/ide_support.cxx   2010-12-17 10:43:41 UTC (rev 
8049)
@@ -510,8 +510,11 @@
     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");
+
+    xcode_only(fltk_lib.add_source(files_db, "src/Fl_cocoa.mm"));
+    xcode_only(fltk_lib.add_source(files_db, "src/Fl_Quartz_Printer.mm"));
+    xcode_only(fltk_lib.add_source(files_db, 
"src/Fl_Native_File_Chooser_MAC.mm"));
     
-    
     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_Adjuster.H");
@@ -638,7 +641,7 @@
     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");    
+    fltk_lib.add_header(files_db, "FL/x.H");
     
     xcode_only(fltk_lib.add_external_lib(files_db, 
"/System/Library/Frameworks/AudioToolbox.framework"));
   }

Modified: branches/branch-1.3/fluid/ide_xcode.cxx
===================================================================
--- branches/branch-1.3/fluid/ide_xcode.cxx     2010-12-16 20:23:57 UTC (rev 
8048)
+++ branches/branch-1.3/fluid/ide_xcode.cxx     2010-12-17 10:43:41 UTC (rev 
8049)
@@ -29,7 +29,7 @@
  
     XCODE 3.0 IDE FILES
  
- The Xcode 3.0 IDE file format is using a quite comlex tree of multiply linked
+ The Xcode 3.0 IDE file format is using a quite complex tree of multiply linked
  entries to leave as much possibilities to developers as somehow possible. To 
  write this format, we will need to generate a bunch of new unique IDs that 
will
  be stored in the DB.
@@ -447,10 +447,6 @@
       const char *filetype = "test";
       const char *ext = fileDB.fileExt();
       if (!ext) {
-      } else if (strcmp(pathAndName, "src/Fl.cxx")==0
-               ||strcmp(pathAndName, "src/Fl_Native_File_Chooser.cxx")==0
-               ||strcmp(pathAndName, "src/Fl_Printer.cxx")==0) { // FIXME: bad 
hack!
-        filetype = "sourcecode.cpp.objcpp";
       } else if (strcmp(ext, ".cxx")==0) {
         filetype = "sourcecode.cpp.cpp";
       } else if (strcmp(ext, ".H")==0) {

Modified: branches/branch-1.3/makeinclude.in
===================================================================
--- branches/branch-1.3/makeinclude.in  2010-12-16 20:23:57 UTC (rev 8048)
+++ branches/branch-1.3/makeinclude.in  2010-12-17 10:43:41 UTC (rev 8049)
@@ -36,7 +36,7 @@
 srcdir         = @srcdir@
 docdir         = $(datadir)/doc/fltk
 VPATH          = @srcdir@
-
+USEMMFILES  = @USEMMFILES@
 # programs we use...
 HTMLDOC                = @HTMLDOC@
 DOXYDOC                = @DOXYDOC@
@@ -143,7 +143,7 @@
 .SILENT:
 
 # Build commands and filename extensions...
-.SUFFIXES:     .0 .1 .3 .6 .c .cxx .h .fl .man .o .z $(EXEEXT)
+.SUFFIXES:     .0 .1 .3 .6 .c .cxx .mm .h .fl .man .o .z $(EXEEXT)
 
 .o$(EXEEXT):
        echo Linking $...@...
@@ -155,16 +155,13 @@
 
 .cxx.o:
        echo Compiling $<...
-       @if test `uname` = Darwin -a $< = Fl.cxx ; then \
-               $(CXX) -I.. $(ARCHFLAGS) @PNGINC@ @JPEGINC@ @ZLIBINC@ 
$(CXXFLAGS) -x objective-c++ -c $< -o $@; \
-       elif test `uname` = Darwin -a  $< = Fl_Native_File_Chooser.cxx ; then \
-               $(CXX) -I.. $(ARCHFLAGS) @PNGINC@ @JPEGINC@ @ZLIBINC@ 
$(CXXFLAGS) -x objective-c++ -c $< -o $@; \
-       elif test `uname` = Darwin -a  $< = Fl_Printer.cxx ; then \
-               $(CXX) -I.. $(ARCHFLAGS) @PNGINC@ @JPEGINC@ @ZLIBINC@ 
$(CXXFLAGS) -x objective-c++ -c $< -o $@; \
-       else \
-               $(CXX) -I.. $(ARCHFLAGS) @PNGINC@ @JPEGINC@ @ZLIBINC@ 
$(CXXFLAGS) -c $< -o $@; \
-       fi
+       $(CXX) -I.. $(ARCHFLAGS) @PNGINC@ @JPEGINC@ @ZLIBINC@ $(CXXFLAGS) -c $< 
-o $@
+       
+.mm.o:
+       echo Compiling $<...
+       $(CXX) -I.. $(ARCHFLAGS) $(CXXFLAGS) -x objective-c++ -c $< -o $@
 
+
 .man.0 .man.1 .man.3 .man.6:
        echo Formatting $<...
        rm -f $@

Modified: branches/branch-1.3/src/CMakeLists.txt
===================================================================
--- branches/branch-1.3/src/CMakeLists.txt      2010-12-16 20:23:57 UTC (rev 
8048)
+++ branches/branch-1.3/src/CMakeLists.txt      2010-12-17 10:43:41 UTC (rev 
8049)
@@ -194,13 +194,18 @@
 )
 
 if(APPLE)
-   set_source_files_properties(
-      Fl.cxx Fl_Native_File_Chooser.cxx Fl_Printer.cxx
-      PROPERTIES COMPILE_FLAGS "-x objective-c++")
+       set(MMFILES
+               Fl_cocoa.mm
+               Fl_Quartz_Printer.mm
+               Fl_Native_File_Chooser_MAC.mm
+               )
+else()
+   set(MMFILES
+      )
 endif(APPLE)
 
 #######################################################################
-add_library(fltk STATIC ${CPPFILES} ${CFILES} fl_call_main.c)
+add_library(fltk STATIC ${CPPFILES} ${MMFILES} ${CFILES} fl_call_main.c)
 set_target_properties(fltk PROPERTIES CLEAN_DIRECT_OUTPUT 1)
 if(MSVC)
    if(OPTION_LARGE_FILE)
@@ -307,7 +312,7 @@
 if(OPTION_BUILD_SHARED_LIBS)
 
 #######################################################################
-add_library(fltk_SHARED SHARED ${CPPFILES} ${CFILES})
+add_library(fltk_SHARED SHARED ${CPPFILES} ${MMFILES} ${CFILES})
 set_target_properties(fltk_SHARED
    PROPERTIES CLEAN_DIRECT_OUTPUT 1
    VERSION ${FLTK_VERSION_MAJOR}.${FLTK_VERSION_MINOR}

Modified: branches/branch-1.3/src/Fl.cxx
===================================================================
--- branches/branch-1.3/src/Fl.cxx      2010-12-16 20:23:57 UTC (rev 8048)
+++ branches/branch-1.3/src/Fl.cxx      2010-12-17 10:43:41 UTC (rev 8049)
@@ -48,10 +48,6 @@
 #include <stdlib.h>
 #include "flstring.h"
 
-#if defined(__APPLE__)
-#import <Cocoa/Cocoa.h>
-#endif
-
 #if defined(DEBUG) || defined(DEBUG_WATCH)
 #  include <stdio.h>
 #endif // DEBUG || DEBUG_WATCH
@@ -63,6 +59,8 @@
 void fl_cleanup_pens(void);
 void fl_release_dc(HWND,HDC);
 void fl_cleanup_dc_list(void);
+#elif defined(__APPLE__)
+extern double fl_MAC_flush_and_wait(double time_to_wait, char in_idle);
 #endif // WIN32
 
 //
@@ -420,13 +418,7 @@
     // the idle function may turn off idle, we can then wait:
     if (idle) time_to_wait = 0.0;
   }
-  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
-  flush();
-  if (idle && !in_idle) // 'idle' may have been set within flush()
-    time_to_wait = 0.0;
-  double retval = fl_wait(time_to_wait);
-  [pool release];
-  return retval;
+  return fl_MAC_flush_and_wait(time_to_wait, in_idle);
 
 #else
 
@@ -1556,8 +1548,7 @@
 
 #ifdef WIN32
 #  include "Fl_win32.cxx"
-#elif defined(__APPLE__)
-#  include "Fl_cocoa.mm"
+//#elif defined(__APPLE__)
 #endif
 
 //

Modified: branches/branch-1.3/src/Fl_Native_File_Chooser.cxx
===================================================================
--- branches/branch-1.3/src/Fl_Native_File_Chooser.cxx  2010-12-16 20:23:57 UTC 
(rev 8048)
+++ branches/branch-1.3/src/Fl_Native_File_Chooser.cxx  2010-12-17 10:43:41 UTC 
(rev 8049)
@@ -32,7 +32,7 @@
 
 // Use Apple's chooser
 #ifdef __APPLE__
-#include "Fl_Native_File_Chooser_MAC.mm"
+//#include "Fl_Native_File_Chooser_MAC.mm"
 #endif
 
 // All else falls back to FLTK's own chooser

Modified: branches/branch-1.3/src/Fl_Printer.cxx
===================================================================
--- branches/branch-1.3/src/Fl_Printer.cxx      2010-12-16 20:23:57 UTC (rev 
8048)
+++ branches/branch-1.3/src/Fl_Printer.cxx      2010-12-17 10:43:41 UTC (rev 
8049)
@@ -29,7 +29,7 @@
 #include <FL/Fl_Printer.H>
 
 #ifdef __APPLE__
-#include "Fl_Quartz_Printer.mm"
+//#include "Fl_Quartz_Printer.mm"
 #elif defined(WIN32)
 #include "Fl_GDI_Printer.cxx"
 #endif

Modified: branches/branch-1.3/src/Fl_cocoa.mm
===================================================================
--- branches/branch-1.3/src/Fl_cocoa.mm 2010-12-16 20:23:57 UTC (rev 8048)
+++ branches/branch-1.3/src/Fl_cocoa.mm 2010-12-17 10:43:41 UTC (rev 8049)
@@ -703,6 +703,16 @@
   return (got_events);
 }
 
+double fl_MAC_flush_and_wait(double time_to_wait, char in_idle) {
+  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+  Fl::flush();
+  if (Fl::idle && !in_idle) // 'idle' may have been set within flush()
+    time_to_wait = 0.0;
+  double retval = fl_wait(time_to_wait);
+  [pool release];
+  return retval;
+}
+
 // updates Fl::e_x, Fl::e_y, Fl::e_x_root, and Fl::e_y_root
 static void update_e_xy_and_e_xy_root(NSWindow *nsw)
 {

Modified: branches/branch-1.3/src/Makefile
===================================================================
--- branches/branch-1.3/src/Makefile    2010-12-16 20:23:57 UTC (rev 8048)
+++ branches/branch-1.3/src/Makefile    2010-12-17 10:43:41 UTC (rev 8049)
@@ -166,7 +166,12 @@
        screen_xywh.cxx \
        fl_utf8.cxx \
        ps_image.cxx
-
+       
+OBJCPPFILES = \
+    Fl_cocoa.mm \
+    Fl_Quartz_Printer.mm \
+    Fl_Native_File_Chooser_MAC.mm
+       
 FLCPPFILES = \
        forms_compatability.cxx \
        forms_bitmap.cxx \
@@ -215,7 +220,12 @@
 
 include ../makeinclude
 
-OBJECTS = $(CPPFILES:.cxx=.o) $(CFILES:.c=.o) $(UTF8CFILES:.c=.o)
+MMFILES = $(shell \
+       if [ $(USEMMFILES) = Yes ]; then echo $(OBJCPPFILES);\
+       fi)
+
+
+OBJECTS =  $(MMFILES:.mm=.o) $(CPPFILES:.cxx=.o) $(CFILES:.c=.o) 
$(UTF8CFILES:.c=.o)
 GLOBJECTS = $(GLCPPFILES:.cxx=.o)
 FLOBJECTS = $(FLCPPFILES:.cxx=.o)
 IMGOBJECTS = $(IMGCPPFILES:.cxx=.o)
@@ -472,8 +482,8 @@
                libfltk_gl.dylib libfltk_images.dylib \
                cmap core
 
-depend:        $(CPPFILES) $(FLCPPFILES) $(GLCPPFILES) $(IMGCPPFILES) 
$(CFILES) $(UTF8CFILES)
-       makedepend -Y -I.. -f makedepend $(CPPFILES) $(FLCPPFILES) \
+depend:        $(CPPFILES) $(MMFILES) $(FLCPPFILES) $(GLCPPFILES) 
$(IMGCPPFILES) $(CFILES) $(UTF8CFILES)
+       makedepend -Y -I.. -f makedepend $(CPPFILES) $(MMFILES) $(FLCPPFILES) \
                $(GLCPPFILES) $(IMGCPPFILES) $(CFILES) $(UTF8CFILES)
 
 # Automatically generated dependencies... generated on a Linux/Unix host !
@@ -484,8 +494,10 @@
 # Please add only non-Linux/Unix files or such that are optional
 # (like "*xft*") here:
 Fl_get_key.o:  Fl_get_key_mac.cxx Fl_get_key_win32.cxx
-Fl_Native_File_Chooser.o : Fl_Native_File_Chooser_MAC.mm 
Fl_Native_File_Chooser_WIN32.cxx
-Fl.o:          Fl_mac.cxx Fl_win32.cxx Fl_cocoa.mm
+Fl_Native_File_Chooser.o : Fl_Native_File_Chooser_WIN32.cxx
+Fl_Native_File_Chooser_MAC.o:  Fl_Native_File_Chooser_MAC.mm
+Fl.o:          Fl_win32.cxx
+Fl_cocoa.o:    Fl_cocoa.mm
 fl_color.o:    fl_color_mac.cxx fl_color_win32.cxx
 fl_dnd.o:      fl_dnd_mac.cxx fl_dnd_win32.cxx fl_dnd_x.cxx
 fl_draw_image.o: fl_draw_image_mac.cxx fl_draw_image_win32.cxx
@@ -493,7 +505,8 @@
 fl_read_image.o: fl_read_image_mac.cxx fl_read_image_win32.cxx
 fl_set_fonts.o:        fl_set_fonts_mac.cxx fl_set_fonts_x.cxx \
                fl_set_fonts_xft.cxx fl_set_fonts_win32.cxx
-Fl_Printer.o:  Fl_Quartz_Printer.mm Fl_GDI_Printer.cxx Fl_PostScript.cxx
+Fl_Printer.o: Fl_GDI_Printer.cxx Fl_PostScript.cxx
+Fl_Quartz_Printer.o:   Fl_Quartz_Printer.mm
 fl_arci.o:     ../FL/mac.H ../FL/win32.H
 Fl_arg.o:      ../FL/mac.H ../FL/win32.H
 fl_ask.o:      ../FL/mac.H ../FL/win32.H

_______________________________________________
fltk-commit mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-commit

Reply via email to