stack-protector-strong gives performance benefits over
stack-protector-all and is still checking more than -stack-protector,
so seems to be a good middle way and we want to use it when it is
there.
The -shared option for the compiler (not the linker) prevents a
RIM internal version of qcc from forcing -fPIE, and should not harm
in general when set.
In addition, add a method "compilerSupportsFlag" for Windows as is
present in the Unix configure script.
Change-Id: Iba300e9cb82f34043e7b36f8e45287a1aed2a1a5
Original-patch-by: Greg Bentz
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Change copyrights and license headers from Nokia to Digia
Change-Id: If1cc974286d29fd01ec6c19dd4719a67f4c3f00e
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
on the way to eliminate scoping based on the spec.
gcc and msvc go as such into CONFIG, the other ones get the vendor
prefixed, as most are mostly unknown and thus likely to clash with
users' flags.
Change-Id: Ie622f53d90e96dbf05ce7d8c638cd355f04fa20c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Removed QT_GUI_DRAG_DISTANCE & QT_GUI_DOUBLE_CLICK_DISTANCE from the
iOS qplatformdefs.h header as these values are dependant on display
pitch and should be calculated by the platform plugin.
Change-Id: I00c377483ad73cad19a2fe729cb3f45e9271e3ac
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
"CONFIG += qt warn_on release link_prl" is in every single spec (though
for link_prl there is one genuine exception and two apparent omissions).
Change-Id: I72e1e315586af828eefa3b0b70998ab892ec3c1a
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
there is no reason whatsoever to duplicate this so many times, and even
less reason to have specs with a deviating default.
Change-Id: Ia25836c079580adebc373697b8bd03598f79c69b
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
not strictly necessary, but nicer.
QMAKE_PLATFORM (and thus CONFIG) now also contains the name of the OS, and
its family (if applicable, e.g., bsd). this also adds more feature search
paths.
Change-Id: I3ab971e6e3b2b32cae53b95e4bc67a86688bc5cb
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
We do not need to include -lang-c++ more than once in QMAKE_LFLAGS*
variables. The fact that this was not appearing more than once was due
to QMAKE_LFLAGS being overwritten (rather than appended to) in
qcc-base-qnx.conf and a weird coincindence in qmake's code to dedupe
libraries passed in to QMAKE_LFLAGS. The deduping was working based
upon options beginning with "-l", including the -lang-c++ option here.
Change-Id: I983f216c0e362a9fe6a924074c5d84aaa659a14f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
hard-coding it in unix.conf was no particularly good idea for hopefully
obvious reasons.
the windows version is so far just a stub that does what the makespecs
hard-coded - more doesn't seem worth the effort. the guys interested in
x-building may want to rectify it at some point, but it's not going to
be easy.
Change-Id: I8fedd841a8416f8c0c57018752eae9510b5d00d0
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Making -lang-c++ integral part of the $CXX command was wrong, because there are
cases where $CXX must be called without the -lang-c++ file (when building asm
files for instance). This commit moves the -lang-c++ to $CXX_FLAGS where it
belongs.
Change-Id: I667c8d722105c6117fcd8ff3102dbdfcb890b24f
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
They had no effect anyways due to the check in the embed_manifest*.prf
files.
Change-Id: I3cd145030876d91948794d376a18a47e297f3b3a
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
this is in fact a shell-related flag, which determines how QMAKE_DIR_COPY
is assumed to behave.
Change-Id: If774f8a83b40c9ae7107c8e7ef7263af8a2e6c6e
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
qtAddModule() skips adding standard library paths to LIBS. however, as
processPrlFiles() didn't know anything about that, it would not find the
prl files of qt libraries in these paths.
so centralize the definition of these default paths (we should actually
ask the linker for them) and use it in both places.
do the same for the include paths for symmetry.
Change-Id: I7e3692dc2d1c2d0c97a9151d15887b1263de137a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Rationale:
QCC is a wrapper around GCC, but it doesn't understand -std,
so we need to pass it via -Wc.
The underlying GCC is v4.4, which doesn't know -std=c++11
yet, only c++0x.
We can't use -std=c++0x here, because the QNX headers
depend on some GNU extensions (nanosleep() was one that I
saw), so it has to be gnu++0x, ie. STD C++ + GNU extensions.
Change-Id: Ia5caf68f558b1638224e4876f1bbec84a0a93f67
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Should be be reintroduced with intent if there is sufficient interest, outside of the QWS context.
Change-Id: I598f47b5cf0c10dd66534294d0f27cf0b4e5069a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Using these requires setting two environment variables, e.g, for me:
export ANDROID_NDK_ROOT=/Users/burchr/android-ndk-r7c
export ANDROID_NDK_HOST=darwin-x86
./configure -opensource -confirm-license -xplatform unsupported/linux-android-armeabi-v7a-g++ -nomake examples -nomake demos -nomake tests -v
These mkspecs are somewhat based on the work of the Necessitas crew, kudos to
them for their work in getting the NDK integration into qmake.
Change-Id: I591e423ed8dc70616009f681c81890c696110e62
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
instead of making the "real" targets depend on the makefiles, add
conditional makefile generation to the targets themselves.
this causes makefile generation to follow the recursion order determined
by the project, which is important when dealing with prl and module pri
files.
a side effect of this is that qmake and make calls are interleaved now,
which is entirely different from a 'qmake -r' run.
on the downside, calling make with multiple targets which operate on the
same subprojects without prior makefile generation will make a mess, as
the qmake calls will be racing. this should be no problem, as qmake does
not generate recursive targets where this would be useful - at least by
default.
it is not sufficient to just order the creation of the makefiles
non-recursively (e.g., by using gnu-specific order-only-prerequisites),
as an interrupted and subsequently resumed build would happily skip the
nested makefiles.
workable alternative approaches would be walking the entire tree in a
pre-pass to ensure makefile presence (which is incredibly slow) or
creating additional stamp files only after recursing and having the
makefiles depend on them (which is ugly).
Task-number: QTBUG-23376
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Change-Id: I88d3e7610215677d362026de316513d3bea04b06
instead of hard-coding platform differences, use a variable.
Change-Id: I20e98811ad5f07429148c6f88aedbabc3ba58fff
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
there are only two types. everything else is duplication.
Change-Id: I87f2bdd3d56b94bb2ecdb60e8861afeb9af3666f
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
they are equivalent to QT_INSTALL_(HEADERS|LIBS)/get.
Change-Id: Ic4b47f3ca7db55785b96f19020a2fa020a8d25bd
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
The QNX toolchain can use Neon on ARM and SSE<X> on x86/x86_64.
Change-Id: I36c61fa12b65d806b3cc60a0aefcb63964f9ab7e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This allows us to have different flags for the compilers for
supporting the same feature. For example, the official flag in GCC to
support AVX2 is -mavx2, but ICC does not support it (yet), requiring
-march=core-avx2 or -xCORE-AVX2. That flag, instead, enables support
for all the features that the "Core-AVX2" processor (codename Haswell)
will support. And clearly, the MSVC flags are different.
Change-Id: I33b6d8617520925e807747180a8dbaafd79b7a9a
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Enabling support for C++11 adds CONFIG+=c++11 to the Qt build. Projects
using Qt can check for C++11 support using contains(QT_CONFIG, c++11) in
their .pr[iof] files.
The QMAKE_CXXFLAGS_CXX11 and QMAKE_LFLAGS_CXX11 qmake varibles contain
any arguments the compiler needs to enable C++11. CONFIG+=c++11 adds
these arguments to the build.
Support for clang, g++, and the Intel C++ Compiler for Linux are
included in this commit.
Change-Id: Id77f86d7ad4d5c740b890446a40b105879a0d327
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
There is no session management currently implemented for the xcb QPA
backend. Update the build system to reflect this.
Change-Id: I3486de5741f1fb7e09330ca142b8235a84d3b91d
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
This significantly reduces the size of the generated code
in places where we don't need exceptions.
The -(no-)exceptions configure flag has been removed in the
process, as there is now a fine grained way to control this
on a per module level, and Qt is being compiled without
exceptions in most places.
Change-Id: I99a15c5d03339db1fbffd4987935d0d671cdbc32
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Modern versions of Xcode properly support dwarf2, and as such dwarf2 is
always enabled. This change removes the ability to turn it off, making
dwarf2 non-optional.
Change-Id: I149daeae6048ee8a1ed116363572173ad219102e
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Add mkspecs/macx-clang-32
Add mkspecs/macx-g++-32
Add mkspecs/common/clang-mac.conf
Skip the rest of the Mac mkspecs (icc, llvm, g++40,
g++42, builder, Xcode, xlc) pending a cleanup where
we determine which ones to keep.
Change-Id: I00ceddfcbdb5119cb132433bad43e4aed016eab2
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Remove all [PPC|PPC64|X86|x86_64] CFLAGS, CXXFLAGS
and OBJECTIVE_CFLAGS. Delete the arch prf files.
32/64 bit arch selection will be made using a different
mechanism in Qt 5. Universal builds are not supported.
Change-Id: I4664f2c31801cec7fb4d240f41c2c5204a109020
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Modified common MacOS gcc config for iOS compatibility. Added iOS
mkspecs for iOS devices and simulator using G++, LLVM-G++ or CLANG
compilers.
Change-Id: If0a0b1a3ce4e0dc4db319a315e227a9d31549399
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Change-Id: Id85d18d9f21711e8d53e8e4bfdf39d10e135f593
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
A recent change in platformsupport required "egl" to be defined,
otherwise the QNX plugin would fail at runtime with unresolved symbols.
Now the EGL config test passes.
Change-Id: I111eb939abac86885bcdb35d5f5899f515bd8c4e
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
The naming convention for these libraries says that libGLES_CM is to be
used when EGL is included while libGLESv1_CM should be used when EGL is
not included. Since we have a seperate variable for libEGL, it
makes sense to have this variable represent the non-EGL version of the
library.
Change-Id: I9147c116da7be4a296a0ebeac39762b46725f10e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
It transpires that QNX 6.5.0 does not yet have libc support for the
gcc stack smashing protection.
Change-Id: Ic635662b6aa3ce2fad5f69e236386ae9ace420db
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Removed the duplicated 'qnx' CONFIG defition from the mkspecs and declared it
on the common qcc-base-qnx.conf configuration file.
Change-Id: Ie215e3dd794762f20bec9c19afd5936a78a9d963
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
This variable is there for documentation, but its not being used anymore.
There are two libraries from wayland, libwayland-client and
libwayland-server. Add two variables that will be picked up in the
QtWayland module.
Change-Id: I16219092a4ed2e48080921ce39f61192b6abb711
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
This changeset allows Qt to be built for QNX platforms in light of
commit d59e85d909.
Change-Id: Idf8e89cf1b0a5625ef7ee6397c223137fa151cdc
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Follow-up to d13bedb9d8
where the regexp was a bit too tight and missed many specs.
Also cleaned up QMAKE_IDC, QMAKE_RCC and QMAKE_IDL.
Change-Id: Ia15007141739019ef5ccfdda0c856c478f732b85
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
there is entirely no point in having it there.
Change-Id: Ie2fc1e94495119725131cbd50564648cbb4a7dc8
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>