From e01add5cdbd703f616bc8319e6008ce11558cced Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Mon, 1 Mar 2021 10:50:02 +0100 Subject: [PATCH] Remove fixqt4headers.pl This script was aiding users to port from Qt 4 to 5 and is considered to be of little value for Qt 6. Pick-to: 6.1 Change-Id: I26fb97d32969463d94e38222e32f241f86ad9193 Reviewed-by: Samuel Gaist Reviewed-by: Kai Koehne Reviewed-by: Edward Welbourne Reviewed-by: Lars Knoll --- bin/fixqt4headers.pl | 179 ------------------------------------------- 1 file changed, 179 deletions(-) delete mode 100755 bin/fixqt4headers.pl diff --git a/bin/fixqt4headers.pl b/bin/fixqt4headers.pl deleted file mode 100755 index b572f469dc..0000000000 --- a/bin/fixqt4headers.pl +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env perl -############################################################################# -## -## Copyright (C) 2016 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the porting tools of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## Commercial License Usage -## Licensees holding valid commercial Qt licenses may use this file in -## accordance with the commercial license agreement provided with the -## Software or, alternatively, in accordance with the terms contained in -## a written agreement between you and The Qt Company. For licensing terms -## and conditions see https://www.qt.io/terms-conditions. For further -## information use the contact form at https://www.qt.io/contact-us. -## -## GNU Lesser General Public License Usage -## Alternatively, this file may be used under the terms of the GNU Lesser -## General Public License version 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# - - -use Cwd; -use File::Find; -use File::Spec; -use IO::File; -use Getopt::Long; -use strict; -use warnings; - -my $dry_run = 0; -my $help = 0; -my $stripModule = 0; -my $fixedFileCount = 0; -my $fileCount = 0; -my $verbose = 0; -my $qtdir; -my $qtIncludeDir; - -my $USAGE=< : Point to Qt 5's qtbase directory -EOF - -if (!GetOptions('dry-run' => \$dry_run, 'help' => \$help, - 'strip-modules' => \$stripModule, 'verbose' => \$verbose, 'qtdir:s' => \$qtdir) - || $help) { - print $USAGE; - exit (1); -} - -my %headerSubst = (); -my $cwd = getcwd(); - -sub fixHeaders -{ - my $fileName = $File::Find::name; - my $relFileName = File::Spec->abs2rel($fileName, $cwd); - - # only check sources, also ignore symbolic links and directories - return unless -f $fileName && $fileName =~ /(\.h|\.cpp|\/C|\.cc|\.CC)$/; - - my $inFile = new IO::File('<' . $fileName) or die ('Unable to open ' . $fileName . ': ' . $!); - $fileCount++; - my @affectedClasses; - my @outLines; - - while (my $line = <$inFile>) { - if ($line =~ /^#(\s*)include(\s*)<.*?\/(.*?)>(.*)/) { - my $newHeader = $headerSubst{$3}; - if ($newHeader) { - $line = '#' . $1 . 'include' . $2 . '<' . $newHeader . '>' . $4 . "\n"; - push(@affectedClasses, $3); - } - } elsif ($line =~ /^#(\s*)include(\s*)(.*)/) { - $line = '#' . $1 . 'include' . $2 . '' . $3 . "\n"; - push(@affectedClasses, 'QtGui'); - } - push(@outLines, $line); - } - $inFile->close(); - - if (scalar(@affectedClasses)) { - $fixedFileCount++; - print $relFileName, ': ', join(', ', @affectedClasses), "\n" if ($verbose || $dry_run); - if (!$dry_run) { - my $outFile = new IO::File('>' . $fileName) or die ('Unable to open ' . $fileName . ': ' . $!); - map { print $outFile $_; } @outLines; - $outFile->close(); - } - } else { - print $relFileName, ": no modification.\n" if ($verbose || $dry_run); - } -} - -sub findQtHeaders -{ - my ($dirName,$includeDir) = @_; - - local (*DIR); - - my $moduleIncludeDir = $includeDir . '/' . $dirName; - opendir(DIR, $moduleIncludeDir) || die ('Unable to open ' . $moduleIncludeDir . ': ' . $!); - my @headers = readdir(DIR); - closedir(DIR); - - foreach my $header (@headers) { - next if (-d ($moduleIncludeDir . '/' . $header) || $header =~ /\.pri$/); - $headerSubst{$header} = $stripModule ? $header : ($dirName . '/' . $header); - } -} - -# -------- MAIN - -if ($qtdir) { - $qtIncludeDir = $qtdir . '/include'; -} else { - $qtIncludeDir = `qmake -query QT_INSTALL_HEADERS`; - chop($qtIncludeDir); -} - -die "The location of the Qt 5 include files could not be determined.\n" - ."Please ensure qmake can be found in PATH or pass the command line option --qtdir.\n" - unless -d $qtIncludeDir; - -findQtHeaders('QtCore', $qtIncludeDir); -findQtHeaders('QtConcurrent', $qtIncludeDir); -findQtHeaders('QtWidgets', $qtIncludeDir); -findQtHeaders('QtPrintSupport', $qtIncludeDir); - -if (-d $qtIncludeDir . '/include/QtMultimedia') { - findQtHeaders('QtMultimedia', $qtIncludeDir); - findQtHeaders('QtMultimediaWidgets', $qtIncludeDir); -} elsif (-d $qtIncludeDir . '/../qtmultimedia' ) { - # This is the case if QTDIR points to a source tree instead of an installed Qt - findQtHeaders('QtMultimedia', $qtIncludeDir . '/../qtmultimedia'); - findQtHeaders('QtMultimediaWidgets', $qtIncludeDir . '/../qtmultimedia'); -} - -# Support porting from "Qt 4.99" QtDeclarative to QtQuick (QQuickItem et al) -if (-d $qtIncludeDir . '/include/QtQuick') { - findQtHeaders('QtQuick', $qtIncludeDir); -} elsif (-d $qtIncludeDir . '/../qtdeclarative' ) { - # This is the case if QTDIR points to a source tree instead of an installed Qt - findQtHeaders('QtQuick', $qtIncludeDir . '/../qtdeclarative'); -} - -# special case -$headerSubst{'QtGui'} = 'QtWidgets/QtWidgets'; - -find({ wanted => \&fixHeaders, no_chdir => 1}, $cwd); - -print 'Done. ', ($dry_run ? 'Checked' : 'Modified'), ' ', $fixedFileCount, ' of ', $fileCount, " file(s).\n";