summaryrefslogtreecommitdiffstats
path: root/src/corelib/Qt5CoreMacros.cmake
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-04-041-2/+2
|\ | | | | | | Change-Id: Ia7328524f2cd9d5995ac8705f0fe0bf570b2e831
| * Fix disabling AUTOMOC and AUTOUIC for generated resource cpp filesAlexandru Croitor2019-04-021-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | when using qt5_add_big_resources. The previous approach of just setting SKIP_AUTOMOC and SKIP_AUTOUIC on the generated source files is not enough because if AUTOMOC is globally enabled, AUTOMOC will still run for the rcc_object_{outfilename} target, which ends up creating a mos_compilation.cpp.o file and adding it as a target object to the target. Thus later when $<TARGET_OBJECTS:rcc_object_${outfilename}> is passed to the rcc invocation, the expression evaluates to a list of two files: the rcc-related .o file and the mocs_compilation.o file. Obviously that breaks the rcc invocation. The fix is to disable AUTOMOC and AUTOUIC on the whole target, instead of just the source files. This prevents the creation of the mocs_compilation.cpp file. Fixes: QTBUG-74270 Change-Id: I51f757b110e940fe224010acb25b88c52ef612b1 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* | Fix can not -> cannotRobert Loehning2019-02-251-1/+1
|/ | | | | Change-Id: Ie9992f67ca59aff662a4be046ace08640e7c2714 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Fix re-running of cmake when a qrc file changesSimon Hausmann2018-10-191-1/+1
| | | | | | | | | | Commit 2af127763194c13c3f7ccce507c94eb2de6dbefe renamed out_depends to _out_depends inside qt5_add_resources but the old (empty) variable was used with add_custom_command. Change-Id: I8005674992b4538bd82375a4f1f70484bc0f0ae5 Reviewed-by: André Klitzing <aklitzing@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Add support for big resources with CMakeAndy Shaw2018-08-161-0/+43
| | | | | | Task-number: QTBUG-55680 Change-Id: I09570a4e959ffd0e6d378bc315b13d57baaa82e8 Reviewed-by: Kevin Funk <kevin.funk@kdab.com>
* CMake: Restore qt5_use_modules() functionKevin Funk2018-06-151-0/+51
| | | | | | | | | | | | | | | It appears that in the 5 years since we deprecated this function, people have not stopped using it. The removal of qt5_use_modules() caused lots of troubles in packages still using it when they were compiled against Qt 5.11.0. Instead, let's revive this function and keep it for the Qt5 life time. See discussion on qt-development mailing list: http://lists.qt-project.org/pipermail/development/2018-June/032837.html Change-Id: Ic263e3bb6706268cb9ea38a0711665f166a3aa9e Reviewed-by: David Faure <david.faure@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove CMake code for CMake < 3.1Kevin Funk2018-03-241-57/+0
| | | | | | | | | This removes the following functions from Qt5CoreMacros: - qt5_use_modules(...) Task-number: QTBUG-63519 Change-Id: I59769060a3a93686bf319b558c0ede55755fdb70 Reviewed-by: David Faure <david.faure@kdab.com>
* CMake: qt5_add_binary_resource: re-run if neededKevin Funk2018-01-091-1/+1
| | | | | | | | | | | qt5_add_binary_resources() macro did not recompile for CMake generated input before this patch. Adding the input files to the DEPENDS option corrects this issue: Task-number: QTBUG-60714 Change-Id: I0f46918c6f1079fed7ee1b21305b18ff38f863f8 Reviewed-by: David Faure <david.faure@kdab.com>
* CMake: Set SKIP_AUTOMOC/AUTOUIC where neededKevin Funk2017-11-221-2/+7
| | | | | | | | | | Make sure we don't run into warnings for CMake 3.10 Task-number: QTBUG-63442 Change-Id: Ida004705646f0c32fb4bf6006036d80b1f279fd7 Reviewed-by: David Faure <david.faure@kdab.com> Reviewed-by: Sebastian Holtermann <sebholt@xwmw.org> Reviewed-by: Rolf Eike Beer <eb@emlix.com>
* Qt5CoreMacros: append the --compiler-flavor=msvc flagBen Boeckel2017-02-011-1/+1
| | | | | | | | Previously, the flags were replaced rather than appended to, losing -I flags and causing `#include` directives to fail. Change-Id: I74609e891ea327a8136c8075ab13176fc85ab111 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Make moc obey the preprocessor environment variable for include pathsThiago Macieira2016-07-201-0/+3
| | | | | | | | | | | | | | | | | | | | | | C preprocessors augment their standard list of include paths from the environment: Unix preprocessors use $C_INCLUDE_PATH (for C) and $CPLUS_INCLUDE_PATH (for C++), plus CPATH for both, whereas MSVC uses the an environment variable simply called "INCLUDE". Handling this for MSVC is particularly important because the VCVARSALL.BAT script sets the necessary #include paths in the environment for important things. Without that being parsed, moc won't find some #defines, like WINAPI_DESKTOP_FAMILY. [ChangeLog][moc] qmake and moc now cooperate to use the Visual Studio environment variables (set by the VCVARSALL.BAT script) to find system include files. A possible consequence is that moc parses application headers slightly differently, depending on #if conditions that depended on macros that previous versions had not seen #define'd. Implementers of other buildsystems are advised to pass the --compiler-flavor=msvc option to moc. Change-Id: I7e06274214d1939b0124e5b4bf169cceaef9ca46 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Merge remote-tracking branch 'origin/5.6' into devSimon Hausmann2016-01-121-1/+1
|\ | | | | | | Change-Id: I5839bded07e23af65ced9491c4f50242f964dd31
| * CMake: Fix qt5_use_modules macro for CMake 2.8.11Kevin Funk2016-01-111-1/+1
| | | | | | | | | | | | | | | | Note the excessive escaping around "GNU". Otherwise this leaks the -fPIE flag to the target. Change-Id: I340df5d5bce00ebec4e1ff3a557ade67022ba23b Reviewed-by: Stephen Kelly <ske@ableton.com>
* | Merge remote-tracking branch 'origin/5.6' into devFrederik Gladhorn2016-01-081-5/+6
|\| | | | | | | | | | | Based on merge done by Liang Qi Change-Id: Id566e5b9f284d29bff2199f13f9417c660f5b26f
| * Add DEPENDS option to qt5_wrap_cpp()Daniel Levin2015-12-211-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently the moc rule does not support dependency scanning, so after successful moc file generation it will ignore implicit dependencies in the header file. Although this works in most typical scenarios, at least in one case incremental builds become broken: when using Q_PLUGIN_METADATA() with the FILE argument. If FILE refers to a JSON file and latter was updated, then the expected behavior is to regenerate the moc file. Since CMake add_custom_command() does not support late dependency setup, all dependencies should be explicitly listed in a DEPENDS section. This patch adds the DEPENDS multiarg option to qt5_wrap_cpp(), allowing to specify additional dependencies to the moc rule. Task-number: QTBUG-44009 Change-Id: I2052ce23d3cb0c87c6bd99fcb7e8a71a7be9a330 Reviewed-by: Kevin Funk <kevin.funk@kdab.com> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> Reviewed-by: Daniel Levin <dendy.ua@gmail.com>
* | Qt5CoreMacros: Sync with CMake project counterpartKevin Funk2015-12-211-4/+4
|/ | | | | | | | | | | | | | | | | | | Port of CMake commits: commit 2622bc3f65162bf6d6cb5838da6999f8b5ca75cf Author: Rolf Eike Beer <eike@sf-mail.de> Date: Sun Apr 6 21:30:00 2014 +0200 Clean up usage of if(... MATCHES regex) followed string(REGEX REPLACE regex) commit 7beba98652212c7a44f291b51dd03681e5193c49 Author: Robert Maynard <robert.maynard@kitware.com> Date: Thu Apr 3 11:27:58 2014 -0400 Qt4Macros: Make QT4_CREATE_MOC_COMMAND a function Change-Id: I5b928d114adb393ed9370163609311b7486e4a36 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.4' into 5.5Liang Qi2015-06-011-2/+4
|\ | | | | | | | | | | | | | | Conflicts: qmake/generators/mac/pbuilder_pbx.cpp src/corelib/global/qglobal.h Change-Id: I2c0f7544bf194f2d0f59218fd583c822901487b0
| * Revert some changes in light of GCC 4 -fPIE reversalv5.4.2Stephen Kelly2015-05-291-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | CMake: Fix regression with quoted OPTIONS parameterAndré Klitzing2015-03-111-1/+1
| | | | | | | | | | | | | | If a parameter contains quotes the check for "-binary" fails. Change-Id: I27148b590d85291a93f1992dfd277fb857bec6e2 Reviewed-by: Stephen Kelly <steveire@gmail.com>
* | Updated BSD licensed file headersJani Heikkinen2015-02-151-1/+1
| | | | | | | | | | Change-Id: I6441ff931dbd33b698d762e6f6784898f3f60fe7 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | CMake: Introduce qt5_add_binary_resourcesA. Klitzing2015-02-111-26/+78
| | | | | | | | | | | | | | | | | | | | | | Optional parameter DESTINATION to set target rcc file Example: qt5_add_binary_resources(GenerateFixture "fixture.qrc") Task-number: QTBUG-41728 Change-Id: I9dc2fe8e7d5e9ad3873b89f75ab84a2a1b9d1d29 Reviewed-by: Stephen Kelly <steveire@gmail.com>
* | Update copyright headersJani Heikkinen2015-02-111-1/+1
|/ | | | | | | | | | | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Outdated header.LGPL removed (use header.LGPL21 instead) Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing combination. New header.LGPL-COMM taken in the use file which were using old header.LGPL3 (src/plugins/platforms/android/extract.cpp) Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license combination Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe Reviewed-by: Matti Paaso <matti.paaso@theqtcompany.com>
* Fix typo in Qt5CoreMacros.cmakeAleix Pol2014-12-231-1/+1
| | | | | | | | | | According to the documentation, the argument is called COPYONLY instead of COPY_ONLY. Fixes warning and ensures it works properly. Change-Id: I643f5ea808aaaf94c3ee666ec39485e84ed38df1 Reviewed-by: Vishesh Handa <vhanda@kde.org> Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
* CMake: Generate config-specific moc parameters file.Stephen Kelly2013-12-161-0/+1
| | | | | | | | | When using the visual studio generators, a moc parameters file for each configuration is generated. The content differs because the -DQT_NO_DEBUG may be added or not, depending on the configuration. Change-Id: I52eae536289d451df72df2e4dba709851279694a Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* CMake: Allow specifying a TARGET in invocations of macros.Stephen Kelly2013-08-211-29/+51
| | | | | | | | | | | | Forward-port of 9ce60ff509c4ff27fe861fc5b2080f50897a68c4 (Qt4Macros: Allow specifying a TARGET in invokations of macros., 2013-02-26) from cmake.git. This causes the INCLUDE_DIRECTORIES and COMPILE_DEFINITIONS to be used from the specified target when running moc. Change-Id: I868a35ade3c6b059e64d226291cf2046709d86d4 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Mark qt5_use_modules as obsolete.Stephen Kelly2013-07-311-0/+12
| | | | | | | | | | Forward-port of cb7f32f5b861fe115fa71f64500a5cbb0b643f1b (Mark qt4_use_modules and qt4_automoc as obsolete., 2013-07-04) from cmake.git. Change-Id: I0c24408ef06bc93eb0e55108cf4eab2f8cbd19cb Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Define QT_NO_DEBUG with RelWithDebInfo and MinSizeRel builds.Stephen Kelly2013-07-151-0/+2
| | | | | | | | Task-number: QTBUG-32403 Change-Id: I709ca32ca5bc1a342593357735ef3911ef849eb9 Reviewed-by: Clinton Stimpson <clinton@elemtech.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Make qt5_use_modules find dependents only in the parent directory.Stephen Kelly2013-04-111-1/+2
| | | | | | | | | Similar to 70420ec3 (Look for cmake package dependents only in the parent directory., 2013-04-02), make sure this cmake function only searches for sibling packages as dependencies. Change-Id: Icab23d333fa6a750ee262b592fae39f0ba334fee Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Don't calculate the install prefix again in the extra cmake files.Stephen Kelly2013-02-131-1/+1
| | | | | | | | 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>
* CMake: Make qt5_use_modules a macro, not a function.Stephen Kelly2012-10-221-8/+8
| | | | | | | | | | | | | | | | | | Because qt5_use_modules is a function that does a find package which finds imported targets, things like this: qt5_use_modules(foo Sql) if (TARGET Qt5::Sql) message("Qt5Sql_FOUND: ${Qt5Sql_FOUND}") endif() will show Qt5Sql as being not found, even though the target is in scope. Fix that by making it a macro instead. Change-Id: If314bd5b4d3f769c6c7df5ff2c924eabd16dcc0e Reviewed-by: Alexander Neundorf <neundorf@kde.org> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* CMake: Improve QT5_GET_MOC_FLAGS macroStephen Kelly2012-10-041-0/+4
| | | | | | | | | | | | We need to handle CMAKE_INCLUDE_CURRENT_DIR for include directories. Otherwise generated files located in the current binary directory are not found as expected. e.g. *.json file as meta data for Qt5's plugins generated at build time. Change-Id: I14ae1e7013f9d8b485aa990d50db4a03ca4f4b81 Reviewed-by: Yuchen Deng <loaden@gmail.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* CMake: Change suffix from "cxx" to "cpp" for generate sourcesYuchen Deng2012-09-271-2/+2
| | | | | | | | | Cause Qt5's source file use "cpp" as suffix and automoc use "cpp" as suffix too. Keep it with same feel better. Change-Id: Iba3f8ffb5c3dbf003a9e1aacf3706089c1b6765c Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* cmake: define QT_NO_DEBUG in client release buildsPeter Kümmel2012-08-271-0/+1
| | | | | Change-Id: Ife224bf908c5e9bc1e62a830a3750de88a082eb7 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Add some error checking to the qt5_use_modules function.Stephen Kelly2012-08-271-0/+8
| | | | | | Change-Id: I8fa2f10edbee1080646324c0689b23eda44aa75d Reviewed-by: Alexander Neundorf <neundorf@kde.org> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Require CMake 2.8.9 for the qt5_use_modules function.Stephen Kelly2012-08-101-14/+1
| | | | | | | | | | | The newer CMake version has the POSITION_INDEPENDENT_CODE property which is what we need here. The CMake 2.8.8 implementation uses awkward and incomplete string manipulation which I don't want to maintain for any amount of time when Qt 5.0 is released. Change-Id: If7ace9c6925ccdbf800f1863fa2368e55fa44d7f Reviewed-by: Brad King <brad.king@kitware.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Create IMPORTED CMake targets for executables.Stephen Kelly2012-07-251-3/+3
| | | | | | | | | | | 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>
* Forward-port change to QT4_ADD_RESOURCES macro for missing rcc files.Stephen Kelly2012-06-231-16/+24
| | | | | | | | Forward-port of commit 9ce67d30011db4528d3d0bbee36412e13cfb80cc in cmake.git. Change-Id: I2d6c14f68f1630fc0835b3103e5058f52c2d0d13 Reviewed-by: David Faure <faure@kde.org>
* Use the POSITION_INDEPENDENT_CODE property on targets using Qt.Stephen Kelly2012-06-201-10/+15
| | | | | | | | | 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>
* Find Qt5 modules automatically in the qt5_use_modules function.Stephen Kelly2012-05-141-1/+4
| | | | | | | | | | This ensures that we only find Qt5 modules from the same directory as modules we have already found, not from multiple different directories which may be incompatible. Change-Id: I7ad1d81ec41bba2e543130740041338ba44a6c3b Reviewed-by: Alexander Neundorf <neundorf@kde.org> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Make the qt5_use_modules public API.Stephen Kelly2012-05-101-0/+32
| | | | | | | | | | | | | | This cmake function handles all of the necessary logic for using the include directories of Qt modules, linking to Qt modules, adding the required definitions, and most importantly, adding the position independent flags required on UNIX systems to use Qt by default. The function relies on functionality available in CMake 2.8.8, so it is only available if that version of CMake or greater is used. Change-Id: Ibe698e06819129479348c240844264c41553b5fb Reviewed-by: Alexander Neundorf <neundorf@kde.org> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Use the CMake definition of Windows for CMake macros.Stephen Kelly2012-02-231-1/+1
| | | | | | Change-Id: I599ddaaf9176f76f2e144c893e607757957dfef2 Reviewed-by: Clinton Stimpson <clinton@elemtech.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Convert macros to functions.Stephen Kelly2011-12-211-7/+9
| | | | | | Change-Id: I43f4188d1c33cd5a07eb7a12bf3343af7e6a211f Reviewed-by: Alexander Neundorf <neundorf@kde.org> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Port to list(APPEND)Stephen Kelly2011-12-211-2/+2
| | | | | | Change-Id: I198622270324eea62dd5ad6343fdf7c89e736e6c Reviewed-by: Alexander Neundorf <neundorf@kde.org> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Fix style in cmake macros files.Stephen Kelly2011-12-211-161/+158
| | | | | | Change-Id: I2806ce63f5948dde9c582740bc2f070900987fb5 Reviewed-by: Alexander Neundorf <neundorf@kde.org> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Use VERBATIM where needed in macros.Stephen Kelly2011-12-071-2/+2
| | | | | | | | | | Forward port of fix for http://cmake.org/Bug/view.php?id=12554 Test fails before and passes after. Change-Id: I7a3ab2369cb3095c63f9e2a3e604088ebdcc2465 Reviewed-by: Clinton Stimpson <clinton@elemtech.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Port to CMakeParseArguments from a custom rolled macro.Stephen Kelly2011-12-061-19/+18
| | | | | | Change-Id: Ia7bf5046420ee8f2d690d098937a212eb75b07ce Reviewed-by: Clinton Stimpson <clinton@elemtech.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Now that qt5_automoc doesn't exist, this macro is not needed.Stephen Kelly2011-12-061-2/+0
| | | | | | | Change-Id: I4746ed5ba41fba801599f443d1214e1744807e20 Reviewed-by: David Faure <faure@kde.org> Reviewed-by: Clinton Stimpson <clinton@elemtech.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Install CMake config files from Qt.Stephen Kelly2011-11-291-0/+208
This includes a BSD licenced file Qt5CoreMacros.cmake which is adapted from Qt4Macros.cmake in the CMake source tree. Change-Id: I54326b808795535490a0489659b351a8da72cdbb Reviewed-by: Clinton Stimpson <clinton@elemtech.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>