summaryrefslogtreecommitdiffstats
path: root/smoke/kde/generate.pl.in
diff options
context:
space:
mode:
Diffstat (limited to 'smoke/kde/generate.pl.in')
-rw-r--r--smoke/kde/generate.pl.in229
1 files changed, 0 insertions, 229 deletions
diff --git a/smoke/kde/generate.pl.in b/smoke/kde/generate.pl.in
deleted file mode 100644
index 1dfd3fd5..00000000
--- a/smoke/kde/generate.pl.in
+++ /dev/null
@@ -1,229 +0,0 @@
-#!/usr/bin/perl -w
-
-## Run this first, to generate the x_*.cpp files from the Qt headers
-## using kalyptus
-
-my $kalyptusdir = "@srcdir@/../../kalyptus";
-
-use File::Basename;
-use File::Copy qw|cp|;
-use File::Compare;
-use File::Find;
-use Cwd;
-
-my $here = getcwd;
-my $outdir = $here . "/generate.pl.tmpdir";
-my $finaloutdir = $here;
-my $defines = "qtdefines";
-my $headerlist = "@srcdir@/header_list";
-my $kdeheaderlist = "@srcdir@/kde_header_list";
-my $definespath = "$here/$defines";
-my $headerlistpath = "$here/$headerlist";
-my $kdeheaderlistpath = "$here/$kdeheaderlist";
-
-# If srcdir != builddir, then srcdir is probvably an absolute
-# path, and it makes no sense to prepend $here.
-$definespath = $defines if $defines =~ /^\//;
-$headerlistpath = $headerlist if $headerlist =~ /^\//;
-$kdeheaderlistpath = $kdeheaderlist if $kdeheaderlist =~ /^\//;
-
-## Note: outdir and finaloutdir should NOT be the same dir!
-
-# Delete all x_*.cpp files under outdir (or create outdir if nonexistent)
-if (-d $outdir) { system "rm -f $outdir/x_*.cpp"; } else { mkdir $outdir; }
-
-mkdir $finaloutdir unless (-d $finaloutdir);
-
-# Load the QT_NO_* macros found in "qtdefines". They'll be passed to kalyptus
-my $macros="";
-if ( -e $definespath ){
- print "Found '$defines'. Reading preprocessor symbols from there...\n";
- $macros = " --defines=$definespath ";
-}
-
-# Need to cd to kalyptus's directory so that perl finds Ast.pm etc.
-chdir "$kalyptusdir" or die "Couldn't go to $kalyptusdir (edit script to change dir)\n";
-
-# Find out which header files we need to parse
-# We don't want all of them - e.g. not template-based stuff
-my %excludes = (
- 'ntqaccessible.h' => 1, # Accessibility support is not compiled by defaut
- 'ntqassistantclient.h' => 1, # Not part of Qt (introduced in Qt-3.1)
- 'ntqmotif.h' => 1, #
- 'ntqmotifwidget.h' => 1, # Motif extension (introduced in Qt-3.1)
- 'ntqmotifdialog.h' => 1, #
- 'ntqxt.h' => 1, # Xt
- 'ntqxtwidget.h' => 1, # Xt
- 'ntqdns.h' => 1, # internal
- 'ntqgl.h' => 1, # OpenGL
- 'ntqglcolormap.h' => 1, # OpenGL
- 'ntqnp.h' => 1, # NSPlugin
- 'ntqttableview.h' => 1, # Not in Qt anymore...
- 'ntqtmultilineedit.h' => 1, # Not in Qt anymore...
- 'ntqwidgetfactory.h' => 1, # Just an interface
- 'ntqsharedmemory.h' => 1, # "not part of the Qt API" they say
- 'ntqwindowsstyle.h' => 1, # Qt windowsstyle, plugin
- 'ntqmotifstyle.h' => 1,
- 'ntqcompactstyle.h' => 1,
- 'ntqinterlacestyle.h' => 1,
- 'ntqmotifplusstyle.h' => 1,
- 'ntqsgistyle.h' => 1,
- 'ntqplatinumstyle.h' => 1,
- 'ntqcdestyle.h' => 1,
- 'ntqwindowsxpstyle.h' => 1 # play on the safe side
-);
-
-# Some systems have a QTDIR = TDEDIR = PREFIX
-# We need a complete list
-
-my %includes;
-open(HEADERS, $headerlistpath) or die "Couldn't open $headerlistpath: $!\n";
-map { chomp ; $includes{$_} = 1 unless /^\s*#/ } <HEADERS>;
-close HEADERS;
-
-# Find out which header files we need to parse
-# We don't want all of them - e.g. not template-based stuff
-my %kdeexcludes = (
-# These headers don't look suitable for inclusion:
- 'kallocator.h' => 1,
- 'kbookmarkimporter_crash.h' => 1,
- 'kbookmarkimporter_ie.h' => 1,
- 'kbookmarkimporter_opera.h' => 1,
- 'kbookmarkimporter_ns.h' => 1,
- 'kcrash.h' => 1,
- 'kdebug.h' => 1,
- 'kdebugclasses.h' => 1,
- 'kde_terminal_interface.h' => 1,
- 'kdirnotify_stub.h' => 1,
-
-# These headers currently give problems
- 'tdescreensaver.h' => 1,
- 'kdirnotify_stub.h' => 1,
- 'tdeio/uiserver_stub.h' => 1,
- 'tdeio/uiserver.h' => 1,
- 'tdeio/tdesasl.h' => 1,
- 'tdeio/kpac.h' => 1,
- 'tdeio/thumbcreator.h' => 1,
- 'tdeio/file.h' => 1,
- 'tdeio/chmodjob.h' => 1,
- 'tdeparts/genericfactory.h' => 1,
- 'tdeparts/pluginselectormodule.h' => 1,
- 'kopenssl.h' => 1,
- 'kautomount.h' => 1,
- 'kimagefilepreview.h' => 1,
- 'kpropertiesdialog.h' => 1,
- 'knotifydialog.h' => 1,
- 'ksockaddr.h' => 1,
- 'knotifywidgetbase.h' => 1,
-);
-
-# Some systems have a QTDIR = TDEDIR = PREFIX
-# We need a complete list
-
-my %kdeincludes;
-open(HEADERS, $kdeheaderlistpath) or die "Couldn't open $kdeheaderlistpath: $!\n";
-map { chomp ; $kdeincludes{$_} = 1 unless /^\s*#/ } <HEADERS>;
-close HEADERS;
-
-# Can we compile the OpenGl module ?
-if("@KDE_HAVE_GL@" eq "yes")
-{
- open(DEFS, $definespath);
- my @defs = <DEFS>;
- close DEFS;
- if(!grep(/QT_NO_OPENGL/, @defs))
- {
- $excludes{'qgl.h'} = undef;
- $excludes{'qglcolormap.h'} = undef;
- }
- else
- {
- print STDERR "Qt was not compiled with OpenGL support...\n Skipping TQGL Classes.\n";
- }
-}
-
-# List Qt headers, and exclude the ones listed above
-my @headers = ();
-
-$qtinc= '@qt_includes@';
-opendir (QT, $qtinc) or die "Couldn't find $qtinc";
-foreach $filename (readdir(QT)) {
- $entry = $qtinc."/".$filename;
- if ( ( -e $entry or -l $entry ) # A real file or a symlink
- && ( ! -d _ ) ) # Not a symlink to a dir though
- {
- push(@headers, $entry)
- if ( !defined $excludes{$filename} # Not excluded
- && $includes{$filename} # Known header
- && $filename =~ /\.h$/ ); # Not a backup file etc. Only headers.
- undef $includes{$filename}
- }
-}
-closedir QT;
-
-my @kdeheaders = ();
-$kdeprefix = "@KDE_PREFIX@";
-$kdeinc= '@kde_includes@';
-$kdeinc =~ s/\${prefix}/$kdeprefix/; # Remove ${prefix} in src != build
--d $kdeinc or die "Couldn't process $kdeinc: $!\n";
-
-find(
- { wanted => sub {
- (-e || -l and !-d) and do {
- $f = substr($_, 1 + length $kdeinc);
- push ( @kdeheaders, $_ )
- if( !defined $kdeexcludes{$f} # Not excluded
- && $kdeincludes{$f} # Known header
- && /\.h$/); # Not a backup file etc. Only headers.
- undef $kdeincludes{$f}
- };
- },
- follow_fast => 1,
- follow_skip => 2,
- no_chdir => 1
- }, $kdeinc
- );
-
-# Launch kalyptus
-system "perl kalyptus @ARGV --globspace -fsmoke --name=qt $macros --no-cache --allow_k_dcop_accessors --outputdir=$outdir @headers @kdeheaders";
-my $exit = $? >> 8;
-exit $exit if ($exit);
-
-# Generate diff for smokedata.cpp
-unless ( -e "$finaloutdir/smokedata.cpp" ) {
- open( TOUCH, ">$finaloutdir/smokedata.cpp");
- close TOUCH;
-}
-system "diff -u $finaloutdir/smokedata.cpp $outdir/smokedata.cpp > $outdir/smokedata.cpp.diff";
-
-# Copy changed or new files to finaloutdir
-opendir (OUT, $outdir) or die "Couldn't opendir $outdir";
-foreach $filename (readdir(OUT)) {
- next if ( -d "$outdir/$filename" ); # only files, not dirs
- my $docopy = 1;
- if ( -f "$finaloutdir/$filename" ) {
- $docopy = compare("$outdir/$filename", "$finaloutdir/$filename"); # 1 if files are differents
- }
- if ($docopy) {
- #print STDERR "Updating $filename...\n";
- cp("$outdir/$filename", "$finaloutdir/$filename");
- }
-}
-closedir OUT;
-
-# Check for deleted files and warn
-my $deleted = 0;
-opendir(FINALOUT, $finaloutdir) or die "Couldn't opendir $finaloutdir";
-foreach $filename (readdir(FINALOUT)) {
- next if ( -d "$finaloutdir/$filename" ); # only files, not dirs
- if ( $filename =~ /.cpp$/ && ! ($filename =~ /_la_closure.cpp/) && ! -f "$outdir/$filename" ) {
- print STDERR "Removing obsolete file $filename\n";
- unlink "$finaloutdir/$filename";
- $deleted = 1;
- }
-}
-closedir FINALOUT;
-
-# Delete outdir
-system "rm -rf $outdir";
-