Based on the Necessitas project by Bogdan Vatra.
Contributors to the Qt5 project:
BogDan Vatra <bogdan@kde.org>
Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
hjk <hjk121@nokiamail.com>
Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Paul Olav Tvete <paul.tvete@digia.com>
Robin Burchell <robin+qt@viroteck.net>
Samuel Rødal <samuel.rodal@digia.com>
Yoann Lopes <yoann.lopes@digia.com>
The full history of the Qt5 port can be found in refs/old-heads/android,
SHA-1 249ca9ca2c7d876b91b31df9434dde47f9065d0d
Change-Id: Iff1a7b2dbb707c986f2639e65e39ed8f22430120
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
If the command is quoted, it can contain anything but quotes (we do not
support escaped quotes, so single quotes have to be used). If the
command is unquoted we look for the first closing parenthesis. We used
to do this using .*?, but the greedy modifier '?' didn't seem to work,
so we now use an inverse character set.
Change-Id: I40660ce7aef6a6b6d480292d28da1b079bb161da
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Instead of setting it explicitly to 10.6. Before 736e4258a this was
not a problem, as we were hard-coding the version flags as part of
the C/CXX_FLAGS for each makespec, so getQMakeConf would pick
them up automatically. When 736e4258a introduced sdk.prf as the
place to resolve these flags in a single place, it broke the
qmake build for macx-clang-libc++, as we were then falling
back to the 10.6 target hard-coded in configure.
We fix this by duplicating some of the logic from sdk.prf, by
pulling out the QMAKE_MACOSX_DEPLOYMENT_TARGET variable
and adding to the C/CXX_FLAGS.
Change-Id: I04afc7525031727c2504588c70dd3f7892cc8e42
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This is enabled only for -developer-builds and only for certain
compiler-version combinations that are in a whitelist.
It also requires each library, plugin or tool to declare whether it is
supposedly clean of warnings. When most targets are clean, we can
consider inverting.
Change-Id: I17b5c4e45aee5078f9788e846a45d619c144095a
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
The dbus_watch_get_fd function was deprecated in D-Bus 1.2 (technically,
in 1.1.1, but that was a development release) because it had a bad name.
Sockets on Windows have file descriptors, but they are not shared from
the same pool as the CRT library's file descriptors.
This commit raises the minimum required version of D-Bus to 1.2. This is
the first requirement raise since this code was introduced in 2006. For
some reason, the D-Bus 1.2.0 release seems to be missing, but 1.2.1 was
released on 04-Apr-2008. That's ancient enough for all distributions
Qt 5 is supposed to run on.
Change-Id: Ia6bbc137fffbb27c77290ed3e32d3380f0ae3c54
Reviewed-by: Lorn Potter <lorn.potter@jollamobile.com>
The LLVM version in Xcode 4.5 and below does not handle the GNU
assembler syntax in the pixman assembly file.
A possible alternative workaround is to include a preprocessed assembly
file using https://github.com/hollylee/gas-preprocessor.
Change-Id: Id95add669c60d3a7da823e5975afdd1f88f71977
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Must use ; as the path delimiter instead of :
Change-Id: I549e1652ef5bbae09c8fddec3e83ac9f52cec3a4
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Replace the old sed / template @FOO@ method with echo.
Enable MSYS bash to build qmake.exe
Use qmake/Makefile.unix for all win32-g++ builds.
Change-Id: I6e27d69b28d27131838bbbb3a4ee5a08b470f31b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Instead of setting -isysroot in both arch.test, compile.test, the various
mkspecs, and sdk.prf, we now propgate the chosen SDK as the qmake
variable QMAKE_MAC_SDK, which is then handled exclusivly in sdk.prf.
The QMAKE_MAC_SDK variable, and -sdk argument to configure, is expected
to be of the short-form name, eg macosx or iphoneos, not a full path, as
that's what Xcode also expects. We take care of translating that into
a full path for -isysroot/-syslibroot in sdk.prf, using xcodebuild as
a helper.
Change-Id: I281655b2fa5180c6e78ffdce36824e4a91447570
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
So that mkspecs and features may rely on the host_build test.
Change-Id: I18fee4820d9e2904285afcc7ddb8f1cc3d025fef
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
... instead of as a fallback in default_post.
it was this way in qt4, and it requires less code to be written in the
end. we are already doing it for debug/release as well.
Change-Id: I6e02849d61d14a18375cf64a5990768931ebac48
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
The chosen makespec may spit out errors for various reasons, which will
influence steps such as detecting pkg-config or the architecture test.
It's preferable to catch any issues with the makespec as early as
possible and exit configure before the errors propagate to tests.
Change-Id: Iecbf3217c36dea9f5e0677c58171b72cb6ce1e0b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Passing -sdk to configure should affect the target build, not host tools.
We skip passing MAC_SDK_FLAG for the host arch test as well, since as for
qmake the SDK should only apply to the target.
Change-Id: I3902355715234b9300a65d3095b9c925d9492311
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
The exact same hunk is present 100 lines below.
Change-Id: Ia3d61037b29186368e30f95f4162282d38bca972
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
This allows for example the iOS mkspecs to use xcode-select to get the
path to Xcode's /Developer directory, which is then in turn used to
set up QMAKE_CXX (which is needed by configure).
Coprocess is GNU awk specific, so we're just using getline.
http://www.gnu.org/software/gawk/manual/html_node/Getline_002fPipe.html#Getline_002fPipe
Change-Id: I7e88112bea68f039361d6e96ee581eedf129ab02
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Change the default libexec directory to 'lib' on Windows for default
configurations. This makes sure that e.g. qtwebprocess can actually
find & load the right Qt libs.
A separate libexec directory was introduced to avoid conflicts between
a system-wide Qt in PATH and a custom Qt installation. However, since
there are no system wide Qt installations on Windows this isn't an
issue, but getting the executables to find its Qt libraries is.
Alternatively we could have also placed it in the 'bin' directory.
However, putting it in the 'lib' folder carries the notion that,
unlike the binaries in the bin, the libexec executables might have
to be deployed with a target application.
The exception is when a separate archdata prefix is specified, and
$$archdata/lib won't contain Qt libraries. In this case we use libexec
like on the other platforms too.
ChangeLog: [Qt for Windows] Fixed launching of QtWebProcess.exe by
changing default libexec directory to 'lib'.
Task-number: QTBUG-29661
Change-Id: Icbb15fb98474d6fef8ac9310f2e2b482d3282f79
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
On Windows, it's completely different and we don't currently support that
compiler anyway.
Change-Id: Ie3365ea103c93c63e79ebb1d4908c361173ac449
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
The current code matches *g++*, which matches "clang++" and detects
Clang as GCC. That's highly incorrect.
Change-Id: Ifd85bbd35aa130be3094fc75d471614d06ca23bd
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Keeping accessibility and only disabling the bridge will
enable more builds to work.
Warning about disabling accessibility disabled is needed
because in QStyle it is used to discover semantics about widgets
(if a toolbutton is in a toolbar).
Change-Id: Iae4e6ab63479743bdd70cba4b1954ec7cf3f88e9
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
eventfd(7) uses less resources than a pipe, as it only needs to store a
single 64-bit integer, as opposed to a full buffer.
It was introduced first on Linux version 2.6.22 and glibc 2.7. However,
both the configure-time test and the runtime usage require the use of
EFD_CLOEXEC for thread-safety, so this code will be enabled only for
Linux 2.6.27 and up as well as glibc 2.9 and up.
Change-Id: Ic7e10b28d7b1d4ca24be614ed84055c4429a68e4
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
On Mac, GCC and Clang print "(framework directory)" at the end of the
directory listing for includes if that's a framework dir. The directory
with "(framework directory)" at the end does not exist, so it doesn't
affect anything by being there.
But we don't have to keep the list longer just for that.
Change-Id: I3d031d3d15c75801ec0d6112b2c913bd63e5def3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Make the settings path to be relative to $prefix, instead of absolute.
And update the configure -help output to match the actual code.
Change-Id: I71e4ad6e3db046fec95ef057ae7f7bc566bc5794
Reviewed-by: Sune Vuorela <sune@vuorela.dk>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
it's completely broken, and i have no time to fix it properly now.
configure runs no qmake -r by default any more, so it's fast enough.
Change-Id: Ib2b4c68f1fc2fe95accecbe93dd5a87c9b015692
Reviewed-by: David Faure (KDE) <faure@kde.org>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
The configure.exe already supported the -directwrite flag for some time.
This commit adds this flag to the configure script as well so
environments which use MinGW as cross-compiler can now also
optionally enable DirectWrite support.
The original configure.exe pieces were added in commit
c0fed43b04dec8bd549043d3ea5e28908128082c of the Qt4 repository.
The directwrite argument which this commit adds to the configure
script and the behaviour of it should be exactly the same as the
current configure.exe.
To get Qt built with DirectWrite support using the MinGW-w64 toolchain
at least mingw-w64 trunk revision 5451 (Nov 10 2012) is needed
Change-Id: I519718068cf5732c7ebcbf0a0fafb6b747db0bcf
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
This means the xcb plugin library will be named libqxcb.so instead of
libxcb.so, which doesn't clash with the system's libxcb.so. We need to
consistently apply this on all platforms for static linking to work.
Change-Id: I1640a7cae7b9846bbe62b19ab1c2c5bad7d02b4c
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Configure will now generate QT_DEFAULT_QPA_PLUGIN qmake variable
to specify the default QPA plugin.
"CONFIG += qpa_default_plugin" statement in application .pro file
will add the default QPA plugin into QTPLUGINS.
"CONFIG += qpa_minimal_plugin" statement in application .pro file
will add the minimal QPA plugin into QTPLUGINS.
Task-number: QTBUG-28131
Change-Id: I12a241005f30b37467d783b50f0369b47e605e68
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
the compile-all-mocs-as-one-file feature is gone for years
Change-Id: I6c35bce59c36b6920af2498661172b5938eeba52
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
they cannot be legally used outside qtbase - it's the antithesis of
modularization.
Change-Id: I847844ea0ddce599f130f396d68cb61fa8f34135
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
-largefile is regarded as a library named argefile and added to
Makefile as a link flag. It will cause a link error.
Change-Id: I8ac30896d4e473f7e98c937c8906b1b9c620cf1e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
User applications are those that users run directly, whether it be for
development or not. The executable binaries that the user does not
usually run but is still required for proper functioning are called
"program executables" in Autoconf and they are placed in libexec.
This commit adds support for "program executables" in Qt by adding the
-libexecdir option to the configures, the qmake variable
QT_INSTALL_LIBEXECS (note the plural, to match all other properties),
and QLibraryInfo::LibraryExecutables.
At the time of this commit, the only expected "program executable" is
the QtWebProcess, the WebKit2 helper process from QtWebKit.
Change-Id: I66c3a3e0cf7f9d93b5f88f55f18e957faff608fc
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
The include paths that the mkspecs set into the OpenGL/AGL frameworks
must take the SDK into account.
(The headers in 10.8 have slightly changed wrt 10.7, leading to compile
errors because framework style includes (<OpenGL/foo.h>) within the system
headers are resolved to the SDK framework headers.)
Change-Id: I6113cdb95b462d587f593682e03e81e920f3f672
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Added prepare_docs to qt_build_config.prf (it was added
directly in configure in the source branch)
Conflicts:
configure
tools/configure/configureapp.cpp
Change-Id: I1337c69fc62b1c934e3e39b4409e4857440c9db8
This commits adds a -qmldir configuration option for the configures to
allow the user to change the default location (it defaults to
$archdatadir/qml).
It adds a QLibraryInfo::Qml2ImportsPath value for
QLibraryInfo::location, a qmake property of QT_INSTALL_QML and a qt.conf
configure location entry "Qml2Imports".
At the same time, it makes the qmake .prf files dealing with QML plugins
be the QML 2 version. Those files are new in Qt 5, so we have the option
to choose which version we want to use.
Discussed-on: http://lists.qt-project.org/pipermail/development/2012-October/007136.html
Change-Id: I8c1c53e8685a5934ed0a9a42ba5663297b81a677
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>