summaryrefslogtreecommitdiffstats
path: root/mkspecs/features
diff options
context:
space:
mode:
authoraxis <qt-info@nokia.com>2011-05-18 15:30:27 +0200
committerQt Continuous Integration System <qt-info@nokia.com>2011-06-05 14:47:14 +0200
commit1835afe6217c562a61c37676119c0d1f081a9828 (patch)
tree5dbe66d2477638e443f5cec8f6fba7fd28a49492 /mkspecs/features
parentc25495dba7eff32b66119737552905787e97e665 (diff)
Moved common module profiles to be feature profiles.
This enables external modules to also make use of them without having access to the complete QtBase source code. Change-Id: I056e45cba6c6798b76670b8d238dadb2d9f9c092 Task: QTBUG-19585 Reviewed-on: http://codereview.qt.nokia.com/234 Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
Diffstat (limited to 'mkspecs/features')
-rw-r--r--mkspecs/features/qt_installs.prf44
-rw-r--r--mkspecs/features/qt_module_config.prf226
-rw-r--r--mkspecs/features/qt_targets.prf4
3 files changed, 274 insertions, 0 deletions
diff --git a/mkspecs/features/qt_installs.prf b/mkspecs/features/qt_installs.prf
new file mode 100644
index 0000000000..5a9ab4ba0a
--- /dev/null
+++ b/mkspecs/features/qt_installs.prf
@@ -0,0 +1,44 @@
+#always install the library
+win32 {
+ dlltarget.path=$$[QT_INSTALL_BINS]
+ INSTALLS += dlltarget
+}
+target.path=$$[QT_INSTALL_LIBS]
+INSTALLS += target
+
+#headers
+qt_install_headers {
+ INSTALL_HEADERS = $$SYNCQT.HEADER_FILES
+ equals(TARGET, QtCore) {
+ #headers created by configure
+ INSTALL_HEADERS *= $$QT_BUILD_TREE/src/corelib/global/qconfig.h \
+ $$QT_SOURCE_TREE/src/corelib/arch/$$QT_ARCH/arch
+ }
+
+ equals(TARGET, phonon) {
+ class_headers.path = $$[QT_INSTALL_HEADERS]/$$TARGET
+ } else {
+ flat_headers.files = $$INSTALL_HEADERS
+ flat_headers.path = $$[QT_INSTALL_HEADERS]/Qt
+ INSTALLS += flat_headers
+
+ class_headers.path = $$[QT_INSTALL_HEADERS]/$$TARGET
+ }
+ class_headers.files = $$SYNCQT.HEADER_CLASSES
+ INSTALLS += class_headers
+
+ targ_headers.files = $$INSTALL_HEADERS
+ targ_headers.path = $$[QT_INSTALL_HEADERS]/$$TARGET
+ INSTALLS += targ_headers
+
+ private_headers.files = $$SYNCQT.PRIVATE_HEADER_FILES
+ private_headers.path = $$[QT_INSTALL_HEADERS]/$$TARGET/$$eval(QT.$${MODULE}.VERSION)/$$TARGET/private
+ INSTALLS += private_headers
+}
+
+embedded|qpa: equals(TARGET, QtGui) {
+ # install fonts for embedded
+ INSTALLS += fonts
+ fonts.path = $$[QT_INSTALL_LIBS]/fonts
+ fonts.files = $$QT_SOURCE_TREE/lib/fonts/*
+}
diff --git a/mkspecs/features/qt_module_config.prf b/mkspecs/features/qt_module_config.prf
new file mode 100644
index 0000000000..024b4fbce0
--- /dev/null
+++ b/mkspecs/features/qt_module_config.prf
@@ -0,0 +1,226 @@
+load(qt_module)
+
+isEmpty(MODULE):MODULE = $$section($$list($$basename(_PRO_FILE_)), ., 0, 0)
+isEmpty(TARGET):error("You must set TARGET before include()'ing $${_FILE_}")
+
+MODULE_INCLUDES = $$eval(QT.$${MODULE}.includes)
+MODULE_PRIVATE_INCLUDES = $$eval(QT.$${MODULE}.private_includes)
+INCLUDEPATH *= $$MODULE_PRIVATE_INCLUDES
+INCLUDEPATH *= $$MODULE_PRIVATE_INCLUDES/$$TARGET
+INCLUDEPATH *= $$MODULE_INCLUDES $$MODULE_INCLUDES/.. #just for today to have some compat
+!isEmpty(RCC_DIR): INCLUDEPATH += $$RCC_DIR
+isEmpty(QT_ARCH):!isEmpty(ARCH):QT_ARCH=$$ARCHa #another compat that will rot for change #215700
+TEMPLATE = lib
+isEmpty(QT_MAJOR_VERSION) {
+ VERSION=5.0.0
+} else {
+ VERSION=$${QT_MAJOR_VERSION}.$${QT_MINOR_VERSION}.$${QT_PATCH_VERSION}
+}
+
+#load up the headers info
+CONFIG += qt_install_headers
+#headers.pri is loaded from the last include path
+LAST_MODULE_INCLUDE=$$MODULE_INCLUDES
+for(include_path, MODULE_INCLUDES):LAST_MODULE_INCLUDE=$${include_path}
+HEADERS_PRI = $$LAST_MODULE_INCLUDE/headers.pri
+include($$HEADERS_PRI, "", true)|clear(HEADERS_PRI)
+
+#version overriding
+win32 {
+ #because libnetwork.pro could be qmake'd (qmade?) before libqcore.pro we
+ #need to override the version of libq* in all other libq*'s just to be
+ #sure the same version is used
+ VERSIONS_LIST = $$split(VERSION, ".")
+ QT_LIBS_OVERRIDE = $$member(VERSIONS_LIST, 0)
+ for(lib, $$list(qtcore qtgui qtnetwork qtxml qtopengl qtsql qt3support)) {
+ eval(QMAKE_$${upper($$lib)}_VERSION_OVERRIDE = $$QT_LIBS_OVERRIDE)
+ eval(QMAKE_$${upper($$lib)}D_VERSION_OVERRIDE = $$QT_LIBS_OVERRIDE)
+ }
+}
+
+#other
+DESTDIR = $$eval(QT.$${MODULE}.libs)
+win32:!wince*:DLLDESTDIR = $$[QT_INSTALL_PREFIX]/bin
+
+CONFIG += qt warn_on depend_includepath
+CONFIG += qmake_cache target_qt
+CONFIG -= fix_output_dirs
+win32|mac:!macx-xcode:CONFIG += debug_and_release
+linux*:QMAKE_LFLAGS += $$QMAKE_LFLAGS_NOUNDEF
+
+contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols
+unix:contains(QT_CONFIG, reduce_relocations):CONFIG += bsymbolic_functions
+contains(QT_CONFIG, largefile):CONFIG += largefile
+
+#mac frameworks
+mac:!static:contains(QT_CONFIG, qt_framework) {
+ #QMAKE_FRAMEWORK_VERSION = 4.0
+ CONFIG += lib_bundle qt_no_framework_direct_includes qt_framework
+ CONFIG(debug, debug|release) {
+ !build_pass:CONFIG += build_all
+ } else { #release
+ !debug_and_release|build_pass {
+ CONFIG -= qt_install_headers #no need to install these as well
+ FRAMEWORK_HEADERS.version = Versions
+ FRAMEWORK_HEADERS.files = $$SYNCQT.HEADER_FILES $$SYNCQT.HEADER_CLASSES
+ FRAMEWORK_HEADERS.path = Headers
+ equals(TARGET, QtCore) {
+ #headers generated by configure
+ !contains(FRAMEWORK_HEADERS.files, .*/qconfig.h) {
+ FRAMEWORK_HEADERS.files *= $$QT_BUILD_TREE/src/corelib/global/qconfig.h
+ }
+ }
+ }
+ QMAKE_BUNDLE_DATA += FRAMEWORK_HEADERS
+ }
+}
+
+mac {
+ CONFIG += explicitlib
+ macx-g++ {
+ QMAKE_CFLAGS += -fconstant-cfstrings
+ QMAKE_CXXFLAGS += -fconstant-cfstrings
+ }
+}
+
+win32:!shared:CONFIG += static
+
+win32-borland {
+ mng:QMAKE_CFLAGS_WARN_ON += -w-par
+ mng:QMAKE_CXXFLAGS_WARN_ON += -w-par
+ # Keep the size of the .tds file for the Qt library smaller than
+ # 34 Mbytes to avoid linking problems
+ QMAKE_CFLAGS_DEBUG += -vi -y-
+ QMAKE_CXXFLAGS_DEBUG += -vi -y-
+}
+
+win32 {
+ INCLUDEPATH += tmp
+ !static: DEFINES+=QT_MAKEDLL
+}
+symbian {
+ shared {
+ DEFINES+=QT_MAKEDLL
+ TARGET.CAPABILITY = All -Tcb
+
+ # When building without autotests, DEF files are used by default.
+ # This is to maintain binary compatibility with previous releases.
+ # To explicitly disable DEF files usage, eg. when lots of code churn is
+ # going on, and functions may be added and removed before shipping,
+ # configure with -no-usedeffiles
+ # WARNING - disabling DEF files *will* break BC with previous released versions
+ # of Qt, and the only compatibility will be between this build of Qt and anything
+ # built in this exact environment. *Never* use this when building a version
+ # for release.
+ contains(CONFIG, def_files) {
+ DEF_FILE=../s60installs
+ }
+ }
+ load(armcc_warnings)
+
+ # workaround for the fact that some of our required includes in Symbian^3
+ # now depend upon files in epoc32/include/platform
+ INCLUDEPATH += $$OS_LAYER_SYSTEMINCLUDE
+}
+win32-borland:INCLUDEPATH += kernel
+
+aix-g++* {
+ QMAKE_CFLAGS += -mminimal-toc
+ QMAKE_CXXFLAGS += -mminimal-toc
+}
+
+embedded {
+ EMBEDDED_H = $$EMBEDDED_CPP
+}
+
+DEPENDPATH += ;$$NETWORK_H;$$KERNEL_H;$$WIDGETS_H;$$SQL_H;$$TABLE_H;$$DIALOGS_H;
+DEPENDPATH += $$ICONVIEW_H;$$OPENGL_H;$$THREAD_H;$$TOOLS_H;$$CODECS_H;
+DEPENDPATH += $$WORKSPACE_H;$$XML_H;$$STYLES_H;$$COMPAT_H
+embedded:DEPENDPATH += ;$$EMBEDDED_H
+
+!static:PRL_EXPORT_DEFINES += QT_SHARED
+
+#install directives
+load(qt_installs)
+
+unix:!symbian {
+ CONFIG += create_libtool create_pc explicitlib
+ QMAKE_LIBTOOL_LIBDIR = $$[QT_INSTALL_LIBS]
+ QMAKE_PRL_LIBDIR = $$[QT_INSTALL_LIBS]
+ QMAKE_PKGCONFIG_LIBDIR = $$[QT_INSTALL_LIBS]
+ QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_HEADERS]/$$TARGET
+ QMAKE_PKGCONFIG_CFLAGS = -I$$[QT_INSTALL_HEADERS]
+ QMAKE_PKGCONFIG_DESTDIR = pkgconfig
+ include_replace.match = $$QMAKE_INCDIR_QT
+ include_replace.replace = $$[QT_INSTALL_HEADERS]
+ lib_replace.match = $$QMAKE_LIBDIR_QT
+ lib_replace.replace = $$[QT_INSTALL_LIBS]
+ prefix_replace.match = $$QT_BUILD_TREE
+ prefix_replace.replace = $$[QT_INSTALL_PREFIX]
+ QMAKE_PRL_INSTALL_REPLACE += include_replace lib_replace
+ QMAKE_LIBTOOL_INSTALL_REPLACE += include_replace lib_replace
+ QMAKE_PKGCONFIG_INSTALL_REPLACE += include_replace lib_replace prefix_replace
+}
+
+win32-g++* {
+ CONFIG += create_pc
+ QMAKE_PKGCONFIG_LIBDIR = $$[QT_INSTALL_LIBS]
+ QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_HEADERS]/$$TARGET
+ QMAKE_PKGCONFIG_CFLAGS = -I$$[QT_INSTALL_HEADERS]
+ QMAKE_PKGCONFIG_DESTDIR = pkgconfig
+}
+
+contains(QT_PRODUCT, OpenSource.*):DEFINES *= QT_OPENSOURCE
+DEFINES *= QT_NO_CAST_TO_ASCII QT_ASCII_CAST_WARNINGS
+contains(QT_CONFIG, gui-qt3support):DEFINES *= QT3_SUPPORT
+DEFINES *= QT_MOC_COMPAT #we don't need warnings from calling moc code in our generated code
+DEFINES *= QT_USE_QSTRINGBUILDER
+
+TARGET = $$qtLibraryTarget($$TARGET$$QT_LIBINFIX) #do this towards the end
+
+qtPrepareTool(QMAKE_LUPDATE, lupdate)
+qtPrepareTool(QMAKE_LRELEASE, lrelease)
+
+moc_dir.name = moc_location
+moc_dir.variable = QMAKE_MOC
+
+uic_dir.name = uic_location
+uic_dir.variable = QMAKE_UIC
+
+rcc_dir.name = rcc_location
+rcc_dir.variable = QMAKE_RCC
+
+lupdate_dir.name = lupdate_location
+lupdate_dir.variable = QMAKE_LUPDATE
+
+lrelease_dir.name = lrelease_location
+lrelease_dir.variable = QMAKE_LRELEASE
+
+QMAKE_PKGCONFIG_VARIABLES += moc_dir uic_dir rcc_dir lupdate_dir lrelease_dir
+
+load(qt_targets)
+
+win32:DEFINES+=_USE_MATH_DEFINES
+
+symbian {
+ # Make partial upgrade SIS file for all dll's except webkit and s60main
+ !contains(TARGET.UID3, 0x200267C2):!contains(TARGET.UID3, 0xE00267C2):!contains(TARGET.UID3, 0x2001E61F):!contains(TARGET.UID3, 0xE001E61F) {
+ # Partial upgrade SIS file
+ vendorinfo = \
+ "; Localised Vendor name" \
+ "%{\"Nokia\"}" \
+ " " \
+ "; Unique Vendor name" \
+ ":\"Nokia, Qt\"" \
+ " "
+ isEmpty(QT_LIBINFIX): PARTIAL_UPGRADE_UID = 0x2001E61C
+ else: PARTIAL_UPGRADE_UID = 0xE001E61C
+
+ pu_header = "; Partial upgrade package for testing $${TARGET} changes without reinstalling everything" \
+ "$${LITERAL_HASH}{\"$${TARGET}\"}, ($$PARTIAL_UPGRADE_UID), $${QT_MAJOR_VERSION},$${QT_MINOR_VERSION},$${QT_PATCH_VERSION}, TYPE=PU"
+ partial_upgrade.pkg_prerules = pu_header vendorinfo
+ partial_upgrade.files = $$QMAKE_LIBDIR_QT/$${TARGET}.dll
+ partial_upgrade.path = c:/sys/bin
+ DEPLOYMENT += partial_upgrade
+ }
+}
diff --git a/mkspecs/features/qt_targets.prf b/mkspecs/features/qt_targets.prf
new file mode 100644
index 0000000000..af1a32bb02
--- /dev/null
+++ b/mkspecs/features/qt_targets.prf
@@ -0,0 +1,4 @@
+QMAKE_TARGET_COMPANY = Nokia Corporation and/or its subsidiary(-ies)
+QMAKE_TARGET_PRODUCT = Qt4
+QMAKE_TARGET_DESCRIPTION = C++ application development framework.
+QMAKE_TARGET_COPYRIGHT = Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).