1287361f64
This will allow us to expose private headers in a controlled manner, and ensure that they are not used by accident. This also means that we internally will have to enable the private headers for the modules we wish to use in the project.
227 lines
7.9 KiB
Plaintext
227 lines
7.9 KiB
Plaintext
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=$$ARCH #another compat that will rot for change #215700
|
|
TEMPLATE = lib
|
|
isEmpty(QT_MAJOR_VERSION) {
|
|
VERSION=4.8.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 = $$QMAKE_LIBDIR_QT
|
|
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
|
|
include(qt_install.pri)
|
|
|
|
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_FAST_OPERATOR_PLUS QT_USE_FAST_CONCATENATION
|
|
|
|
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
|
|
|
|
include(qt_targets.pri)
|
|
|
|
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
|
|
}
|
|
}
|