diff options
author | Bo Hu <bohu@google.com> | 2023-06-03 15:40:06 -0700 |
---|---|---|
committer | Bo Hu <bohu@google.com> | 2023-06-13 18:54:11 +0000 |
commit | 658acaaf2c14c05b81f9b27b604e2ffc45dc0ceb (patch) | |
tree | 6d93a15cc022e794970d79752f9c03cce4e8e9f7 | |
parent | 20f6baac45c42b5c469c3cd13f93b91120d2044c (diff) | |
download | qt-emu-34-dev.tar.gz |
linux-aarch64: build native qt binariesnetsim-devemu-prebuiltsemu-devemu-34-releaseemu-34-devemu-33-devaosp-emu-34-dev
Those binaries are needed for linux-aarch64
native build on gcp arm64 servers.
need to manually link the bin to native-aarch64-bin
note: those binaries have be fixed with patchelf
to include $ORIGIN/../lib for their ldd dependenceis
on linux-aarch64 host, need to install
libpcre2
Bug: 287082198
Change-Id: I142eaa8921079412052f0860b99ed965cb7ea5a9
-rwxr-xr-x | linux-aarch64/native-aarch64-bin/fixqt4headers.pl | 179 | ||||
-rwxr-xr-x | linux-aarch64/native-aarch64-bin/moc | bin | 0 -> 26219440 bytes | |||
-rwxr-xr-x | linux-aarch64/native-aarch64-bin/qdbuscpp2xml | bin | 0 -> 6039384 bytes | |||
-rwxr-xr-x | linux-aarch64/native-aarch64-bin/qdbusxml2cpp | bin | 0 -> 1515528 bytes | |||
-rwxr-xr-x | linux-aarch64/native-aarch64-bin/qlalr | bin | 0 -> 4789904 bytes | |||
-rwxr-xr-x | linux-aarch64/native-aarch64-bin/qmake | bin | 0 -> 25760976 bytes | |||
-rwxr-xr-x | linux-aarch64/native-aarch64-bin/qvkgen | bin | 0 -> 856168 bytes | |||
-rwxr-xr-x | linux-aarch64/native-aarch64-bin/rcc | bin | 0 -> 19403576 bytes | |||
-rwxr-xr-x | linux-aarch64/native-aarch64-bin/uic | bin | 0 -> 10170208 bytes |
9 files changed, 179 insertions, 0 deletions
diff --git a/linux-aarch64/native-aarch64-bin/fixqt4headers.pl b/linux-aarch64/native-aarch64-bin/fixqt4headers.pl new file mode 100755 index 00000000..b572f469 --- /dev/null +++ b/linux-aarch64/native-aarch64-bin/fixqt4headers.pl @@ -0,0 +1,179 @@ +#!/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=<<EOF; +This script replaces all Qt 4 style includes with Qt 5 includes. + +Usage: $0 [options] + +Options: + --dry-run : Do not replace anything, just print what would be replaced + --strip-modules : Strip the module headers for writing portable code + --verbose : Verbose + --qtdir <directory> : 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*)<QtGui>(.*)/) { + $line = '#' . $1 . 'include' . $2 . '<QtWidgets>' . $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"; diff --git a/linux-aarch64/native-aarch64-bin/moc b/linux-aarch64/native-aarch64-bin/moc Binary files differnew file mode 100755 index 00000000..e423f0e2 --- /dev/null +++ b/linux-aarch64/native-aarch64-bin/moc diff --git a/linux-aarch64/native-aarch64-bin/qdbuscpp2xml b/linux-aarch64/native-aarch64-bin/qdbuscpp2xml Binary files differnew file mode 100755 index 00000000..85db3266 --- /dev/null +++ b/linux-aarch64/native-aarch64-bin/qdbuscpp2xml diff --git a/linux-aarch64/native-aarch64-bin/qdbusxml2cpp b/linux-aarch64/native-aarch64-bin/qdbusxml2cpp Binary files differnew file mode 100755 index 00000000..9814d175 --- /dev/null +++ b/linux-aarch64/native-aarch64-bin/qdbusxml2cpp diff --git a/linux-aarch64/native-aarch64-bin/qlalr b/linux-aarch64/native-aarch64-bin/qlalr Binary files differnew file mode 100755 index 00000000..2559f0ce --- /dev/null +++ b/linux-aarch64/native-aarch64-bin/qlalr diff --git a/linux-aarch64/native-aarch64-bin/qmake b/linux-aarch64/native-aarch64-bin/qmake Binary files differnew file mode 100755 index 00000000..0621b06f --- /dev/null +++ b/linux-aarch64/native-aarch64-bin/qmake diff --git a/linux-aarch64/native-aarch64-bin/qvkgen b/linux-aarch64/native-aarch64-bin/qvkgen Binary files differnew file mode 100755 index 00000000..0fa162ec --- /dev/null +++ b/linux-aarch64/native-aarch64-bin/qvkgen diff --git a/linux-aarch64/native-aarch64-bin/rcc b/linux-aarch64/native-aarch64-bin/rcc Binary files differnew file mode 100755 index 00000000..23385074 --- /dev/null +++ b/linux-aarch64/native-aarch64-bin/rcc diff --git a/linux-aarch64/native-aarch64-bin/uic b/linux-aarch64/native-aarch64-bin/uic Binary files differnew file mode 100755 index 00000000..2499e5f0 --- /dev/null +++ b/linux-aarch64/native-aarch64-bin/uic |