--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtmobility/bin/syncheaders Thu Apr 01 08:30:34 2010 +0300
@@ -0,0 +1,110 @@
+#!/usr/bin/perl
+#############################################################################
+##
+## Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+## All rights reserved.
+## Contact: Nokia Corporation (qt-info@nokia.com)
+##
+## This file is part of the Qt Mobility Components.
+##
+## $QT_BEGIN_LICENSE:LGPL$
+## No Commercial Usage
+## This file contains pre-release code and may not be distributed.
+## You may use this file in accordance with the terms and conditions
+## contained in the Technology Preview License Agreement accompanying
+## this package.
+##
+## GNU Lesser General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU Lesser
+## General Public License version 2.1 as published by the Free Software
+## Foundation and appearing in the file LICENSE.LGPL included in the
+## packaging of this file. Please review the following information to
+## ensure the GNU Lesser General Public License version 2.1 requirements
+## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+##
+## In addition, as a special exception, Nokia gives you certain additional
+## rights. These rights are described in the Nokia Qt LGPL Exception
+## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+##
+## If you have questions regarding the use of this file, please contact
+## Nokia at qt-info@nokia.com.
+##
+##
+##
+##
+##
+##
+##
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+use strict;
+use warnings;
+
+use File::Basename;
+use File::stat;
+use File::Path;
+
+my $allow_non_exported = 1;
+if ( @ARGV && $ARGV[0] eq "-needs-export" ) {
+ shift(@ARGV);
+ $allow_non_exported = 0;
+}
+
+my $outdir = shift(@ARGV) or usage();
+mkpath($outdir);
+
+my $indir = shift(@ARGV) or usage();
+processFile($indir);
+
+exit 0;
+
+sub usage
+{
+ print "Usage: syncheaders [-needs-export] outdir indir\n";
+ print " Processes all public header files <indir>\n";
+ exit 2;
+}
+
+sub processFile
+{
+ my ( $read_dir ) = @_;
+ my @allFiles;
+ my $filename;
+
+ opendir( THISDIR, $read_dir) or die "Can't read $read_dir";
+ #process all header files
+ @allFiles = grep /\.h/, readdir THISDIR;
+ #don't include private headers
+ @allFiles = grep !/_p\.h/, @allFiles;
+
+ for $filename (@allFiles) {
+ open INPUT, "$indir/$filename" or die "Can't read $filename";
+
+ my $src_s = stat("$indir/$filename");
+ my $now = $src_s->mtime;
+
+ while (<INPUT>) {
+ if ( /^\s*class\s+.*_EXPORT\s+([^\s:]+)/ ||
+ ($allow_non_exported && /^\s*class\s+([^\s:<]+)/ && index($_, ";") == -1) ||
+ /syncqtopia\s+header\s+([^\s:]+)/ )
+ {
+ # Skip preprocessor-related items
+ next if ( $1 =~ /#/ );
+
+ my $outfile = "$outdir/$1";
+
+ print "Create header $outfile\n";
+
+ #system("install", "-m", "0644", $filename, $outfile);
+ open OUT, ">$outfile" or die "Can't write $outfile";
+ print OUT "#include \"".basename($filename)."\"\n";
+ close OUT;
+ }
+ }
+ close INPUT;
+ }
+}
+