summaryrefslogtreecommitdiffstats
path: root/mkspecs/features/qt_plugin.prf
Commit message (Collapse)AuthorAgeFilesLines
* Remove qmake files that provide support for building Qt modulesAmir Masoud Abdol2023-02-271-101/+0
| | | | | | | | | | | | | | Repeating the body of the reported bug, "Building Qt modules with qmake is unsupported in Qt6 and since 6.5's switch to syncqt.cpp broken." [ChangeLog][qmake] Support for building Qt modules with qmake was removed. Pick-to: 6.5 Fixes: QTBUG-110134 Change-Id: Iee5aa5c85f7106bce742df448ec502e6cc039454 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* CMake: Remove old Qt 5 CMake build system filesAlexandru Croitor2020-10-011-2/+0
| | | | | | | | | | | | | | | Remove the stale Qt 5 CMake files. Disable the generation of CMake files by the qmake build system, it wouldn't create usable Qt 6 files anyway. Keep mkspecs/features/create_cmake.prf and mkspecs/features/cmake_functions.prf for now until we can confirm that they are safe to remove. Task-number: QTBUG-86827 Change-Id: Idcf59f4d7d5474171a9bf72904ff19adc8bc74cd Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Make -qtlibinfix affect the names of plugins by defaultJoerg Bornemann2020-07-131-2/+1
| | | | | | | | | | | | | | | | In Qt5, the -qtlibinfix option did not affect the naming of plugins, unless -qtlibinfix-plugins was set. This option was added in 56416509930 to offer a way to have -qtlibinfix affect the plugin names without changing the default behavior. We now remove the -qtlibinfix-plugins option, as the old behavior is not desirable. [ChangeLog][configure] The -qtlibinfix option now affects the names of plugins. The -qtlibinfix-plugins configure option was removed. Task-number: QTBUG-15192 Fixes: QTBUG-85439 Change-Id: I96f5c2577b76274929c431621967df0e9b4631b7 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Android: Fix plugins namingBogDan Vatra2019-10-011-1/+1
| | | | | | | | | | | | | | Android 5 doesn't extract the files from libs folder unless they are prefixed with "lib". This patch sets a proper name for the plugin which will make gdb happy and it will also avoid any name clashes. If we rename the plugins when we copy them, gdb won't find them, therefore it can't load their symbols. On Android all the libs are in a single folder, so to make sure we don't have any name clashes, we are prefixing the plugin name with it's relative path to qt folder (we replace / with _). Fixes: QTBUG-78616 Change-Id: I7e0e67d65448532769d69f46b1856c029e2cf5cb Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Add -qtlibinfix-plugins for renaming Qt plugins according to QT_LIBINFIXJoerg Bornemann2019-05-161-0/+1
| | | | | | | | | | [ChangeLog][configure] Added the configure option -qtlibinfix-plugins to rename plugins according to QT_LIBINFIX. This option is off by default. Fixes: QTBUG-15192 Change-Id: Id5b267e169ee143fc8f7abc6b27bc0ed5306406f Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Make sure MODULE is set even when we are not creating a pri fileRobert Griebl2018-06-111-2/+2
| | | | | | | | | | | wayland-scanner.prf uses it as a trigger, so this is needed to make dynamic non-prefix builds work. amends 427e5d61b7. Task-number: QTBUG-68773 Change-Id: Ia7d3bc39cb2b0f225e827f64eb17d061d594b265 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Merge remote-tracking branch 'origin/5.10' into devLars Knoll2018-01-021-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf sc/corelib/io/qfsfileengine_p.h src/corelib/io/qstorageinfo_unix.cpp src/platformsupport/eglconvenience/qeglpbuffer_p.h src/platformsupport/input/libinput/qlibinputkeyboard.cpp src/platformsupport/input/libinput/qlibinputpointer.cpp src/plugins/platforms/cocoa/qcocoamenu.mm src/plugins/platforms/ios/qiosscreen.h src/plugins/platforms/ios/qioswindow.h src/plugins/platforms/ios/quiview.mm src/printsupport/dialogs/qpagesetupdialog_unix_p.h src/printsupport/dialogs/qprintpreviewdialog.cpp src/printsupport/widgets/qcupsjobwidget_p.h src/widgets/widgets/qmenu.cpp tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp Change-Id: Iecb4883122efe97ef0ed850271e6c51bab568e9c
| * unbreak plugin dependency trackingOswald Buddenhagen2017-12-141-1/+1
| | | | | | | | | | | | | | | | use the correct operator. amends 623b191c10. Change-Id: Ice8b2a82b1c7828587cccc7d464f9313e176d536 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Enable deprecation warnings for Qt plugins, just like for modulesTor Arne Vestbø2017-11-081-0/+2
|/ | | | | | | | | We want to know when a plugin uses deprecated Qt APIs, especially deprecations in the QPA APIs, which today is not the case, so platform plugins have no idea that they should transition. Change-Id: If9d3d95dc6f1f4178b103f177c9eb8326767ffab Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
* Merge remote-tracking branch 'gerrit/dev' into HEADOswald Buddenhagen2017-02-011-0/+4
|\
| * track plugins' qt dependenciesOswald Buddenhagen2017-01-061-0/+4
| | | | | | | | | | | | | | | | plugins may pull in additional qt modules which may require additional plugins in turn. Change-Id: I22264b39c1397666b2dc9079048ed1fc64aa84d9 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Build Qt libraries with -fapplication-extensionJake Petroules2017-01-271-0/+3
|/ | | | | | | | | | | | | | | This ensures at compile-time that Qt libraries do not use any APIs that are not safe for use in application extensions, and fixes warning messages that appear when linking to Qt libraries that are not built with this flag, when used in an application extension. This is especially important on watchOS where *all* "applications" are actually application extensions, and on other Apple platforms if application extensions are developed using Qt. Task-number: QTBUG-40101 Change-Id: I022046f2584e0222253d33052b0abc221d7c93d6 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Get rid of simulator_and_device CONFIG option (mostly)Oswald Buddenhagen2016-10-161-1/+0
| | | | | | | | | | | | | | | | A separate flag is no longer needed now that simulator and device builds are not exclusive any more (*) - both 'simulator' and 'device' being set at the same time is a sufficient indication (uikit/default_pre.prf sets this up according to the simulator_and_device feature and the QMAKE_MAC_SDK variable). (*) xcodebuild mode actually still uses exclusive builds, but this is activated locally in uikit/default_post.prf, and uikit/xcodebuild.prf implements the actual build passes manually anyway, so this change does not affect it. Change-Id: Idf173a7bfeb984498d3a49ed6b8d1a16da6c2089 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Use qtConfig throughout in qtbaseLars Knoll2016-08-191-4/+4
| | | | | | | | | | | Use the new qtConfig macro in all pro/pri files. This required adding some feature entries, and adding {private,public}Feature to every referenced already existing entry. Change-Id: I164214dad1154df6ad84e86d99ed14994ef97cf4 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* make use of silent error() emissionOswald Buddenhagen2016-08-081-2/+2
| | | | | | | | get rid of the entirely superfluous stock "Aborting." messages - the event triggering the exit has already reported the problem. Change-Id: Ib9dfb9e4212f60eceb2ea432cdf56c5a8afe9d65 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-06-211-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/global/qglobal.cpp src/corelib/global/qsysinfo.h src/corelib/kernel/qcoreapplication_win.cpp src/gui/text/qdistancefield.cpp src/gui/text/qdistancefield_p.h src/plugins/platforms/windows/qwindowsglcontext.cpp src/plugins/platforms/windows/qwindowsglcontext.h Change-Id: Ib3500acc2b28553bde06758cd9a2e19eb7fe2978
| * fix logical mismerge from 5.6Oswald Buddenhagen2016-06-171-1/+1
| | | | | | | | | | | | | | | | iphonesimulator_and_iphoneos was renamed to simulator_and_device in 5.7. Task-number: QTBUG-54163 Change-Id: If4a76f45450edc0f6e8fb3615355613212314300 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-06-131-1/+3
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: config_help.txt configure mkspecs/features/uikit/sdk.prf src/corelib/global/qhooks.cpp src/corelib/io/qfilesystemwatcher.cpp src/corelib/io/qlockfile_unix.cpp src/corelib/tools/qalgorithms.h src/gui/kernel/qwindowsysteminterface.h src/gui/text/qtextdocument_p.cpp src/network/access/access.pri src/network/access/qnetworkaccessmanager.cpp src/network/access/qnetworkreplynsurlconnectionimpl.mm src/src.pro src/testlib/qtestcase.cpp src/widgets/kernel/qwidgetbackingstore_p.h src/widgets/styles/qwindowscestyle.cpp src/widgets/styles/qwindowsmobilestyle.cpp tests/auto/corelib/io/qdiriterator/qdiriterator.pro tests/auto/corelib/io/qfileinfo/qfileinfo.pro tests/auto/gui/kernel/qwindow/BLACKLIST tests/auto/widgets/dialogs/qfilesystemmodel/tst_qfilesystemmodel.cpp tools/configure/configureapp.cpp Change-Id: Ibf7fb9c8cf263a810ade82f821345d0725c57c67
| * fix ios device&simulator builds againOswald Buddenhagen2016-06-101-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | the assumption stated in b67a0836d is actually invalid - configure sets build_all without debug_and_release there. debug_and_release does actually imply build_all, though. to make things less confusing, don't let configure inject iphonesimulator_and_iphoneos into all projects, but handle it like debug_and_release instead. Change-Id: Ib7acdc63308a538862fc603428f81aba60bca08e Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-05-231-3/+2
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/wince80colibri-armv7-msvc2012/qmake.conf qmake/generators/win32/msvc_vcproj.cpp src/corelib/global/qnamespace.h src/corelib/global/qnamespace.qdoc src/corelib/io/qfsfileengine_win.cpp src/corelib/tools/tools.pri src/network/ssl/qsslconfiguration_p.h src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp src/plugins/platforms/windows/windows.pri src/src.pro src/tools/bootstrap/bootstrap.pro src/tools/uic/cpp/cppwriteinitialization.cpp src/widgets/dialogs/qfilesystemmodel.cpp tests/auto/testlib/selftests/expected_cmptest.teamcity tests/auto/testlib/selftests/expected_cmptest.txt Change-Id: I4d2ac78f0dcc97f008186bbbc769c6fe588ab0e5
| * QT_CONFIG simplification re debug_and_release and build_allOswald Buddenhagen2016-05-171-3/+2
| | | | | | | | | | | | | | | | don't pretend that these two flags can be set separately - the configures set them in tandem. Change-Id: Ib0beae0152de09026d4627fd3ae0feabd9ce1b81 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | qmake: Remove Windows CE support.Joerg Bornemann2016-03-101-1/+0
|/ | | | | | | The platform has been removed in Qt 5.7. Change-Id: Ie768b5ffbe60270c27b4a670dcf580ea361cb361 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* sanitize qt rpath handling, in particular on macOswald Buddenhagen2015-09-171-0/+2
| | | | | | | | | | | | | | | | the addition of qt's rpath belongs into qt.prf - even on mac. so consolidate the two implementations. as a nice "side effect", we get relative rpaths also on linux. another "side effect" is that we don't unnecessarily add the qt rpath to qt modules also on linux. the qt rpath addition mechanism should not be responsible for setting the policy who gets a relative rpath, so move the logic to higher-level callers. Change-Id: I52e8fe2e8279e7b1ac25fae758867a5cb1cafcf8 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* fix usage of wince scopeOswald Buddenhagen2015-06-051-1/+1
| | | | | | | Fix style issues along the way. Change-Id: Ic6a6de28e198eb0b14c198b802e78845703909b9 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* restore qt4's qtLibraryTarget() behaviorOswald Buddenhagen2015-03-051-1/+1
| | | | | | | | | | the function is used in our examples and code generated by qt-creator, so the qt5-specific magic behavior is inappropriate. create a separate function instead. Task-number: QTBUG-44595 Change-Id: I4d72cc1e5cbfc274b3210520baa213f4c5479ca9 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* embed a VERSIONINFO resource into Qt pluginsJoerg Bornemann2014-10-201-0/+6
| | | | | | | | | | This reverts f0ee55c00. VERSION actually makes sense on Windows, because it embeds a VERSIONINFO resource into the DLL that can be inspected by the user. Task-number: QTBUG-37961 Change-Id: I6b81b5aa999eba16cb8d9a4d61bd596310af46b9 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* fix/optimize QT_PLUGIN_PATH construction in qtAddTargetEnv()Oswald Buddenhagen2014-06-051-4/+6
| | | | | | | | | | | | | instead of adding all possible plugin paths (for which QMAKEMODULES wouldn't have been a reliable source anyway), only add the paths of plugins of the necessary types. this necessitates that we create qt_plugin_<foo>.pri files also in shared builds of qt when making a prefix build. we don't install them unless it's a static build, though. Change-Id: Ib56b009562a7131d4dc4dfc259b34ec6581b0f77 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* don't create a trailing space when PLUGIN_EXTENDS is emptyOswald Buddenhagen2014-04-301-1/+1
| | | | | Change-Id: Ia6a11721419e043bc08e38b5e6c6dfd71315eca2 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* de-duplicate setup of libdir replacement in prl filesOswald Buddenhagen2014-04-151-9/+0
| | | | | | Change-Id: Ia93fa02d9e63597d3347fee3aaf2aca65e7cc83a Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Davide Pesavento <davidepesa@gmail.com>
* make QTPLUGIN work in prefix builds for plugins outside qtbaseOswald Buddenhagen2014-04-091-2/+29
| | | | | | | | | | | this means creating forwarding pris also for plugins. unlike for qt modules, we don't actually populate the .PATH unless it we are making a prefix build (and thus expecting it to be outside the regular location). Change-Id: Id836821cddec8d5f53d0708ae001e8eaa13cc71b Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* automatically link plugins belonging to qt modules when building static appsOswald Buddenhagen2014-04-091-1/+3
| | | | | | | | | | | | | | | | the plugins already declare which modules they belong to. additionally, we allow plugins to declare which modules they "extend" - e.g., while the Quick accessibility plugin belongs to Gui's 'accessiblity' type, it makes no sense to link it unless Quick is actually linked. finally, it is possible to manually override the plugins which are linked for a particular type, by setting QTPLUGIN.<type> (to '-' if no plugins of this type should be linked at all). Task-number: QTBUG-35195 Change-Id: I8273d167a046eb3f3c1c584dc6e3798212a2fa31 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* properly replace windows paths in installed plugin prl filesOswald Buddenhagen2014-03-141-0/+1
| | | | | | | | amends 53f48a4b. Task-number: QTBUG-37399 Change-Id: I599ba612af760891cd99283560ccc9240125db39 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* enable path replacement in installed plugin prl files on all platformsOswald Buddenhagen2014-03-141-9/+7
| | | | | | | | amends 08a2d8df4. Task-number: QTBUG-37399 Change-Id: I113ddf632d2ce3f7f2c92e079fd2fa3a1a640c1a Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Replace win32-g++ with mingw scopeKai Koehne2014-01-171-1/+1
| | | | | | | | Commit 773dd01 introduced a general mingw platform scope, which is cleaner and more flexible than matching the spec name. Change-Id: Ie3a9cb791a83f7c8a51bc4e23069190c452ab521 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Teach CMake about Qt 5 plugins.Stephen Kelly2013-09-101-0/+2
| | | | | Change-Id: Idd3225759f9f5ec620f79e29035eb176f965bef7 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Merge remote-tracking branch 'gerrit/release' into stableSamuel Rødal2013-03-211-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure mkspecs/features/qt_module_headers.prf mkspecs/features/qt_tool.prf src/angle/angle.pro src/tools/bootstrap/bootstrap.pro tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp Change-Id: Ide5759fe419a50f1c944211a48f7c66f662684e0
| * fix replacement base pathOswald Buddenhagen2013-03-151-1/+1
| | | | | | | | | | | | | | | | this affects only webkit when doing module-by-module installation, so it went unnoticed. Change-Id: Iab87f4a76fcb0fa9a1b1d6bcab9a73756e416120 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Add qt_common.prf and move some common definitions thereThiago Macieira2013-02-281-4/+1
|/ | | | | | | | This file is now included by three types of Qt output: modules, plugins (including QML plugins) and tools. Change-Id: I5085f6ff37f70e9228303bf0520040adc2e2d7a5 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* add QT_CONFIG's static/shared to CONFIG on startupOswald Buddenhagen2013-02-181-4/+1
| | | | | | | | | ... 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>
* fix path adjustments in installed metafilesMark Brand2013-01-301-0/+10
| | | | | | Task-number: QTBUG-28902 Change-Id: Ia70da8f0f0b7abb4ea2a46cb4068c0827888b322 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Fix installation of plugin module .pris in static Qt buildsMiikka Heikkinen2012-12-171-5/+7
| | | | | | | | | | | | | | | When building Qt static, plugins get module .pri file, but those files do not get installed in Windows. This is because both .pri generation and install target statements are scoped with !build_pass, which means Makefile.Debug and Makefile.Release do not get install_pritarget target. Fixed by doing only the .pri generation in !build_pass scope. Task-number: QTBUG-28606 Change-Id: If3f49b578af1d9171a8bce67793ecb3f902a6da8 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Mark Brand <mabrand@mabrand.nl>
* mark a bunch of features as internalOswald Buddenhagen2012-12-121-0/+11
| | | | | Change-Id: I5ad28827ff317985414e859263af85ceec31207c Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Pro-file level support for importing plugins for static Qt buildsMiikka Heikkinen2012-12-101-1/+3
| | | | | | | | | | | | | | | | | | | | Platform plugin is needed always when gui is linked to an application. This is tedious to do manually for static builds, so provide support for generating a source file that imports static plugins for application projects. "CONFIG += import_plugins" statement in application .pro file will generate required import statements for all plugins specified with QTPLUGIN variable. The plugin class names are found from plugin's module pri generated automatically when plugin is built, as long as the plugin specifies the PLUGIN_CLASS_NAME in the plugin .pro file before loading qt_plugin.prf. Task-number: QTBUG-28131 Change-Id: I19f8ea48a3c1e9b5c81f4399c4b5d439a6d4bea1 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Fix module pri file name for static pluginsMiikka Heikkinen2012-12-071-1/+1
| | | | | | | | | | Since QTPLUGIN variable values are used to locate both the plugin library and the module pri file, those must match. Therefore generate module pri file name using the TARGET of the plugin rather than the pro file name. Change-Id: I9ec6f2a087ba3b3cecf7034c8a28b31df155cd97 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* let static plugins have "module" pri filesOswald Buddenhagen2012-11-011-0/+14
| | | | | | | ... and use them in qt.prf instead of (not) maintaining hand-coded lists. Change-Id: Ia21f7864eaf3ca92fa75f23876f71075d0521f4b Reviewed-by: Mark Brand <mabrand@mabrand.nl>
* beef up qt_plugin.prfOswald Buddenhagen2012-11-011-2/+11
| | | | | | | it now defines the DESTDIR and creates an INSTALLS rule. Change-Id: I15a462ccad9acbe3521c352fa98327825dc27c05 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* introduce tool_plugin CONFIG flagOswald Buddenhagen2012-10-291-1/+3
| | | | | | | | while plugins for libraries need to follow the -debug-and-release switch, plugins for tools must follow the single-config approach of tools. Change-Id: I8a79e98034d2ff8b5d4e6191a9143c9472a5aa02 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* VERSION makes no sense for pluginsOswald Buddenhagen2012-10-291-1/+0
| | | | | Change-Id: I7af058eec1c5a0fdbd9848d2dc2f6bd76ca4747e Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Fix debug and release build for Windows CEAndreas Holzammer2012-07-251-1/+1
| | | | | Change-Id: Idc3faa2c65f3e87aadf75c0c79f1581a24aff8ca Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Update the macros for shared/DLL and static buildsThiago Macieira2012-06-281-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Up until now, we had a mess of different macros used for building DLLs, for building shared libraries on Unix systems and for building static libraries. Some of the macros were contradictory and did not work. From now on, there shall be only: - QT_STATIC: indicates that it's a static Qt build and the export macros should expand to empty - QT_SHARED: indicates that it's a shared / dynamic Qt build and the export macros should expand to Q_DECL_EXPORT or Q_DECL_IMPORT, depending on whether the macro corresponds to the current module being built (the QT_BUILD_XXXX_LIB macro comes from the module's .pro file) QT_BOOTSTRAPPED implies QT_STATIC since the bootstrapped tools link statically to some source code. QT_STATIC is recorded in qconfig.h by configure when Qt is configured for static builds. Nothing is recorded for a shared / dynamic build, so QT_SHARED is implied if nothing is defined. This allows for the existence of a static_and_shared build: with nothing recorded, defining QT_STATIC before qglobal.h causes the export macros to be that of the static form. Linking to the static libraries is out of the scope of this change (something for the buildsystem and linker to figure out). From this commit on, the proper way of declaring the export macros for a module called QtFoo is: #ifndef QT_STATIC # ifdef QT_BUILD_FOO_LIB # define Q_FOO_EXPORT Q_DECL_EXPORT # else # define Q_FOO_EXPORT Q_DECL_IMPORT # endif #else # define Q_FOO_EXPORT #endif The type of the Qt build is recorded in QT_CONFIG (in qconfig.pri) so all Qt modules build by default the same type of library. The keywords are "static" and "shared", used in both QT_CONFIG and CONFIG. The previous keyword of "staticlib" is deprecated and should not be used. Discussed-on: http://lists.qt-project.org/pipermail/development/2012-April/003172.html Change-Id: I127896607794795b681c98d08467efd8af49bcf3 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>