summaryrefslogtreecommitdiffstats
path: root/config.tests
diff options
context:
space:
mode:
authorBradley T. Hughes <bradley.hughes@nokia.com>2012-02-14 10:01:17 +0100
committerQt by Nokia <qt-info@nokia.com>2012-03-13 12:27:44 +0100
commitba6952b28d17b6b34f65510be645e414fa1ef6a2 (patch)
tree29dbe86906cb375fa58d7cc18a11b25a6a48dae2 /config.tests
parent6d85d77a5def22ef8a50505f3c7634146db73421 (diff)
Remove -arch argument and #define QT_ARCH from configures
Do not try to detect the host or target architectures using uname or similar, and do not override with the -arch or -host-arch configure arguments. The configures will still accept the -arch and -host-arch arguments, but it ignores them and instead outputs a warning stating that these arguments are obsolete and should not be used. Set QT_ARCH and QT_HOST_ARCH qconfig.pri variables based on the compiler target. This is done by running qmake (twice when cross-compiling) on config.tests/arch/arch.pro, which preprocesses a file that contains all knowns processors. On Windows, configure.exe has never run any config.tests before, and does not currently have a function to run a program and capture its output. Use _popen() to accomplish this (as qmake does for its system() function). This needs to be done after qmake is built, as does the mkspecs/qconfig.pri generation. As a side effect, the configure steps have been slightly re-ordered, but the overall result is the same. The displayConfig() call is moved to just before generating Makefiles, so that it can show the detected architecture(s). Change-Id: I77666c77a93b48848f87648d08e79a42f721683f Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Diffstat (limited to 'config.tests')
-rw-r--r--config.tests/arch/arch.cpp70
-rw-r--r--config.tests/arch/arch.pro7
2 files changed, 77 insertions, 0 deletions
diff --git a/config.tests/arch/arch.cpp b/config.tests/arch/arch.cpp
new file mode 100644
index 0000000000..0c12565f7c
--- /dev/null
+++ b/config.tests/arch/arch.cpp
@@ -0,0 +1,70 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the FOO module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** 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.
+**
+** 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.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+// NOTE: This file is not meant to be compiled, only preprocessed.
+#include "../../src/corelib/global/qprocessordetection.h"
+#if defined(Q_PROCESSOR_ALPHA)
+alpha
+#elif defined(Q_PROCESSOR_ARM)
+arm
+#elif defined(Q_PROCESSOR_AVR32)
+avr32
+#elif defined(Q_PROCESSOR_BLACKFIN)
+bfin
+#elif defined(Q_PROCESSOR_X86_32)
+i386
+#elif defined(Q_PROCESSOR_X86_64)
+x86_64
+#elif defined(Q_PROCESSOR_IA64)
+ia64
+#elif defined(Q_PROCESSOR_MIPS)
+mips
+#elif defined(Q_PROCESSOR_POWER)
+power
+#elif defined(Q_PROCESSOR_S390)
+s390
+#elif defined(Q_PROCESSOR_SH)
+sh
+#elif defined(Q_PROCESSOR_SPARC)
+sparc
+#else
+unknown
+#endif
diff --git a/config.tests/arch/arch.pro b/config.tests/arch/arch.pro
new file mode 100644
index 0000000000..108f262a55
--- /dev/null
+++ b/config.tests/arch/arch.pro
@@ -0,0 +1,7 @@
+CONFIG -= qt debug_and_release
+# Detect target by preprocessing a file that uses Q_PROCESSOR_* macros from qprocessordetection.h
+COMMAND = $$QMAKE_CXX $$QMAKE_CXXFLAGS -E $$PWD/arch.cpp
+# 'false' as second argument to system() prevents qmake from stripping newlines
+COMPILER_ARCH = $$system($$COMMAND, false)
+# Message back to configure so that it can set QT_ARCH and QT_HOST_ARCH
+message($$COMPILER_ARCH)