summaryrefslogtreecommitdiff
path: root/util
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@digia.com>2013-10-23 15:24:03 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-10-29 15:37:58 +0100
commit08a737def9145a53615871bb5900f9794bf699f5 (patch)
tree79344c4688bdce13acaeb422673dfb7876e8d9f8 /util
parent569ec1ab346e786e98a8e6884ed40a063a740832 (diff)
downloadqtbase-08a737def9145a53615871bb5900f9794bf699f5.tar.gz
generate qfeatures.h at build time
much more elegant than the checked in file. and less chance to get it wrong, as people often enough do. Change-Id: I975a62dfd83ce4f15947ce54f3c40931b1badae0 Reviewed-by: Tasuku Suzuki <stasuku@gmail.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Diffstat (limited to 'util')
-rwxr-xr-xutil/scripts/make_qfeatures_dot_h198
1 files changed, 0 insertions, 198 deletions
diff --git a/util/scripts/make_qfeatures_dot_h b/util/scripts/make_qfeatures_dot_h
deleted file mode 100755
index 20999a239b..0000000000
--- a/util/scripts/make_qfeatures_dot_h
+++ /dev/null
@@ -1,198 +0,0 @@
-#!/usr/bin/perl
-#############################################################################
-##
-## Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-## Contact: http://www.qt-project.org/legal
-##
-## This file is part of the test suite 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 Digia. For licensing terms and
-## conditions see http://qt.digia.com/licensing. For further information
-## use the contact form at http://qt.digia.com/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 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, Digia gives you certain additional
-## rights. These rights are described in the Digia Qt LGPL Exception
-## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3.0 as published by the Free Software
-## Foundation and appearing in the file LICENSE.GPL included in the
-## packaging of this file. Please review the following information to
-## ensure the GNU General Public License version 3.0 requirements will be
-## met: http://www.gnu.org/copyleft/gpl.html.
-##
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-#
-# Usage: make_qfeatures_dot_h
-#
-# Generates src/corelib/global/qfeatures.h from src/corelib/global/qfeatures.txt.
-#
-# The qfeatures.txt file can contain redundancies, and this program
-# will show them.
-#
-
-if ($ENV{QTSRCDIR} ne '') {
- $qtbase=$ENV{QTSRCDIR};
-} else {
- $qtbase=$ENV{QTDIR};
-}
-
-open FL, "$qtbase/src/corelib/global/qfeatures.txt"
- or die "Cannot open $qtbase/src/corelib/global/qfeatures.txt";
-
-while (<FL>) {
- if ( /^Feature: (\S*)/ ) {
- print STDERR "Duplicate: $1\n" if $macro{$1};
- $macro{$macro=$1}=1;
- } elsif ( /^Requires: (.*?)\s*$/ ) {
- $deps{$macro}=$1;
- map { $dep{"$macro $_"}=1 } split /\s+/, $1;
- } elsif ( /^Name: (.*?)\s*$/ ) {
- $label{$macro}=$1;
- }
-}
-
-close FL;
-
-sub depends {
- my($x,$y) = @_;
- return 1 if $dep{"$x $y"};
- return 0 if $dep{"$y $x"};
- return 0 if $x eq $y;
- my $d;
- for $d (split /\s+/, $deps{$x}) {
- return 1 if depends($d,$y);
- }
- return 0;
-}
-sub dependants_rec {
- my($x) = @_;
- my $n = 0;
- my $d = 0;
- $dependants_rec_count++;
- if ( $dependants_rec_count > $dependants_rec_limit ) {
- if ( $circularity_start eq $x ) {
- print STDERR "Circular dependency: $circularity\n";
- exit;
- }
- $circularity_start=$x if !$circularity_start;
- $circularity="$x $circularity";
- }
- for $d (split /\s+/, $deps{$x}) {
- $n += 1 + dependants_rec($d);
- }
- $dependants_rec_count--;
- return $n;
-}
-sub dependants {
- $dependants_rec_limit=keys %macro if !$dependants_rec_limit;
- $dependants_rec_count=0;
- return dependants_rec @_;
-}
-sub dependencysort {
- my($x, $y) = @_;
- my $xd = dependants($x);
- my $yd = dependants($y);
- return $xd-$yd if $xd != $yd;
- return $x cmp $y;
-}
-
-@macros = sort { dependencysort($a,$b) } keys %macro;
-
-for $macro ( @macros ) {
- for $d1 (split /\s+/, $deps{$macro} ) {
- for $d2 (split /\s+/, $deps{$macro} ) {
- print STDERR "Redundancy in $macro - $d1 depends on $d2\n" if depends($d1,$d2);
- }
- print STDERR "Unknown in $macro - $d1\n" if !$macro{$d1};
- }
-}
-
-open OUT, ">$qtbase/src/corelib/global/qfeatures.h"
- or die "Cannot open $qtbase/src/corelib/global/qfeatures.h for writing";
-
-print OUT
-'/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtCore module 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 Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/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 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, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*
- * All features and their dependencies.
- *
- * This list is generated from $QTDIR/src/corelib/global/qfeatures.txt
- * by $QTSRCDIR/util/scripts/make_qfeatures_dot_h
- */
-
-';
-
-
-for $macro ( @macros ) {
- print OUT "// $label{$macro}\n";
- if ( $deps{$macro} ) {
- print OUT "#if !defined(QT_NO_$macro)";
- print OUT " && (", (join " || ", map { "defined(QT_NO_$_)" } split /\s+/, $deps{$macro}), ")";
- print OUT "\n";
- print OUT "#define QT_NO_$macro\n";
- print OUT "#endif\n";
- } else {
- print OUT "//#define QT_NO_$macro\n";
- }
- print OUT "\n";
-}
-
-close OUT;