瀏覽代碼

o patch by Martin Sucha for pangocairo:
* makes gtk2 package depend on cairo package
* adds required definitions to glib and pango
* adds pangocairo library bindings
* changes cairo external library name from cairo to libcairo-2

git-svn-id: trunk@13365 -

florian 16 年之前
父節點
當前提交
61f7422d22

+ 11 - 24
packages/Makefile

@@ -1,5 +1,5 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2009/05/09]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2008/09/04]
 #
 default: all
 MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded avr-embedded armeb-linux armeb-embedded
@@ -115,10 +115,6 @@ FPC:=$(shell $(FPCPROG) -PB)
 endif
 ifneq ($(findstring Error,$(FPC)),)
 override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-else
-ifeq ($(strip $(wildcard $(FPC))),)
-FPC:=$(firstword $(FPCPROG))
-endif
 endif
 else
 override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
@@ -656,7 +652,6 @@ endif
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 SHORTSUFFIX=dos
-IMPORTLIBPREFIX=
 endif
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
@@ -664,7 +659,6 @@ OEXT=.obj
 ASMEXT=.asm
 SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
-IMPORTLIBPREFIX=
 endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
@@ -701,7 +695,6 @@ STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHORTSUFFIX=os2
 ECHO=echo
-IMPORTLIBPREFIX=
 endif
 ifeq ($(OS_TARGET),emx)
 BATCHEXT=.cmd
@@ -710,7 +703,6 @@ STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHORTSUFFIX=emx
 ECHO=echo
-IMPORTLIBPREFIX=
 endif
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
@@ -750,20 +742,17 @@ ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 STATICLIBPREFIX=
 SHORTSUFFIX=nw
-IMPORTLIBPREFIX=imp
 endif
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 STATICLIBPREFIX=
 SHORTSUFFIX=nwl
-IMPORTLIBPREFIX=imp
 endif
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 EXEEXT=
 DEBUGSYMEXT=.xcoff
 SHORTSUFFIX=mac
-IMPORTLIBPREFIX=imp
 endif
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
@@ -790,17 +779,14 @@ STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
 STATICLIBPREFIX=
 SHORTSUFFIX=v1
-IMPORTLIBPREFIX=
 endif
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 SHORTSUFFIX=dos
-IMPORTLIBPREFIX=
 endif
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 SHORTSUFFIX=wat
-IMPORTLIBPREFIX=
 endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
@@ -847,7 +833,6 @@ STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
 SHORTSUFFIX=os2
 ECHO=echo
-IMPORTLIBPREFIX=
 endif
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
@@ -908,7 +893,6 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.nlm
 EXEEXT=.nlm
 SHORTSUFFIX=nw
-IMPORTLIBPREFIX=imp
 endif
 ifeq ($(OS_TARGET),netwlibc)
 STATICLIBPREFIX=
@@ -920,7 +904,6 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.nlm
 EXEEXT=.nlm
 SHORTSUFFIX=nwl
-IMPORTLIBPREFIX=imp
 endif
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
@@ -932,7 +915,6 @@ STATICLIBEXT=.a
 EXEEXT=
 DEBUGSYMEXT=.xcoff
 SHORTSUFFIX=mac
-IMPORTLIBPREFIX=imp
 endif
 endif
 ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
@@ -8493,11 +8475,11 @@ gtk1_debug: x11_debug opengl_debug
 gtk1_smart: x11_smart opengl_smart
 gtk1_release: x11_release opengl_release
 gtk1_shared: x11_shared opengl_shared
-gtk2_all: x11_all
-gtk2_shared: x11_shared
-gtk2_smart: x11_smart
-gtk2_debug: x11_debug
-gtk2_release: x11_release
+gtk2_all: x11_all cairo_all
+gtk2_shared: x11_shared cairo_shared
+gtk2_smart: x11_smart cairo_smart
+gtk2_debug: x11_debug cairo_debug
+gtk2_release: x11_release cairo_release
 else
 ifeq ($(findstring $(OS_TARGET),os2 emx),)
 gtk1_all:  opengl_all
@@ -8506,6 +8488,11 @@ gtk1_smart:  opengl_smart
 gtk1_release:  opengl_release
 gtk1_shared:  opengl_shared
 endif
+gtk2_all: cairo_all
+gtk2_shared: cairo_shared
+gtk2_smart: cairo_smart
+gtk2_debug: cairo_debug
+gtk2_release: cairo_release
 endif
 imlib_all: gtk1_all x11_all
 imlib_shared: gtk1_shared x11_shared

+ 11 - 5
packages/Makefile.fpc

@@ -227,11 +227,11 @@ gtk1_smart: x11_smart opengl_smart
 gtk1_release: x11_release opengl_release
 gtk1_shared: x11_shared opengl_shared
 
-gtk2_all: x11_all
-gtk2_shared: x11_shared
-gtk2_smart: x11_smart
-gtk2_debug: x11_debug
-gtk2_release: x11_release
+gtk2_all: x11_all cairo_all
+gtk2_shared: x11_shared cairo_shared
+gtk2_smart: x11_smart cairo_smart
+gtk2_debug: x11_debug cairo_debug
+gtk2_release: x11_release cairo_release
 else
 ifeq ($(findstring $(OS_TARGET),os2 emx),)
 gtk1_all:  opengl_all
@@ -240,6 +240,12 @@ gtk1_smart:  opengl_smart
 gtk1_release:  opengl_release
 gtk1_shared:  opengl_shared
 endif
+
+gtk2_all: cairo_all
+gtk2_shared: cairo_shared
+gtk2_smart: cairo_smart
+gtk2_debug: cairo_debug
+gtk2_release: cairo_release
 endif
 
 imlib_all: gtk1_all x11_all

+ 14 - 1
packages/cairo/src/cairo.pp

@@ -55,7 +55,20 @@ interface
 Uses CTypes;
 
 const
-  LIB_CAIRO = 'cairo';
+{$ifdef win32}
+  LIB_CAIRO = 'libcairo-2.dll';
+  {$IFDEF FPC}
+    {$ifndef NO_SMART_LINK}
+      {$smartlink on}
+    {$endif}
+  {$ENDIF}
+{$else}
+  {$ifdef UseCustomLibs}
+  LIB_CAIRO = '';
+  {$else}
+  LIB_CAIRO = 'libcairo.so.2';
+  {$endif}
+{$endif}
 
 {$IFDEF FPC}
   {$PACKRECORDS C}

文件差異過大導致無法顯示
+ 489 - 118
packages/gtk2/Makefile


+ 3 - 2
packages/gtk2/Makefile.fpc

@@ -8,6 +8,7 @@ version=2.2.2
 
 [require]
 libc=y
+packages=cairo
 packages_beos=x11
 packages_haiku=x11
 packages_linux=x11
@@ -20,10 +21,10 @@ packages_darwin=x11
 [target]
 units=src/buildgtk2 
 exampledirs=examples
-implicitunits=glib2 atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
+implicitunits=glib2 atk pango pangocairo gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 
 [compiler]
-unitdir=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkext src/$(GTK2X11)
+unitdir=src src/glib src/atk src/pango src/pangocairo src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkext src/$(GTK2X11)
 includedir=$(GTK2X11INCLUDE)
 
 [install]

+ 10 - 0
packages/gtk2/fpmake.pp

@@ -26,6 +26,7 @@ begin
     P.NeedLibC:= true;  // true for headers that indirectly link to libc?
 
     P.Dependencies.Add('x11',AllUnixOSes);
+    P.Dependencies.Add('cairo');
 
     T:=P.Targets.AddUnit('src/atk/atk.pas');
      T.IncludePath.Add('src/atk');
@@ -129,6 +130,7 @@ begin
           AddUnit('gdkglext');
           AddUnit('gtkglext');
           AddUnit('gdk2x',AllUnixOSes);
+          AddUnit('pangocairo');
         end;
     T:=P.Targets.AddUnit('src/gtk+/gdk-pixbuf/gdk2pixbuf.pas');
       T.IncludePath.Add('src/gtk+/gdk-pixbuf');
@@ -1213,6 +1215,14 @@ begin
           AddInclude('pango-tabs.inc');
           AddUnit('glib2');
         end;
+    
+    T:=P.Targets.AddUnit('src/pangocairo/pangocairo.pas');
+      T.IncludePath.Add('src/pangocairo');
+      with T.Dependencies do
+        begin
+          AddUnit('glib2');
+          AddUnit('pango');
+        end;
 
     T:=P.Targets.AddUnit('src/gtkext/gtk2ext.pp');
       T.IncludePath.Add('src/gtkext');

+ 1 - 1
packages/gtk2/src/buildgtk2.pp

@@ -29,7 +29,7 @@ uses
 {$ifdef unix}  
   ,gdk2x
 {$endif unix}
-  ;
+  , pangocairo;
 
 implementation
 

+ 1 - 0
packages/gtk2/src/glib/gdataset.inc

@@ -9,6 +9,7 @@
 
 {$IFDEF read_interface_types}
   TGDataForeachFunc = procedure (key_id:TGQuark; data:gpointer; user_data:gpointer);cdecl;
+  GDestroyNotify = procedure (data:gpointer);cdecl;
 {$ENDIF read_interface_types}
 
 {$IFDEF read_interface_rest}

+ 1 - 1
packages/gtk2/src/gtk+/gdk/gdk2.pas

@@ -29,7 +29,7 @@ unit gdk2; // keep unit name lowercase for kylix
 
 interface
 
-uses glib2, gdk2pixbuf, pango;
+uses glib2, gdk2pixbuf, pango, cairo;
 
 const
 // OS dependent defines

+ 0 - 1
packages/gtk2/src/gtk+/gdk/gdkcairo.inc

@@ -1,7 +1,6 @@
 // included by gdk2.pp
 
 {$IFDEF read_interface_types}
-  Pcairo_t = pointer;
 {$ENDIF read_interface_types}
 
 //------------------------------------------------------------------------------

+ 1 - 0
packages/gtk2/src/pango/pangoincludes.inc

@@ -11,6 +11,7 @@
 {$include pango-fontmap.inc}
 {$include pango-glyph.inc}
 {$include pango-item.inc}
+{$include pango-glyph-item.inc}
 {$include pango-layout.inc}
 {$include pango-matrix.inc}
 { $include pango-enum-types.inc}

部分文件因文件數量過多而無法顯示