]> git.sesse.net Git - mlt/commitdiff
Conditional compilation of gtk2 components
authorlilo_booter <lilo_booter@d19143bc-622f-0410-bfdd-b5b2a6649095>
Wed, 13 Apr 2005 12:47:11 +0000 (12:47 +0000)
committerlilo_booter <lilo_booter@d19143bc-622f-0410-bfdd-b5b2a6649095>
Wed, 13 Apr 2005 12:47:11 +0000 (12:47 +0000)
git-svn-id: https://mlt.svn.sourceforge.net/svnroot/mlt/trunk/mlt@696 d19143bc-622f-0410-bfdd-b5b2a6649095

src/modules/gtk2/Makefile
src/modules/gtk2/configure
src/modules/gtk2/factory.c

index b04e00af477829cf1dc84f576a0cb0f23b70236a..90193330671578505c1a3ef62482c6c54467051d 100644 (file)
@@ -1,22 +1,33 @@
 include ../../../config.mak
+include config.mak
 
 TARGET = ../libmltgtk2$(LIBSUF)
 
-OBJS = factory.o \
-          consumer_gtk2.o \
-          producer_pixbuf.o \
-          producer_pango.o \
-          pixops.o \
-          filter_rescale.o
+OBJS = factory.o
+
+ifdef USE_GTK2
+OBJS += consumer_gtk2.o
+CFLAGS += `pkg-config gtk+-2.0 --cflags`
+LDFLAGS += `pkg-config gtk+-2.0 --libs`
+endif
+
+ifdef USE_PIXBUF
+OBJS += producer_pixbuf.o pixops.o filter_rescale.o
+CFLAGS += `pkg-config gdk-pixbuf-2.0 --cflags`
+LDFLAGS += `pkg-config gdk-pixbuf-2.0 --libs`
+endif
 
 ifdef MMX_FLAGS
 ASM_OBJS = have_mmx.o scale_line_22_yuv_mmx.o
 endif
 
-CFLAGS += `pkg-config gtk+-2.0 --cflags` `pkg-config gdk-pixbuf-2.0 --cflags` `pkg-config pangoft2 --cflags` -I../..
-
-LDFLAGS += `pkg-config gtk+-2.0 --libs` `pkg-config gdk-pixbuf-2.0 --libs` `pkg-config pangoft2 --libs`
+ifdef USE_PANGO
+OBJS += producer_pango.o
+CFLAGS += `pkg-config pangoft2 --cflags`
+LDFLAGS += `pkg-config pangoft2 --libs`
+endif
 
+CFLAGS += -I../..
 LDFLAGS+=-L../../framework -lmlt
 
 SRCS := $(OBJS:.o=.c)
index a4d0e492e9caf4e1f64530beb6f208f305e9fcd3..bfc06e3f4f92acfc20708c32e7a03683504dbb26 100755 (executable)
@@ -3,18 +3,41 @@
 if [ "$help" != "1" ]
 then
 
-cat << EOF >> ../producers.dat
-pixbuf                 libmltgtk2$LIBSUF
-pango                  libmltgtk2$LIBSUF
-EOF
+       pkg-config gtk+-2.0 2> /dev/null
+       disable_gtk2=$?
 
-cat << EOF >> ../filters.dat
-gtkrescale             libmltgtk2$LIBSUF
-EOF
+       pkg-config gdk-pixbuf-2.0 2> /dev/null
+       disable_pixbuf=$?
 
-cat << EOF >> ../consumers.dat
-gtk2_preview   libmltgtk2$LIBSUF
-EOF
+       pkg-config pangoft2 2> /dev/null
+       disable_pango=$?
 
+       if [ "$disable_gtk2" != "0" -a "$disable_pixbuf" != 0 -a "$disable_pango" != "0" ]
+       then
+               echo No GTK2 components found - disabling
+               touch ../disable-gtk2
+               exit 0
+       fi
+
+       [ "$disable_gtk2" != "0" ] && echo "- gtk2 not found: gtk2 preview disabled"
+       [ "$disable_pixbuf" != "0" ] && echo "- pixbuf not found: pixbuf loader and rescaler disabled"
+       [ "$disable_pango" != "0" ] && echo "- pango not found: pango titler disabled"
+
+       echo > config.h
+       [ "$disable_gtk2" == "0" ] && echo "#define USE_GTK2" >> config.h
+       [ "$disable_pixbuf" == "0" ] && echo "#define USE_PIXBUF" >> config.h
+       [ "$disable_pango" == "0" ] && echo "#define USE_PANGO" >> config.h
+
+       echo > config.mak
+       [ "$disable_gtk2" == "0" ] && echo "USE_GTK2=1" >> config.mak
+       [ "$disable_pixbuf" == "0" ] && echo "USE_PIXBUF=1" >> config.mak
+       [ "$disable_pango" == "0" ] && echo "USE_PANGO=1" >> config.mak
+
+       [ "$disable_pixbuf" == "0" ] && echo "pixbuf                    libmltgtk2$LIBSUF" >> ../producers.dat
+       [ "$disable_pango" == "0" ] && echo "pango                      libmltgtk2$LIBSUF" >> ../producers.dat
+       [ "$disable_pixbuf" == "0" ] && echo "gtkrescale                libmltgtk2$LIBSUF" >> ../filters.dat
+       [ "$disable_gtk2" == "0" ] && echo "gtk2_preview        libmltgtk2$LIBSUF" >> ../consumers.dat
+
+       exit 0
 fi
 
index 5fd196244f5e7cbb1f941a05f9a14559f975d736..5a093dd50e20696d5ee81f3b486ec2de0bc68db6 100644 (file)
  * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
+#include "config.h"
 #include <string.h>
+
+#ifdef USE_PIXBUF
 #include <gdk-pixbuf/gdk-pixbuf.h>
-#include "consumer_gtk2.h"
 #include "producer_pixbuf.h"
-#include "producer_pango.h"
 #include "filter_rescale.h"
+#endif
+
+#ifdef USE_GTK2
+#include "consumer_gtk2.h"
+#endif
+
+#ifdef USE_PANGO
+#include "producer_pango.h"
+#endif
 
 static void initialise( )
 {
@@ -38,18 +48,29 @@ static void initialise( )
 void *mlt_create_producer( char *id, void *arg )
 {
        initialise( );
+
+#ifdef USE_PIXBUF
        if ( !strcmp( id, "pixbuf" ) )
                return producer_pixbuf_init( arg );
-       else if ( !strcmp( id, "pango" ) )
+#endif
+
+#ifdef USE_PANGO
+       if ( !strcmp( id, "pango" ) )
                return producer_pango_init( arg );
+#endif
+
        return NULL;
 }
 
 void *mlt_create_filter( char *id, void *arg )
 {
        initialise( );
+
+#ifdef USE_PIXBUF
        if ( !strcmp( id, "gtkrescale" ) )
                return filter_rescale_init( arg );
+#endif
+
        return NULL;
 }
 
@@ -61,8 +82,12 @@ void *mlt_create_transition( char *id, void *arg )
 void *mlt_create_consumer( char *id, void *arg )
 {
        initialise( );
+
+#ifdef USE_GTK2
        if ( !strcmp( id, "gtk2_preview" ) )
                return consumer_gtk2_preview_init( arg );
+#endif
+
        return NULL;
 }