From a6fa179a230a0bc921c97c3adee038f7ac8f1b03 Mon Sep 17 00:00:00 2001 From: Marius Storm-Olsen Date: Thu, 11 Nov 2010 09:35:09 -0600 Subject: Expose source and build directories for QtBase Also expose moc, uic, rcc, qdbusxml2cpp, include and lib --- mkspecs/features/qt_module.prf | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 mkspecs/features/qt_module.prf (limited to 'mkspecs') diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf new file mode 100644 index 0000000000..9fe20c76cb --- /dev/null +++ b/mkspecs/features/qt_module.prf @@ -0,0 +1,16 @@ +# This file is loaded on-demand, before any .qmake.cache (sometimes *in* .qmake.cache), to loaded +# important settings for modules, such as paths to QtBase and other modules. +# Consequently, we have to do some stunts to figure out where to find qmodule.pri. + +isEmpty(QMAKE_QT_MODULE)|!exists($$QMAKE_QT_MODULE) { + exists($$_QMAKE_CACHE_/mkspecs/qmodule.pri):QMAKE_QT_MODULE = $$_QMAKE_CACHE_/mkspecs/qmodule.pri + else:exists($$_QMAKE_CACHE_/qtbase/mkspecs/qmodule.pri):QMAKE_QT_MODULE = $$_QMAKE_CACHE_/qtbase/mkspecs/qmodule.pri + else:if(!isEmpty(QT_BUILD_TREE) & exists($$QT_BUILD_TREE/mkspecs/qmodule.pri)):QMAKE_QT_MODULE = $$QT_BUILD_TREE/mkspecs/qmodule.pri + else:exists($$[QT_INSTALL_DATA]/mkspecs/qmodule.pri):QMAKE_QT_MODULE = $$[QT_INSTALL_DATA]/mkspecs/qmodule.pri +} + +!exists($$QMAKE_QT_MODULE)|!include($$QMAKE_QT_MODULE, "", true) { + error("Cannot load qmodule.pri!") +} else { + debug(1, "Loaded qmodule.pri from ($$QMAKE_QT_MODULE)") +} -- cgit v1.2.3 From 32c4a2621840ccf0877d68301927d2862e2ac58f Mon Sep 17 00:00:00 2001 From: axis Date: Tue, 16 Nov 2010 14:31:27 +0100 Subject: Moved symbianpkgrules profiles to be feature profiles. --- mkspecs/features/symbian/qt_demo.prf | 17 +++++++++++++++++ mkspecs/features/symbian/qt_example.prf | 17 +++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 mkspecs/features/symbian/qt_demo.prf create mode 100644 mkspecs/features/symbian/qt_example.prf (limited to 'mkspecs') diff --git a/mkspecs/features/symbian/qt_demo.prf b/mkspecs/features/symbian/qt_demo.prf new file mode 100644 index 0000000000..9c4d96c1da --- /dev/null +++ b/mkspecs/features/symbian/qt_demo.prf @@ -0,0 +1,17 @@ +RSS_RULES ="group_name=\"QtDemos\";" + +nokiaVendor = "Nokia, Qt" +vendorinfo = \ + "; Localised Vendor name" \ + "%{$$addLanguageDependentPkgItem(nokiaVendor)}" \ + " " \ + "; Unique Vendor name" \ + ":\"$$nokiaVendor\"" \ + " " + +demos_deployment.pkg_prerules += vendorinfo +DEPLOYMENT += demos_deployment + +isEmpty(ICON):contains(TEMPLATE, ".*app"):contains(QT, gui):contains(CONFIG, qt):!contains(CONFIG, "no_icon") { + ICON = $$QT_SOURCE_TREE/src/s60installs/qt.svg +} diff --git a/mkspecs/features/symbian/qt_example.prf b/mkspecs/features/symbian/qt_example.prf new file mode 100644 index 0000000000..8c523fb00f --- /dev/null +++ b/mkspecs/features/symbian/qt_example.prf @@ -0,0 +1,17 @@ +RSS_RULES ="group_name=\"QtExamples\";" + +nokiaVendor = "Nokia, Qt" +vendorinfo = \ + "; Localised Vendor name" \ + "%{$$addLanguageDependentPkgItem(nokiaVendor)}" \ + " " \ + "; Unique Vendor name" \ + ":\"$$nokiaVendor\"" \ + " " + +examples_deployment.pkg_prerules += vendorinfo +DEPLOYMENT += examples_deployment + +isEmpty(ICON):contains(TEMPLATE, ".*app"):contains(QT, gui):contains(CONFIG, qt):!contains(CONFIG, "no_icon") { + ICON = $$QT_SOURCE_TREE/src/s60installs/qt.svg +} -- cgit v1.2.3 From 81f7b862d626cf926e1cec5b866013122d1ddc59 Mon Sep 17 00:00:00 2001 From: Marius Storm-Olsen Date: Wed, 24 Nov 2010 19:51:35 -0600 Subject: Fixup: not paths for other modules --- mkspecs/features/qt_module.prf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf index 9fe20c76cb..a263e285d6 100644 --- a/mkspecs/features/qt_module.prf +++ b/mkspecs/features/qt_module.prf @@ -1,5 +1,5 @@ # This file is loaded on-demand, before any .qmake.cache (sometimes *in* .qmake.cache), to loaded -# important settings for modules, such as paths to QtBase and other modules. +# important settings for modules, such as paths to QtBase, settings etc. # Consequently, we have to do some stunts to figure out where to find qmodule.pri. isEmpty(QMAKE_QT_MODULE)|!exists($$QMAKE_QT_MODULE) { -- cgit v1.2.3 From 94e8d3b6864ce9cd7a024d30b4f938a3ace940a2 Mon Sep 17 00:00:00 2001 From: Marius Storm-Olsen Date: Wed, 24 Nov 2010 19:56:41 -0600 Subject: Have qmake run syncqt automatically, if sync.profile is detected This will normally only happen for top-level pro files, and syncqt is smart enough to not touch already existing files. And in edition, syncqt uses the original file's timestamp on the fwding files. --- mkspecs/features/default_pre.prf | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'mkspecs') diff --git a/mkspecs/features/default_pre.prf b/mkspecs/features/default_pre.prf index 2e82f03eb9..b8779c8162 100644 --- a/mkspecs/features/default_pre.prf +++ b/mkspecs/features/default_pre.prf @@ -1,3 +1,31 @@ load(exclusive_builds) ### Qt 5: remove "uic" and "resources" - or add "qt" CONFIG = lex yacc warn_on debug uic resources $$CONFIG + +exists($$_PRO_FILE_PWD_/sync.profile) { + PRO_BASENAME = $$basename(_PRO_FILE_) + + # Try to detect proper QTDIR path. We require QTDIR, as syncqt uses that to create qt_module.pri + # forwarding files. If we don't find QTDIR, we avoid creating the fwd files, since you then need + # to do a 'make install;' before you can use the module + # (ie. we don't use QT_INSTALL_DATA for fwd includes. This path needs a full copy) + isEmpty(QTDIR) { + QTDIR = $$(QTDIR) + isEmpty(QTDIR):QTDIR = $$QT_BUILD_TREE + isEmpty(QTDIR):QTDIR = $$dirname(_QMAKE_CACHE_) + isEmpty(QTDIR) { + QMAKE_BASED_QTDIR = $$dirname(QMAKE_QMAKE) + QMAKE_BASED_QTDIR = $$dirname(QMAKE_BASED_QTDIR) + exists($$QMAKE_BASED_QTDIR/mkspecs/qconfig.pri): QTDIR = $$QMAKE_BASED_QTDIR + unset(QMAKE_BASED_QTDIR) + } + } + + isEmpty(QTDIR):QTFWD="-no-module-fwd" + else:QTFWD="-qtdir $$QTDIR" + + message("Running syncqt for $$PRO_BASENAME in $$OUT_PWD") + system("$$QTDIR/bin/syncqt $$QTFWD -outdir $$OUT_PWD $$_PRO_FILE_PWD_") + unset(QTFWD) + unset(PRO_BASENAME) +} -- cgit v1.2.3 From 00c5f39081fb8de9e0b77de4e21ba0862d4bf695 Mon Sep 17 00:00:00 2001 From: Marius Storm-Olsen Date: Wed, 24 Nov 2010 20:21:06 -0600 Subject: Add module specific pris, and make syncqt create fwd includes The module specific pris define the modules name version dependencies include paths lib paths additional CONFIGs and DEFINES They are located in the modules source directory, with fwd includes created in QtBase/mkspecs/modules build directory. The pris use QT_MODULE_INCLUDE_BASE QT_MODULE_LIB_BASE to specify the locations for includes and libs. These paths are normally based on QT_INSTALL_HEADERS QT_INSTALL_LIBS for installed modules, but overridden to the module's build directory by syncqt for the fwd included pris. The path of the pris must be specified in the sync.profile for syncqt to create the fwding pris in QtBase. --- mkspecs/features/qt_config.prf | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_config.prf b/mkspecs/features/qt_config.prf index de1cac4651..2973c7e414 100644 --- a/mkspecs/features/qt_config.prf +++ b/mkspecs/features/qt_config.prf @@ -14,7 +14,14 @@ isEmpty(QMAKE_QT_CONFIG)|!exists($$QMAKE_QT_CONFIG) { for(dir, $$list($$unique($$list($$dirname(QMAKE_QT_CONFIG) \ $$split($$list($$[QMAKE_MKSPECS]), $$DIRLIST_SEPARATOR))))) { debug(1, "Loading modules from $${dir}") - for(mod, $$list($$files($$dir/modules/qt_*.pri))):include($$mod) + for(mod, $$list($$files($$dir/modules/qt_*.pri))) { + # For installed Qt these paths will be common for all modules + # For development these will vary per module, and syncqt will override the value in the + # qt_.pri forwarding file + QT_MODULE_INCLUDE_BASE = $$[QT_INSTALL_HEADERS] + QT_MODULE_LIB_BASE = $$[QT_INSTALL_LIBS] + include($$mod) + } } } -- cgit v1.2.3 From 78797cc7e97c8337c14a094928b0843874e0bf89 Mon Sep 17 00:00:00 2001 From: Marius Storm-Olsen Date: Wed, 24 Nov 2010 22:20:01 -0600 Subject: Make qt.prf use new qt_module.pri structure for QT variable This change requires the new resolve_depends(var, prefix) function in qmake. --- mkspecs/features/qt.prf | 87 +++++++-------------------------------- mkspecs/features/qt_functions.prf | 63 ++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+), 71 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf index 191a449719..4d8e4655b6 100644 --- a/mkspecs/features/qt.prf +++ b/mkspecs/features/qt.prf @@ -35,19 +35,6 @@ plugin { #Qt plugins INCLUDEPATH = $$QMAKE_INCDIR_QT $$INCLUDEPATH #prepending prevents us from picking up "stale" includes win32:INCLUDEPATH += $$QMAKE_INCDIR_QT/ActiveQt -# As order does matter for static libs, we reorder the QT variable here -TMPLIBS = declarative webkit phonon multimedia dbus testlib script scripttools svg qt3support sql xmlpatterns xml egl opengl openvg gui network core meegographicssystemhelper -for(QTLIB, $$list($$TMPLIBS)) { - contains(QT, $$QTLIB): QT_ORDERED += $$QTLIB -} - -QT_UNKNOWN = $$QT -QT_UNKNOWN -= $$QT_ORDERED -QT = $$QT_ORDERED -for(QTLIB, $$list($$QT_UNKNOWN)) { - !contains(TMPLIBS, $$QTLIB):message("Warning: unknown QT: $$QTLIB") -} - QT_PLUGIN_VERIFY = QTPLUGIN DEPLOYMENT_PLUGIN for(QT_CURRENT_VERIFY, $$list($$QT_PLUGIN_VERIFY)) { for(QTPLUG, $$list($$lower($$unique($$QT_CURRENT_VERIFY)))) { @@ -128,69 +115,27 @@ for(QT_CURRENT_VERIFY, $$list($$QT_PLUGIN_VERIFY)) { } } } + + + #specific module settings !isEmpty(QT_BUILD_TREE):QMAKE_LIBDIR = $$QT_BUILD_TREE/lib $$QMAKE_LIBDIR #as above, prepending prevents us from picking up "stale" libs QMAKE_LIBDIR += $$QMAKE_LIBDIR_QT + +# Topological ordering of modules based on their QT..depends variable +QT = $$resolve_depends($$QT, "QT.") + for(QTLIB, $$list($$lower($$unique(QT)))) { - unset(qlib_style) - !qt_debug:!qt_release { - CONFIG(debug, debug|release):qlib_style = debug - else:qlib_style = release - } else:CONFIG(qt_debug, qt_debug|qt_release) { - qlib_style = debug - } else { - qlib_style = release - } + isEmpty(QT.$${QTLIB}.name) { + message("Warning: unknown QT module: $$QTLIB") + next() + } - unset(qlib) - isEqual(QTLIB, gui):qlib = QtGui - else:isEqual(QTLIB, network):qlib = QtNetwork - else:isEqual(QTLIB, xml):qlib = QtXml - else:isEqual(QTLIB, xmlpatterns):qlib = QtXmlPatterns - else:isEqual(QTLIB, opengl):qlib = QtOpenGL - else:isEqual(QTLIB, openvg):qlib = QtOpenVG - else:isEqual(QTLIB, sql):qlib = QtSql - else:isEqual(QTLIB, core):qlib = QtCore - else:isEqual(QTLIB, canvas):qlib = QtCanvas - else:isEqual(QTLIB, qt3support):qlib = Qt3Support - else:isEqual(QTLIB, svg):qlib = QtSvg - else:isEqual(QTLIB, script):qlib = QtScript - else:isEqual(QTLIB, scripttools):qlib = QtScriptTools - else:isEqual(QTLIB, testlib):qlib = QtTest - else:isEqual(QTLIB, dbus):qlib = QtDBus - else:isEqual(QTLIB, phonon) { - qlib = phonon - INCLUDEPATH += $$QMAKE_INCDIR_QT/phonon_compat - - # The Helix backend requires this. Since we can't let a plugin set it, - # we bump the values for all Symbian Phonon plugins. - symbian:isEmpty(TARGET.EPOCHEAPSIZE):TARGET.EPOCHEAPSIZE = 0x040000 0x1600000 - - } else:isEqual(QTLIB, webkit) { - qlib = QtWebKit - aix-xlc { - # Flags recommended by IBM when using WebKit - QMAKE_LFLAGS -= -bmaxdata:0x80000000 - QMAKE_LFLAGS += -bmaxdata:0xD0000000/dsa - } - } else:isEqual(QTLIB, declarative):qlib = QtDeclarative - else:isEqual(QTLIB, multimedia):qlib = QtMultimedia - else:isEqual(QTLIB, meegographicssystemhelper):qlib = QtMeeGoGraphicsSystemHelper - else:message("Unknown QT: $$QTLIB"):qlib = - !isEmpty(qlib) { - target_qt:isEqual(TARGET, qlib) { - warning($$TARGET cannot have a QT of $$QTLIB) - } else { - DEFINES *= $$upper(QT_$${QTLIB}_LIB) - isEqual(QTLIB, opengl):CONFIG += opengl - isEqual(QTLIB, openvg):CONFIG += openvg - isEqual(QTLIB, qt3support):DEFINES *= QT3_SUPPORT - isEqual(QTLIB, testlib):CONFIG += console - isEqual(QTLIB, dbus):CONFIG += dbusadaptors dbusinterfaces - - qtAddLibrary($$qlib) - } - } + target_qt:isEqual(TARGET, QTLIB) { + warning($$TARGET cannot have a QT of $$QTLIB) + next() + } + qtAddModule($$QTLIB) } qt_compat { diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf index 5baf7ce2b4..b9b0fd839b 100644 --- a/mkspecs/features/qt_functions.prf +++ b/mkspecs/features/qt_functions.prf @@ -92,6 +92,69 @@ defineTest(qtAddLibrary) { return(true) } +defineTest(qtAddModule) { + MODULE_NAME = $$eval(QT.$${1}.name) + MODULE_INCLUDES = $$eval(QT.$${1}.includes) + MODULE_LIBS = $$eval(QT.$${1}.libs) + + CONFIG += $$eval(QT.$${1}.CONFIG) + DEFINES += $$eval(QT.$${1}.DEFINES) + + INCLUDEPATH -= $$MODULE_INCLUDES + INCLUDEPATH = $$MODULE_INCLUDES $$INCLUDEPATH + + unset(LINKAGE) + mac { + CONFIG(qt_framework, qt_framework|qt_no_framework) { #forced + QMAKE_FRAMEWORKPATH *= $${QMAKE_LIBDIR_QT} + FRAMEWORK_INCLUDE = $$MODULE_INCLUDES.framework/Headers + !qt_no_framework_direct_includes:exists($$FRAMEWORK_INCLUDE) { + INCLUDEPATH -= $$FRAMEWORK_INCLUDE + INCLUDEPATH = $$FRAMEWORK_INCLUDE $$INCLUDEPATH + } + LINKAGE = -framework $${MODULE_NAME}$${QT_LIBINFIX} + } else:!qt_no_framework { #detection + for(frmwrk_dir, $$list($$QMAKE_LIBDIR_QT $$QMAKE_LIBDIR $$(DYLD_FRAMEWORK_PATH) /Library/Frameworks)) { + exists($${frmwrk_dir}/$${MODULE_NAME}.framework) { + QMAKE_FRAMEWORKPATH *= $${frmwrk_dir} + FRAMEWORK_INCLUDE = $$frmwrk_dir/$${MODULE_NAME}.framework/Headers + !qt_no_framework_direct_includes:exists($$FRAMEWORK_INCLUDE) { + INCLUDEPATH -= $$FRAMEWORK_INCLUDE + INCLUDEPATH = $$FRAMEWORK_INCLUDE $$INCLUDEPATH + } + LINKAGE = -framework $${MODULE_NAME} + break() + } + } + } + } + isEmpty(LINKAGE) { + # Make sure we can link to uninstalled libraries + !isEqual(MODULE_LIBS, $[QT_INSTALL_LIBS]) { + QMAKE_LFLAGS *= -L$$MODULE_LIBS + unix:QMAKE_LFLAGS *= "-Wl,-rpath-link,$$MODULE_LIBS" + } + if(!debug_and_release|build_pass):CONFIG(debug, debug|release) { + win32:LINKAGE = -l$${MODULE_NAME}$${QT_LIBINFIX}d + mac:LINKAGE = -l$${MODULE_NAME}$${QT_LIBINFIX}_debug + } + isEmpty(LINKAGE):LINKAGE = -l$${MODULE_NAME}$${QT_LIBINFIX} + } + !isEmpty(QMAKE_LSB) { + QMAKE_LFLAGS *= --lsb-libpath=$$$$QMAKE_LIBDIR_QT + QMAKE_LFLAGS *= -L/opt/lsb/lib + QMAKE_LFLAGS *= --lsb-shared-libs=$${MODULE_NAME}$${QT_LIBINFIX} + } + LIBS += $$LINKAGE + export(CONFIG) + export(DEFINES) + export(LIBS) + export(INCLUDEPATH) + export(QMAKE_FRAMEWORKPATH) + export(QMAKE_LFLAGS) + return(true) +} + # variable, default defineTest(qtPrepareTool) { isEmpty($$1) { -- cgit v1.2.3 From fb9b30b610b3b880cca314a78e3bdfdf2704bb00 Mon Sep 17 00:00:00 2001 From: axis Date: Mon, 3 Jan 2011 19:12:55 +0100 Subject: Corrected include path for UiTools. --- mkspecs/features/uitools.prf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mkspecs') diff --git a/mkspecs/features/uitools.prf b/mkspecs/features/uitools.prf index 65995770de..10835d4ab3 100644 --- a/mkspecs/features/uitools.prf +++ b/mkspecs/features/uitools.prf @@ -11,4 +11,4 @@ CONFIG(debug, debug|release) { } LIBS += $$QTUITOOLS_LINKAGE -INCLUDEPATH = $$QMAKE_INCDIR_QT/QtUiTools $$INCLUDEPATH +INCLUDEPATH = $$QT.uitools.includes $$INCLUDEPATH -- cgit v1.2.3 From 3ec5d966574f1a9da7cfde573771cb95c376ce7c Mon Sep 17 00:00:00 2001 From: Marius Storm-Olsen Date: Tue, 4 Jan 2011 16:37:10 +0100 Subject: Made modules that depend on other modules add their include paths. This is needed so that header files which contain references to those modules (for example in templates) will have their include paths as well. RevBy: axis --- mkspecs/features/qt.prf | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'mkspecs') diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf index 4d8e4655b6..419bb920f0 100644 --- a/mkspecs/features/qt.prf +++ b/mkspecs/features/qt.prf @@ -124,6 +124,7 @@ QMAKE_LIBDIR += $$QMAKE_LIBDIR_QT # Topological ordering of modules based on their QT..depends variable QT = $$resolve_depends($$QT, "QT.") +QT_DEPENDS= for(QTLIB, $$list($$lower($$unique(QT)))) { isEmpty(QT.$${QTLIB}.name) { @@ -136,8 +137,13 @@ for(QTLIB, $$list($$lower($$unique(QT)))) { next() } qtAddModule($$QTLIB) + QT_DEPENDS += $$eval(QT.$${QTLIB}.depends) } +# add include paths for all .depends, since module/application might need f.ex. template specializations etc. +QT_DEPENDS -= $$QT +for(QTLIB, $$list($$lower($$unique(QT_DEPENDS)))):INCLUDEPATH += $$INCLUDEPATH $$eval(QT.$${QTLIB}.includes) + qt_compat { !qt_compat_no_warning:QTDIR_build:warning(***USE of COMPAT inside of QTDIR!**) #just for us INCLUDEPATH *= $$QMAKE_INCDIR_QT/Qt -- cgit v1.2.3 From 82bf3bd7757b6c5a6bfe2c6e7cdceb8701268a27 Mon Sep 17 00:00:00 2001 From: Marius Storm-Olsen Date: Thu, 6 Jan 2011 12:52:17 -0600 Subject: Make each module refer to its own bin/ Since modules cannot rely on QtCore having a build directory, nor can they build the applications directly into $$[QT_INSTALL_BINS] each module needs their own bin/. Add this path to each module's pri file, so others can use their applications --- mkspecs/features/qt_config.prf | 1 + mkspecs/features/qt_functions.prf | 9 ++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_config.prf b/mkspecs/features/qt_config.prf index 2973c7e414..7e80ad38e8 100644 --- a/mkspecs/features/qt_config.prf +++ b/mkspecs/features/qt_config.prf @@ -20,6 +20,7 @@ isEmpty(QMAKE_QT_CONFIG)|!exists($$QMAKE_QT_CONFIG) { # qt_.pri forwarding file QT_MODULE_INCLUDE_BASE = $$[QT_INSTALL_HEADERS] QT_MODULE_LIB_BASE = $$[QT_INSTALL_LIBS] + QT_MODULE_BIN_BASE = $$[QT_INSTALL_BINS] include($$mod) } } diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf index b9b0fd839b..df4508d85c 100644 --- a/mkspecs/features/qt_functions.prf +++ b/mkspecs/features/qt_functions.prf @@ -157,10 +157,13 @@ defineTest(qtAddModule) { # variable, default defineTest(qtPrepareTool) { - isEmpty($$1) { - !isEmpty(QT_BUILD_TREE):$$1 = $$QT_BUILD_TREE/bin/$$2 - else:$$1 = $$[QT_INSTALL_BINS]/$$2 + MODBASE = $$[QT_INSTALL_BINS] + !isEmpty(QT_BUILD_TREE):MODBASE = $$QT_BUILD_TREE/bin + count(ARGS, 2, greaterThan) { + isEmpty(QT.$${3}.bins):warning("No QT.$${3}.bins, module path ignored for qtPrepareTool($$1, $$2, $$3)") + else:MODBASE = $$eval(QT.$${3}.bins) } + isEmpty($$1):$$1 = $$MODBASE/$$2 $$1 ~= s,[/\\\\],$$QMAKE_DIR_SEP, contains(QMAKE_HOST.os, Windows):!contains($$1, .*\\.(exe|bat)$) { exists($$eval($$1).bat) { -- cgit v1.2.3 From 56ec511c6aecca9d9f7d3587ac5dfc662c891d84 Mon Sep 17 00:00:00 2001 From: Marius Storm-Olsen Date: Fri, 14 Jan 2011 21:35:58 -0600 Subject: Add QMAKESPEC_ORIGINAL to the INCLUDEPATH when needed --- mkspecs/features/qt.prf | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'mkspecs') diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf index 419bb920f0..21fdd38e70 100644 --- a/mkspecs/features/qt.prf +++ b/mkspecs/features/qt.prf @@ -11,6 +11,11 @@ win32 { } contains(DEFINES, QT_MAKEDLL)|contains(DEFINES, QT_DLL):QMAKE_QT_DLL = 1 } + # Some files include qplatformdefs.h, which lives in the individual mkspec directory + # However, if QMAKESPEC_ORIGINAL is set, the module/app is outside of the QtBase + # directory, and using the default profile. So we add the original mkspecs directory + # to the include path + !isEmpty(QMAKESPEC_ORIGINAL):INCLUDEPATH += $$QMAKESPEC_ORIGINAL } CONFIG(release, debug|release):DEFINES += QT_NO_DEBUG no_keywords:DEFINES += QT_NO_KEYWORDS -- cgit v1.2.3 From a93039b229344341d6faa3ecd6d35ee8aec381fc Mon Sep 17 00:00:00 2001 From: axis Date: Mon, 24 Jan 2011 10:14:42 +0100 Subject: Fixed a bug in libdir handling. We need to use QMAKE_LIBDIR instead of QMAKE_LFLAGS and -L, because MSVC does not understand -L. --- mkspecs/features/qt_functions.prf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf index df4508d85c..c44419c4f2 100644 --- a/mkspecs/features/qt_functions.prf +++ b/mkspecs/features/qt_functions.prf @@ -131,7 +131,7 @@ defineTest(qtAddModule) { isEmpty(LINKAGE) { # Make sure we can link to uninstalled libraries !isEqual(MODULE_LIBS, $[QT_INSTALL_LIBS]) { - QMAKE_LFLAGS *= -L$$MODULE_LIBS + QMAKE_LIBDIR *= $$MODULE_LIBS unix:QMAKE_LFLAGS *= "-Wl,-rpath-link,$$MODULE_LIBS" } if(!debug_and_release|build_pass):CONFIG(debug, debug|release) { @@ -152,6 +152,7 @@ defineTest(qtAddModule) { export(INCLUDEPATH) export(QMAKE_FRAMEWORKPATH) export(QMAKE_LFLAGS) + export(QMAKE_LIBDIR) return(true) } -- cgit v1.2.3 From 346b3b0976d724b49ad426c16d68c3b7190ba2d9 Mon Sep 17 00:00:00 2001 From: axis Date: Mon, 24 Jan 2011 15:52:04 +0100 Subject: Fixed wrong inclusion of QtHelp module. --- mkspecs/features/help.prf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/help.prf b/mkspecs/features/help.prf index 15685e7a57..d8ba8c3537 100644 --- a/mkspecs/features/help.prf +++ b/mkspecs/features/help.prf @@ -1,4 +1,3 @@ -INCLUDEPATH = $$QMAKE_INCDIR_QT/QtHelp $$INCLUDEPATH QT += xml sql -qtAddLibrary(QtHelp) +qtAddModule(help) -- cgit v1.2.3 From 61126f4ae6fe9c5a664e79339de1483605a4074e Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Tue, 25 Jan 2011 10:08:15 +0100 Subject: Use the 'install_name' linker flag on Mac for the frameworks. This is required for the frameworks outside the qtbase module. --- mkspecs/features/qt_module.prf | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf index a263e285d6..a5a3fd1b54 100644 --- a/mkspecs/features/qt_module.prf +++ b/mkspecs/features/qt_module.prf @@ -14,3 +14,8 @@ isEmpty(QMAKE_QT_MODULE)|!exists($$QMAKE_QT_MODULE) { } else { debug(1, "Loaded qmodule.pri from ($$QMAKE_QT_MODULE)") } +mac { + !isEmpty(QMAKE_RPATHDIR){ + CONFIG += absolute_library_soname + } +} -- cgit v1.2.3 From b88c6fbcfe1108ae31c8773daeb51c9596e29a62 Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Tue, 25 Jan 2011 14:48:39 +0100 Subject: Use the MODULE_LIBS instead of QMAKE_LIBDIR_QT for frameworks. --- mkspecs/features/qt_functions.prf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf index c44419c4f2..b16c84864f 100644 --- a/mkspecs/features/qt_functions.prf +++ b/mkspecs/features/qt_functions.prf @@ -106,7 +106,7 @@ defineTest(qtAddModule) { unset(LINKAGE) mac { CONFIG(qt_framework, qt_framework|qt_no_framework) { #forced - QMAKE_FRAMEWORKPATH *= $${QMAKE_LIBDIR_QT} + QMAKE_FRAMEWORKPATH *= $${MODULE_LIBS} FRAMEWORK_INCLUDE = $$MODULE_INCLUDES.framework/Headers !qt_no_framework_direct_includes:exists($$FRAMEWORK_INCLUDE) { INCLUDEPATH -= $$FRAMEWORK_INCLUDE @@ -114,7 +114,7 @@ defineTest(qtAddModule) { } LINKAGE = -framework $${MODULE_NAME}$${QT_LIBINFIX} } else:!qt_no_framework { #detection - for(frmwrk_dir, $$list($$QMAKE_LIBDIR_QT $$QMAKE_LIBDIR $$(DYLD_FRAMEWORK_PATH) /Library/Frameworks)) { + for(frmwrk_dir, $$list($$MODULE_LIBS $$QMAKE_LIBDIR $$(DYLD_FRAMEWORK_PATH) /Library/Frameworks)) { exists($${frmwrk_dir}/$${MODULE_NAME}.framework) { QMAKE_FRAMEWORKPATH *= $${frmwrk_dir} FRAMEWORK_INCLUDE = $$frmwrk_dir/$${MODULE_NAME}.framework/Headers -- cgit v1.2.3 From 59db0a203dd7675d700dc5d772fb8bdb9dc1d0d5 Mon Sep 17 00:00:00 2001 From: axis Date: Thu, 27 Jan 2011 09:47:08 +0100 Subject: Changed path references to ActiveQt. --- mkspecs/features/win32/qaxcontainer.prf | 4 ++++ mkspecs/features/win32/qaxserver.prf | 3 +++ 2 files changed, 7 insertions(+) (limited to 'mkspecs') diff --git a/mkspecs/features/win32/qaxcontainer.prf b/mkspecs/features/win32/qaxcontainer.prf index 34c6dfed42..2d0ff851ba 100644 --- a/mkspecs/features/win32/qaxcontainer.prf +++ b/mkspecs/features/win32/qaxcontainer.prf @@ -8,6 +8,10 @@ LIBS += -lQAxContainer } +QMAKE_LIBDIR += $$QT.activeqt.libs +INCLUDEPATH += $$QT.activeqt.includes +QMAKE_LIBS += $$QMAKE_LIBS_GUI + qtPrepareTool(QMAKE_DUMPCPP, dumpcpp) dumpcpp_decl.commands = $$QMAKE_DUMPCPP ${QMAKE_FILE_IN} -o ${QMAKE_FILE_BASE} diff --git a/mkspecs/features/win32/qaxserver.prf b/mkspecs/features/win32/qaxserver.prf index a6c0869540..678c2ccb83 100644 --- a/mkspecs/features/win32/qaxserver.prf +++ b/mkspecs/features/win32/qaxserver.prf @@ -7,6 +7,7 @@ ACTIVEQT_VERSION = $$VERSION isEmpty(ACTIVEQT_VERSION):ACTIVEQT_VERSION = 1.0 DEFINES += QAXSERVER +INCLUDEPATH += $$QT.activeqt.includes contains(TEMPLATE, "vc.*") { ACTIVEQT_IDC = $${QMAKE_IDC} ### Qt5: remove me @@ -56,4 +57,6 @@ qt:!target_qt { QMAKE_LIBS_QT_ENTRY = -lQAxServer } dll:QMAKE_LIBS += $$QMAKE_LIBS_QT_ENTRY + QMAKE_LIBDIR += $$QT.activeqt.libs + QMAKE_LIBS += $$QMAKE_LIBS_GUI } -- cgit v1.2.3 From 8e4fc361a55c54fbaf5c813a5f3f344fd394bcaa Mon Sep 17 00:00:00 2001 From: axis Date: Fri, 28 Jan 2011 15:17:00 +0100 Subject: Made sure syncqt gets called correctly even if it is not in the PATH. --- mkspecs/features/default_pre.prf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'mkspecs') diff --git a/mkspecs/features/default_pre.prf b/mkspecs/features/default_pre.prf index b8779c8162..adcdbb73e9 100644 --- a/mkspecs/features/default_pre.prf +++ b/mkspecs/features/default_pre.prf @@ -25,7 +25,8 @@ exists($$_PRO_FILE_PWD_/sync.profile) { else:QTFWD="-qtdir $$QTDIR" message("Running syncqt for $$PRO_BASENAME in $$OUT_PWD") - system("$$QTDIR/bin/syncqt $$QTFWD -outdir $$OUT_PWD $$_PRO_FILE_PWD_") + qtPrepareTool(QMAKE_SYNCQT, syncqt) + system("$$QMAKE_SYNCQT $$QTFWD -outdir $$OUT_PWD $$_PRO_FILE_PWD_") unset(QTFWD) unset(PRO_BASENAME) } -- cgit v1.2.3 From 2a5e47832b1fff22787d2d58ae68171fa2324c7d Mon Sep 17 00:00:00 2001 From: Marius Storm-Olsen Date: Tue, 1 Feb 2011 14:38:28 -0600 Subject: Properly detect qmodule.pri --- mkspecs/features/qt_module.prf | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf index a5a3fd1b54..c49a41581f 100644 --- a/mkspecs/features/qt_module.prf +++ b/mkspecs/features/qt_module.prf @@ -3,10 +3,12 @@ # Consequently, we have to do some stunts to figure out where to find qmodule.pri. isEmpty(QMAKE_QT_MODULE)|!exists($$QMAKE_QT_MODULE) { - exists($$_QMAKE_CACHE_/mkspecs/qmodule.pri):QMAKE_QT_MODULE = $$_QMAKE_CACHE_/mkspecs/qmodule.pri - else:exists($$_QMAKE_CACHE_/qtbase/mkspecs/qmodule.pri):QMAKE_QT_MODULE = $$_QMAKE_CACHE_/qtbase/mkspecs/qmodule.pri - else:if(!isEmpty(QT_BUILD_TREE) & exists($$QT_BUILD_TREE/mkspecs/qmodule.pri)):QMAKE_QT_MODULE = $$QT_BUILD_TREE/mkspecs/qmodule.pri - else:exists($$[QT_INSTALL_DATA]/mkspecs/qmodule.pri):QMAKE_QT_MODULE = $$[QT_INSTALL_DATA]/mkspecs/qmodule.pri + exists($$QTDIR/mkspecs/qmodule.pri):QMAKE_QT_MODULE = $$QTDIR/mkspecs/qmodule.pri + QMAKE_CACHE_DIR = $$dirname(_QMAKE_CACHE_) + !exists($$QMAKE_QT_MODULE):exists($$QMAKE_CACHE_DIR/mkspecs/qmodule.pri):QMAKE_QT_MODULE = $$QMAKE_CACHE_DIR/mkspecs/qmodule.pri + !exists($$QMAKE_QT_MODULE):exists($$QMAKE_CACHE_DIR/qtbase/mkspecs/qmodule.pri):QMAKE_QT_MODULE = $$QMAKE_CACHE_DIR/qtbase/mkspecs/qmodule.pri + !exists($$QMAKE_QT_MODULE):if(!isEmpty(QT_BUILD_TREE) & exists($$QT_BUILD_TREE/mkspecs/qmodule.pri)):QMAKE_QT_MODULE = $$QT_BUILD_TREE/mkspecs/qmodule.pri + !exists($$QMAKE_QT_MODULE):exists($$[QT_INSTALL_DATA]/mkspecs/qmodule.pri):QMAKE_QT_MODULE = $$[QT_INSTALL_DATA]/mkspecs/qmodule.pri } !exists($$QMAKE_QT_MODULE)|!include($$QMAKE_QT_MODULE, "", true) { -- cgit v1.2.3 From afa1807c40ee6e72a13322c13c810e6becf7d94d Mon Sep 17 00:00:00 2001 From: axis Date: Thu, 17 Mar 2011 10:57:48 +0100 Subject: Added QT..imports support to module profiles. --- mkspecs/features/qt_config.prf | 1 + 1 file changed, 1 insertion(+) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_config.prf b/mkspecs/features/qt_config.prf index 7e80ad38e8..0be4dee4ca 100644 --- a/mkspecs/features/qt_config.prf +++ b/mkspecs/features/qt_config.prf @@ -21,6 +21,7 @@ isEmpty(QMAKE_QT_CONFIG)|!exists($$QMAKE_QT_CONFIG) { QT_MODULE_INCLUDE_BASE = $$[QT_INSTALL_HEADERS] QT_MODULE_LIB_BASE = $$[QT_INSTALL_LIBS] QT_MODULE_BIN_BASE = $$[QT_INSTALL_BINS] + QT_MODULE_IMPORT_BASE = $$[QT_INSTALL_IMPORTS] include($$mod) } } -- cgit v1.2.3 From 2e1af58417783bd37e13d6d1794ac845d1bc3c21 Mon Sep 17 00:00:00 2001 From: axis Date: Tue, 22 Mar 2011 13:20:53 +0100 Subject: Introduced the QT..plugins variable to module profiles. --- mkspecs/features/qt_config.prf | 1 + 1 file changed, 1 insertion(+) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_config.prf b/mkspecs/features/qt_config.prf index 0be4dee4ca..5afd82c84a 100644 --- a/mkspecs/features/qt_config.prf +++ b/mkspecs/features/qt_config.prf @@ -20,6 +20,7 @@ isEmpty(QMAKE_QT_CONFIG)|!exists($$QMAKE_QT_CONFIG) { # qt_.pri forwarding file QT_MODULE_INCLUDE_BASE = $$[QT_INSTALL_HEADERS] QT_MODULE_LIB_BASE = $$[QT_INSTALL_LIBS] + QT_MODULE_PLUGIN_BASE = $$[QT_INSTALL_PLUGINS] QT_MODULE_BIN_BASE = $$[QT_INSTALL_BINS] QT_MODULE_IMPORT_BASE = $$[QT_INSTALL_IMPORTS] include($$mod) -- cgit v1.2.3