summaryrefslogtreecommitdiffstats
path: root/src/corelib/Qt5CoreConfigExtras.cmake.in
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/5.6' into devFrederik Gladhorn2016-01-081-1/+22
|\ | | | | | | | | | | Based on merge done by Liang Qi Change-Id: Id566e5b9f284d29bff2199f13f9417c660f5b26f
| * CMake: Add -fPIC to CXX flags only where necessaryKevin Funk2015-12-281-1/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this patch, Qt5Core_EXECUTABLE_COMPILE_FLAGS was populated with -fPIC unconditionally. This causes warnings on MSVC, since the compiler does not understand this flag. In fact, -fPIC is only required in case an older release of CMake is being used and the compiler is GCC 5.x (according to documentation), so let's really add it just in this case. Task-number: QTBUG-47942 Change-Id: I9d09b8b257a0647235d6d781ee5c023af34f8f88 Reviewed-by: Stephen Kelly <steveire@gmail.com>
* | CMake: Enable C++11 support on Qt5 targetsKevin Funk2016-01-061-0/+2
|/ | | | | | | | | | | | | Implicitly add the minimum required `-std=...` to Qt5 module targets. Use the newly introduced INTERFACE_COMPILE_FEATURES property for this, which is available starting from CMake version 3.1. This also fixes the Qt5 CMake tests, which previously try-compiled projects using Qt 5.7 headers in non-C++11 mode, thus failed. Change-Id: I54fc0e07403b646b5d6ac3ab6b8b47119b4feef6 Reviewed-by: Stephen Kelly <steveire@gmail.com>
* Revert some changes in light of GCC 4 -fPIE reversalv5.4.2Stephen Kelly2015-05-291-1/+7
| | | | | | | | | | | | | | The -fPIE option is now accepted when using GCC 4, which means it is available for backward compatibility for clients using CMake 2.8.11 or older which makes use of the POSITION_INDEPENDENT_CODE feature. Conditionally use that feature for old versions of cmake with GCC 4. Restore the tests for those versions, and clarify the situation in the ChangeLog. Change-Id: I5a06b155dda7db559d86841a2b34fd8ed95acbd0 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Only add -fPIC flags for compilers known to require it.Stephen Kelly2015-05-271-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | Commit 083c9269 (Try to ensure that -fPIC is used in CMake builds, 2015-05-11) added a raw -fPIC to the INTERFACE_COMPILE_OPTIONS of Qt5::Core, which affects all consuming compilers. Use the qmake variable $$QMAKE_CXXFLAGS_APP instead, which at least currently contains only the -fPIC variable or harmlessly expands to nothing. If the content of that qmake variable changes in the future, a $$QMAKE_CXXFLAGS_APP_PIC variable should be extracted in qmake and used here. Don't use the POSITION_INDEPENDENT_CODE feature of CMake. That adds the -fPIE flag for executables, which is explicitly what qglobal.h forbids since commit 3eca75de (Make qglobal.h complain if you use -fPIE, 2015-05-11). The current behavior of that CMake feature is tracked here: http://public.kitware.com/Bug/view.php?id=15570 Change-Id: I5c5bcc40fe4b310b55a681a3505f45c50adfa054 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Try to ensure that -fPIC is used in CMake buildsEvangelos Foutras2015-05-141-1/+2
| | | | | | | | | | In commit 36d6eb721e7d5997ade75e289d4088dc48678d0d the -fPIE switch was replaced with -fPIC in an effort to avoid generating copy relocations which are incompatible with Qt5 when built with -reduce-relocations. Task-number: QTBUG-45755 Change-Id: I59a55ea15052f498104848c5fd867e563ddc2290 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Require -fPIC instead of just -fPIE for -reduce-relocationsThiago Macieira2015-05-071-1/+1
| | | | | | | | | | | | | | | | | GCC 5 combined with a recent binutils have a new optimization that allows them to generate copy relocations even in -fPIE code. Clang has the same functionality when compiling an executable with -flto. We need to let the compilers know that they cannot use copy relocations, so they need to use really position-independent code. Position independent code throughout is not really required. We just need the compilers to use position-independent access to symbols coming from the Qt libraries, but there's currently no other way of doing that. Task-number: QTBUG-45755 Change-Id: I0d4913955e3745b69672ffff13db5df7377398c5 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Fixing Qt5CoreConfigExtras.cmake.inBjoern Thiel2015-02-201-5/+5
| | | | | | | | The property INTERFACE_LINK_LIBRARIES has a single value and is configuration independent. Change-Id: I9130b1d0444563335825e3806f693a39f65ca67d Reviewed-by: Stephen Kelly <steveire@gmail.com>
* CMake: Fix QObject::connect failing on ARMAlbert Astals Cid2015-02-031-2/+0
| | | | | | | | We need PIE, doesn't matter if reduce_relocations is used or not Change-Id: I9a359b9d4443a6059980cd4c48058132ec4267fe Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* CMake: Add defines for disabled features.Stephen Kelly2013-11-221-0/+6
| | | | | | Change-Id: I883291dc72eef82aaea2e2b039dfb33c7f56e98b Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* CMake: Add the qreal typedef type to the Qt5::Core target.Stephen Kelly2013-11-041-1/+2
| | | | | | | | | | This way, a Qt compiled with qreal=float and one linked with qreal=double can not be linked by a single downstream. That is diagnosed at cmake-time. Change-Id: I9183dbcfef181fadea5321d3154948e8258e4a2a Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-08-271-0/+5
|\ | | | | | | | | | | | | Conflicts: examples/widgets/doc/src/addressbook-fr.qdoc Change-Id: Id1196e8e0c6445f1616c3f29234c974d809f8e48
| * Populate INTERFACE_LINK_LIBRARIES property in the cmake files.Stephen Kelly2013-08-211-0/+5
| | | | | | | | | | | | | | | | This is new in CMake 2.8.12 and replaces the old properties matching IMPORTED_INTERFACE_LINK_LIBRARIES_<CONFIG>. Change-Id: I5d4c454972f2535f6792e95718c73d80c56ac24c Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-06-271-0/+2
|\| | | | | | | | | | | | | | | Conflicts: configure mkspecs/features/create_cmake.prf Change-Id: I94aea83b83833395d5db399209e0e51b92ef23b5
| * Make clients use the QT_NO_DEBUG flag when using QtCore in release mode.Stephen Kelly2013-06-241-0/+2
| | | | | | | | | | | | | | | | | | This is similar to 9a5ade8abecd9763691127fe0f951303f5ce74bd which modified the qt5_use_modules macro. Change-Id: Ib63ee693ed2e25de6ac9d969e8be27ddbf8948c3 Reviewed-by: Peter Kümmel <syntheticpp@gmx.net> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* | Generate the directory for the mkspec include in a helper file.Stephen Kelly2013-06-211-5/+2
|/ | | | | | | | | | The cmake variable for the mkspec dir must specify the source location if used in the build dir, and must specify the install location if used in the install dir. Change-Id: I2fee8cd0c7198e9fc5cbb63972e20c75636672d1 Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Check that files we expect to find actually exist when using a cmake package.Stephen Kelly2013-05-201-15/+34
| | | | | | Change-Id: If7c724daa85df5e29e410b8deb4e69beb43ee8ea Reviewed-by: Alexander Neundorf <neundorf@kde.org> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* List the Qt5::WinMain Release configuration before the Debug one.Stephen Kelly2013-04-181-8/+8
| | | | | | | | | | | Apply the logic from commit d7ae34fdfde61838ce1e4fb13a945832841f61ab (List the Release library before the Debug library in cmake files., 2013-02-21) to the Qt5::WinMain library too. Task-number: QTBUG-29186 Change-Id: Ie465fef1cc0fc842d86c5bc69ab84ec65ec652d9 Reviewed-by: Andy Shaw <andy.shaw@digia.com>
* mkspecs are installed to QT_HOST_DATA instead of QT_INSTALL_ARCHDATA.Volker Krause2013-04-081-3/+3
| | | | | | | These are the same for normal builds, but differ when cross-compiling Qt. Change-Id: I75eccc6f4b67b440a08c4aba41aabb7df686c9f9 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Populate includes, defines and pic flags in target interfaces.Stephen Kelly2013-03-271-2/+27
| | | | | | | | | | | | | | | Used by features in CMake 2.8.11. This matches the features in FindQt4 in that version of CMake, namely that the IMPORTED targets contain the appropriate INTERFACE_INCLUDE_DIRECTORIES and INTERFACE_COMPILE_DEFINITIONS and that the qtmain.lib static library is automatically linked to on Windows by executables. Additionally, the INTERFACE_POSITION_INDEPENDENT_CODE property is set appropriately if Qt requires users to use position independent code. Change-Id: Ide341f43fcaf7d722a7bdf1a12b1071c7e548ccc Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Revert "Don't duplicate the 'top-level' include dir in all modules."Stephen Kelly2013-03-261-2/+2
| | | | | | | | | | | | | This will likely fix some odd cmake related tests in the CI. This reverts commit 316d8ececa3314ec16baf46ec4f1c5440cd951ef. Conflicts: mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in src/corelib/Qt5CoreConfigExtras.cmake.in Change-Id: Ib7714746f96bf12061d92242a42296d200c56c00 Reviewed-by: David Faure (KDE) <faure@kde.org>
* Set the INTERFACE_QT_MAJOR_VERSION to 5.Stephen Kelly2013-03-181-0/+5
| | | | | | | | | This way, CMake will issue an error if there is an attempt to use Qt 4 and Qt 5 in the same target. Change-Id: I0cad31b00f7eb7dc372491e0f5734765551c3d6e Reviewed-by: Brad King <brad.king@kitware.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Don't calculate the install prefix again in the extra cmake files.Stephen Kelly2013-02-131-8/+6
| | | | | | | | The parent file has already set a variable for it. Change-Id: I90ddda355a580f44ea7e1e44cc7df717fa0a8b7b Reviewed-by: Alexander Neundorf <neundorf@kde.org> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Don't duplicate the 'top-level' include dir in all modules.Stephen Kelly2013-02-091-2/+2
| | | | | | | | | | | | This is the <prefix>/include directory which is independent of the module and which only has to be used once. As everything uses QtCore, it is enough to set it only there. The CI system is a special case, in that it tests things before installation. Handle that case too. Change-Id: Idcdf9617e199b7d490cb3553cce07f1f464b3bec Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Fix the computation of the location of mkspecs.Stephen Kelly2012-12-201-3/+3
| | | | | | | | | The location of the mkspecs directory comes from the archdatadir, which distros will all set. Change-Id: I20dbdce76db13dbd37eec065009e215f98985907 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Use the mkspec name Qt was configured with instead of default symlinkStephen Kelly2012-10-161-2/+2
| | | | | | | | | The default symlink is not available on Windows, so the qplatformdefs.h header is not available there. Instead we can bypass the symlink and use the actual mkspec name directly. Change-Id: I1d7e05f35c1ff56befab5bed307cb1755ade8377 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Create IMPORTED CMake targets for executables.Stephen Kelly2012-07-251-6/+38
| | | | | | | | | | | Although IMPORTED executables are not extra special, this is more future-proof in terms of both future CMake features and future our needs - it is possible that we would want to add a property to an executable at TARGET scope, which would not be possible if it is just a path. Change-Id: I649c601e004b21603c5fa97de0b7c397813ed68d Reviewed-by: Brad King <brad.king@kitware.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Only create the Qt5::WinMain target if it doesn't exist yet.Stephen Kelly2012-07-131-11/+13
| | | | | | | | Multiple calls to find_package(Qt5Core) would otherwise attempt to create multiple targets of the same name. Change-Id: I5639671fec66d4dd62dcce018dea5d18dcfd3dc3 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Move the macros for invoking ctest to a shared location.Stephen Kelly2012-07-031-0/+4
| | | | | | | | | They are still internal, but all Qt5 modules will be able to use them then. Change-Id: I42ab656115b0976ca959293dfd664ec071f35dbf Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Use the POSITION_INDEPENDENT_CODE property on targets using Qt.Stephen Kelly2012-06-201-0/+4
| | | | | | | | | This property is only set if Qt is configured with -reduce-relocations (which is the default). Change-Id: If2f0ab92448f03bbc3f7c828d3bca60107229072 Reviewed-by: Brad King <brad.king@kitware.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Expand the 'existing target guard' in generated CMake files.Stephen Kelly2012-06-071-4/+1
| | | | | | | | | | | | | | | | | | | | This way the target will be created and have its properties populated only one time. I tried wrapping the whole file in an 'include guard', but that broke the unit test in tests/auto/cmake/pass1 (and the qt5_use_module function), because the function causes the variables in the Config file to not exist outside of the scope (eg for include directories), and yet, Qt5${Module}_FOUND is still true even when the find_package was previously called in a function, so it is not found and processed again. The change in Qt5CoreConfigExtras.cmake does not need to be guarded as it is only ever included from Qt5CoreConfig. Change-Id: Iaa016563db5eb61294360ac9e003c9c923393d8c Reviewed-by: Brad King <brad.king@kitware.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Properly quote all variables which are paths.Stephen Kelly2012-05-161-4/+4
| | | | | | | | This is required if Qt is installed into a directory with spaces. Change-Id: I1d6874265558d712ac98a3aef670c2934a632ab1 Reviewed-by: Clinton Stimpson <clinton@elemtech.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Publish the fact of whether Qt was built with hidden visibility.Stephen Kelly2012-05-051-0/+4
| | | | | | Change-Id: Iaf1a6495ee96859af9c5c25a54ea1fc463910cd3 Reviewed-by: Alexander Neundorf <neundorf@kde.org> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Revert "Make the CONFIG and QT_CONFIG contents available downstream."Stephen Kelly2012-04-041-3/+0
| | | | | | | | | | | | This reverts commit 6c2e57e6884c1ef524bb22f0ed6a2be2c97cd46d. This created variables with awkward names and unproven usefulness. In the FindQt4.cmake file they are considered internal. Change-Id: I51443b2a39d4f11817bd13332baf025556dd8ebe Reviewed-by: Clinton Stimpson <clinton@elemtech.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Ensure that the variable for the installation prefix is unique.Stephen Kelly2012-03-311-2/+2
| | | | | | | | | Using the same variable for multiple config files can lead to conflicts. Change-Id: Ie6a22618c4c2e64567874e5c7e8b278e067fedae Reviewed-by: Alexander Neundorf <neundorf@kde.org> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Prefix the variables for debug and release types properly.Stephen Kelly2012-03-281-2/+2
| | | | | Change-Id: I346992effa997f60a4fd20055f0af81d6a084095 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Make the CONFIG and QT_CONFIG contents available downstream.Stephen Kelly2012-03-021-0/+3
| | | | | | | Change-Id: I62dbc5a695e41179de9f6acd11aa7bc592cac6f3 Reviewed-by: Clinton Stimpson <clinton@elemtech.com> Reviewed-by: Alexander Neundorf <neundorf@kde.org> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Make the CMake files work with directory overrides.Stephen Kelly2012-02-281-6/+23
| | | | | | | | | | | | This allows us to create correct CMake config files when Qt is configured with directories outside of the prefix (which Qt allows), and also allows us to use correct values when a 'longer' relative lib directory is used such as lib/x86_64-linux-gnu. Change-Id: I6f88255a23752dc5b84cb20ce13fdeeee9d5ad51 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Alexander Neundorf <neundorf@kde.org> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Add the QtMain windows library to the CMake files.Stephen Kelly2012-02-231-0/+23
| | | | | | | | Change-Id: Iff8b9bdd4b069721103e1cd5854e56b6116d7549 Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Alexander Neundorf <neundorf@kde.org> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Add the QT_LIBINFIX to the CMake config files.Stephen Kelly2012-02-221-0/+4
| | | | | | Change-Id: If7bec54eca2d28cba314ce94a1ab1831c024ad31 Reviewed-by: Alexander Neundorf <neundorf@kde.org> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Use QMAKE_SUBSTITUTIONS conditionalsStephen Kelly2012-02-221-7/+7
| | | | | | | Instead of generating CMake conditionals. Change-Id: I3d987cc08666270e618222be9292558e73bc961e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Give the compile flags an EXECUTABLE_ prefix.Stephen Kelly2012-02-211-1/+1
| | | | | | | | The fPIE flag should only be used with executables. Change-Id: If799ae4a7fe2492af3aac67651659a52d365024a Reviewed-by: Alexander Neundorf <neundorf@kde.org> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Only define QT_NAMESPACE if it is used.Stephen Kelly2012-02-171-2/+4
| | | | | | | | Fixes non-namespaced builds. Change-Id: I0ec3c29f58042313dfa864f15c2b2d47914cdedb Reviewed-by: Clinton Stimpson <clinton@elemtech.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Use ctest to run all tests and print output.Stephen Kelly2012-02-171-4/+2
| | | | | | Change-Id: Ib5a8513cc2d08adce49602b2590059b918b1ffda Reviewed-by: Alexander Neundorf <neundorf@kde.org> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Only define QT_NAMESPACE if it is used.Stephen Kelly2012-02-171-2/+4
| | | | | | | | | Fixes non-namespaced builds. Change-Id: Ie743fc57e7f208fdd50c61b08dc8a4b150de3930 Reviewed-by: Clinton Stimpson <clinton@elemtech.com> Reviewed-by: Alexander Neundorf <neundorf@kde.org> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Make the cmake tests work with a namespace build.Stephen Kelly2012-02-151-0/+3
| | | | | | | Change-Id: I6858c324548373c57963b5ef137772a1f780ec78 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Clinton Stimpson <clinton@elemtech.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Add -fPIE to the Qt5Core_COMPILE_FLAGS with reduce-relocations.Stephen Kelly2012-02-101-0/+4
| | | | | | | | | | Qt requires this since 482d96a0c5d523ace63f56bda6851926b4469dd0 Change-Id: Iba783e283b17654abf46f11b81cc1641c3ce7d83 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Clinton Stimpson <clinton@elemtech.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Add the mkspecs dir to the include dirs.Stephen Kelly2012-02-081-0/+2
| | | | | | | Change-Id: If844785d7d3645c33e0fcb1206cc52f8ab644070 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Alexander Neundorf <neundorf@kde.org> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Remove plugin related variables from the CMake files.Stephen Kelly2011-12-191-4/+0
| | | | | | | | | It doesn't currently have any effect and needs to be re-thought anyway. Change-Id: I6e620ca5b341264bbf5279a19e8f25af8fa7d396 Reviewed-by: Alexander Neundorf <neundorf@kde.org> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Add the .exe suffix to executables on Windows.Stephen Kelly2011-12-121-3/+3
| | | | | | Change-Id: I257bb7d62ae18ea529df6b10694fcf25eedc83f4 Reviewed-by: Clinton Stimpson <clinton@elemtech.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>