| 1 |
# config.pri specifies the configure options and is pulled in via staticconfig.pri |
| 2 |
include(staticconfig.pri) |
| 3 |
!include($$QT_MOBILITY_BUILD_TREE/config.pri) { |
| 4 |
error("Please run configure script"); |
| 5 |
#also fails if .qmake.cache was not generated which may |
| 6 |
#happen if we are trying to shadow build w/o running configure |
| 7 |
} |
| 8 |
|
| 9 |
#don't build QtMobility if chosen config mismatches Qt's config |
| 10 |
win32:!contains(CONFIG_WIN32,build_all) { |
| 11 |
contains(QT_CONFIG,debug):!contains(QT_CONFIG,release):contains(CONFIG_WIN32,release) { |
| 12 |
# Qt only build in debug mode |
| 13 |
error(QtMobility cannot be build in release mode if Qt is build in debug mode only) |
| 14 |
} |
| 15 |
!contains(QT_CONFIG,debug):contains(QT_CONFIG,release):contains(CONFIG_WIN32,debug) { |
| 16 |
# Qt only build in release mode |
| 17 |
error(QtMobility cannot be build in debug mode if Qt is build in release mode only) |
| 18 |
} |
| 19 |
} |
| 20 |
|
| 21 |
lessThan(QT_MAJOR_VERSION, 4) { |
| 22 |
error(Qt Mobility requires Qt 4.6 or higher. Qt $${QT_VERSION} was found.); |
| 23 |
} |
| 24 |
|
| 25 |
contains(QT_MAJOR_VERSION, 4):lessThan(QT_MINOR_VERSION, 6) { |
| 26 |
error(Qt Mobility requires Qt 4.6 or higher. Qt $${QT_VERSION} was found.); |
| 27 |
} |
| 28 |
|
| 29 |
|
| 30 |
# MCL builds for Symbian do not run configure and require some manual setup steps. |
| 31 |
# This test permits SD builds to skip installation of mobility.prf from within qmake. |
| 32 |
# It is installed in a separate step. MCL builds for SD must set the |
| 33 |
# MOBILITY_SD_MCL_BUILD flag to yes. |
| 34 |
!contains(MOBILITY_SD_MCL_BUILD, yes) { |
| 35 |
#generate prf file for Qt integration |
| 36 |
PRF_OUTPUT=$${QT_MOBILITY_BUILD_TREE}/features/mobility.prf |
| 37 |
|
| 38 |
system(echo MOBILITY_PREFIX=$${QT_MOBILITY_PREFIX} > $$PRF_OUTPUT) |
| 39 |
system(echo MOBILITY_INCLUDE=$${QT_MOBILITY_INCLUDE} >> $$PRF_OUTPUT) |
| 40 |
system(echo MOBILITY_LIB=$${QT_MOBILITY_LIB} >> $$PRF_OUTPUT) |
| 41 |
|
| 42 |
sourcePath = $${QT_MOBILITY_SOURCE_TREE}/features/mobility.prf.template |
| 43 |
contains(QMAKE_HOST.os,Windows) { |
| 44 |
sourcePath=$$replace(sourcePath,/,\\) |
| 45 |
system(type $${sourcePath} >> $$PRF_OUTPUT) |
| 46 |
} else { |
| 47 |
system(cat $${sourcePath} >> $$PRF_OUTPUT) |
| 48 |
} |
| 49 |
|
| 50 |
symbian:contains(nfc_symbian_enabled,yes) { |
| 51 |
contains(QMAKE_HOST.os,Windows) { |
| 52 |
system(echo $$LITERAL_HASH Connectivity depends on service framework on Symbian >> $$PRF_OUTPUT) |
| 53 |
system(echo contains(MOBILITY, connectivity):MOBILITY += serviceframework >> $$PRF_OUTPUT) |
| 54 |
} else { |
| 55 |
system(echo \\$$LITERAL_HASH Connectivity depends on service framework on Symbian >> $$PRF_OUTPUT) |
| 56 |
system(echo contains\\(MOBILITY, connectivity\\):MOBILITY += serviceframework >> $$PRF_OUTPUT) |
| 57 |
} |
| 58 |
} |
| 59 |
|
| 60 |
# Remember to update staticconfig.pri binary version statement |
| 61 |
# and pregenerated files under src/s60installs for Symbian RnD release |
| 62 |
PRF_CONFIG=$${QT_MOBILITY_BUILD_TREE}/features/mobilityconfig.prf |
| 63 |
system(echo MOBILITY_CONFIG=$${mobility_modules} > $$PRF_CONFIG) |
| 64 |
system(echo MOBILITY_VERSION = 1.2.2 >> $$PRF_CONFIG) |
| 65 |
system(echo MOBILITY_MAJOR_VERSION = 1 >> $$PRF_CONFIG) |
| 66 |
system(echo MOBILITY_MINOR_VERSION = 2 >> $$PRF_CONFIG) |
| 67 |
system(echo MOBILITY_PATCH_VERSION = 2 >> $$PRF_CONFIG) |
| 68 |
|
| 69 |
#symbian does not generate make install rule. we have to copy prf manually |
| 70 |
symbian { |
| 71 |
sourcePath=$$QT_MOBILITY_BUILD_TREE/features/ |
| 72 |
destPath=$$[QT_INSTALL_DATA]/mkspecs/features |
| 73 |
|
| 74 |
contains(QMAKE_HOST.os,Windows) { |
| 75 |
sourcePath=$$replace(sourcePath,/,\\) |
| 76 |
destPath=$$replace(destPath,/,\\) |
| 77 |
} |
| 78 |
|
| 79 |
system($$QMAKE_COPY "$${sourcePath}mobility.prf" "$$destPath") |
| 80 |
system($$QMAKE_COPY "$${sourcePath}mobilityconfig.prf" "$$destPath") |
| 81 |
} |
| 82 |
|
| 83 |
# install config file |
| 84 |
config.path = $$[QT_INSTALL_DATA]/mkspecs/features |
| 85 |
config.files = $$QT_MOBILITY_BUILD_TREE/features/mobilityconfig.prf |
| 86 |
|
| 87 |
# install feature file |
| 88 |
feature.path = $$[QT_INSTALL_DATA]/mkspecs/features |
| 89 |
feature.files = $$QT_MOBILITY_BUILD_TREE/features/mobility.prf |
| 90 |
INSTALLS += feature config |
| 91 |
} |
| 92 |
|
| 93 |
TEMPLATE = subdirs |
| 94 |
CONFIG+=ordered |
| 95 |
|
| 96 |
SUBDIRS += src |
| 97 |
|
| 98 |
contains(build_tools, yes) { |
| 99 |
SUBDIRS += tools |
| 100 |
} |
| 101 |
|
| 102 |
SUBDIRS += plugins |
| 103 |
|
| 104 |
#built documentation snippets, if enabled |
| 105 |
contains(build_docs, yes) { |
| 106 |
SUBDIRS += doc |
| 107 |
include(doc/doc.pri) |
| 108 |
|
| 109 |
OTHER_FILES += \ |
| 110 |
doc/src/*.qdoc \ |
| 111 |
doc/src/legal/*.qdoc \ |
| 112 |
doc/src/examples/*.qdoc \ |
| 113 |
doc/src/plugins/*.qdoc |
| 114 |
} |
| 115 |
|
| 116 |
contains(build_unit_tests, yes):SUBDIRS+=tests |
| 117 |
contains(build_examples, yes):SUBDIRS+=examples |
| 118 |
contains(build_demos, yes):SUBDIRS+=demos |
| 119 |
|
| 120 |
#updating and deployment of translations requires Qt 4.6.3/qtPrepareTool |
| 121 |
!symbian:defined(qtPrepareTool):SUBDIRS += translations |
| 122 |
|
| 123 |
# install Qt style headers |
| 124 |
|
| 125 |
!symbian { |
| 126 |
qtmheadersglobal.path = $${QT_MOBILITY_INCLUDE}/QtMobility |
| 127 |
qtmheadersglobal.files = $${QT_MOBILITY_BUILD_TREE}/include/QtMobility/* |
| 128 |
INSTALLS += qtmheadersglobal |
| 129 |
|
| 130 |
contains(mobility_modules,bearer) { |
| 131 |
qtmheadersbearer.path = $${QT_MOBILITY_INCLUDE}/QtBearer |
| 132 |
qtmheadersbearer.files = $${QT_MOBILITY_BUILD_TREE}/include/QtBearer/* |
| 133 |
INSTALLS += qtmheadersbearer |
| 134 |
} |
| 135 |
|
| 136 |
contains(mobility_modules,contacts) { |
| 137 |
qtmheaderscontacts.path = $${QT_MOBILITY_INCLUDE}/QtContacts |
| 138 |
qtmheaderscontacts.files = $${QT_MOBILITY_BUILD_TREE}/include/QtContacts/* |
| 139 |
INSTALLS += qtmheaderscontacts |
| 140 |
} |
| 141 |
|
| 142 |
contains(mobility_modules,location) { |
| 143 |
qtmheaderslocation.path = $${QT_MOBILITY_INCLUDE}/QtLocation |
| 144 |
qtmheaderslocation.files = $${QT_MOBILITY_BUILD_TREE}/include/QtLocation/* |
| 145 |
INSTALLS += qtmheaderslocation |
| 146 |
} |
| 147 |
|
| 148 |
contains(qmf_enabled, yes)|wince*|win32|maemo5 { |
| 149 |
contains(mobility_modules,messaging) { |
| 150 |
qtmheadersmessaging.path = $${QT_MOBILITY_INCLUDE}/QtMessaging |
| 151 |
qtmheadersmessaging.files = $${QT_MOBILITY_BUILD_TREE}/include/QtMessaging/* |
| 152 |
INSTALLS += qtmheadersmessaging |
| 153 |
} |
| 154 |
} |
| 155 |
|
| 156 |
contains(mobility_modules,multimedia) { |
| 157 |
qtmheadersmultimedia.path = $${QT_MOBILITY_INCLUDE}/QtMultimediaKit |
| 158 |
qtmheadersmultimedia.files = $${QT_MOBILITY_BUILD_TREE}/include/QtMultimediaKit/* |
| 159 |
INSTALLS += qtmheadersmultimedia |
| 160 |
} |
| 161 |
|
| 162 |
contains(mobility_modules,publishsubscribe) { |
| 163 |
qtmheaderspubsub.path = $${QT_MOBILITY_INCLUDE}/QtPublishSubscribe |
| 164 |
qtmheaderspubsub.files = $${QT_MOBILITY_BUILD_TREE}/include/QtPublishSubscribe/* |
| 165 |
INSTALLS += qtmheaderspubsub |
| 166 |
} |
| 167 |
|
| 168 |
contains(mobility_modules,serviceframework) { |
| 169 |
qtmheaderssfw.path = $${QT_MOBILITY_INCLUDE}/QtServiceFramework |
| 170 |
qtmheaderssfw.files = $${QT_MOBILITY_BUILD_TREE}/include/QtServiceFramework/* |
| 171 |
INSTALLS += qtmheaderssfw |
| 172 |
} |
| 173 |
|
| 174 |
contains(mobility_modules,versit) { |
| 175 |
qtmheadersversit.path = $${QT_MOBILITY_INCLUDE}/QtVersit |
| 176 |
qtmheadersversit.files = $${QT_MOBILITY_BUILD_TREE}/include/QtVersit/* |
| 177 |
INSTALLS += qtmheadersversit |
| 178 |
|
| 179 |
contains(mobility_modules,organizer) { |
| 180 |
qtmheadersversitorg.path = $${QT_MOBILITY_INCLUDE}/QtVersitOrganizer |
| 181 |
qtmheadersversitorg.files = $${QT_MOBILITY_BUILD_TREE}/include/QtVersitOrganizer/* |
| 182 |
INSTALLS += qtmheadersversitorg |
| 183 |
} |
| 184 |
} |
| 185 |
|
| 186 |
contains(mobility_modules,systeminfo) { |
| 187 |
qtmheaderssysteminfo.path = $${QT_MOBILITY_INCLUDE}/QtSystemInfo |
| 188 |
qtmheaderssysteminfo.files = $${QT_MOBILITY_BUILD_TREE}/include/QtSystemInfo/* |
| 189 |
INSTALLS += qtmheaderssysteminfo |
| 190 |
} |
| 191 |
|
| 192 |
contains(mobility_modules,sensors) { |
| 193 |
qtmheaderssensors.path = $${QT_MOBILITY_INCLUDE}/QtSensors |
| 194 |
qtmheaderssensors.files = $${QT_MOBILITY_BUILD_TREE}/include/QtSensors/* |
| 195 |
INSTALLS += qtmheaderssensors |
| 196 |
} |
| 197 |
|
| 198 |
contains(mobility_modules,organizer) { |
| 199 |
qtmheadersorganizer.path = $${QT_MOBILITY_INCLUDE}/QtOrganizer |
| 200 |
qtmheadersorganizer.files = $${QT_MOBILITY_BUILD_TREE}/include/QtOrganizer/* |
| 201 |
INSTALLS += qtmheadersorganizer |
| 202 |
} |
| 203 |
|
| 204 |
contains(mobility_modules,feedback) { |
| 205 |
qtmheadersfeedback.path = $${QT_MOBILITY_INCLUDE}/QtFeedback |
| 206 |
qtmheadersfeedback.files = $${QT_MOBILITY_BUILD_TREE}/include/QtFeedback/* |
| 207 |
INSTALLS += qtmheadersfeedback |
| 208 |
} |
| 209 |
|
| 210 |
contains(mobility_modules,gallery) { |
| 211 |
qtmheadersgallery.path = $${QT_MOBILITY_INCLUDE}/QtGallery |
| 212 |
qtmheadersgallery.files = $${QT_MOBILITY_BUILD_TREE}/include/QtGallery/* |
| 213 |
INSTALLS += qtmheadersgallery |
| 214 |
} |
| 215 |
|
| 216 |
contains(mobility_modules,connectivity) { |
| 217 |
qtmheaderconnectivity.path = $${QT_MOBILITY_INCLUDE}/QtConnectivity |
| 218 |
qtmheaderconnectivity.files = $${QT_MOBILITY_BUILD_TREE}/include/QtConnectivity/* |
| 219 |
INSTALLS += qtmheaderconnectivity |
| 220 |
} |
| 221 |
} else { |
| 222 |
# following needs to be set because symbian-abld or symbian-sbsv2 is not yet |
| 223 |
# defined in platform_paths.prf and the prj_export gets confused about paths. |
| 224 |
epocroot_prefix = / |
| 225 |
#absolute path does not work and |
| 226 |
#include <QtMyLibrary/class.h> style does not work either |
| 227 |
qtmGlobalHeaders = include/QtMobility/* |
| 228 |
for(api, qtmGlobalHeaders) { |
| 229 |
INCLUDEFILES=$$files($$api); |
| 230 |
#files() attaches a ';' at the end which we need to remove |
| 231 |
cleanedFiles=$$replace(INCLUDEFILES, ;,) |
| 232 |
for(header, cleanedFiles) { |
| 233 |
exists($$header): |
| 234 |
BLD_INF_RULES.prj_exports += "$$header $$MW_LAYER_PUBLIC_EXPORT_PATH($$basename(header))" |
| 235 |
} |
| 236 |
} |
| 237 |
|
| 238 |
|
| 239 |
qtmAppHeaders = include/QtContacts/* \ |
| 240 |
include/QtVersit/* \ |
| 241 |
include/QtVersitOrganizer/* \ |
| 242 |
include/QtOrganizer/* |
| 243 |
|
| 244 |
qtmMwHeaders = include/QtBearer/* \ |
| 245 |
include/QtLocation/* \ |
| 246 |
include/QtMessaging/* \ |
| 247 |
include/QtMultimediaKit/* \ |
| 248 |
include/QtPublishSubscribe/* \ |
| 249 |
include/QtServiceFramework/* \ |
| 250 |
include/QtSystemInfo/* \ |
| 251 |
include/QtSensors/* \ |
| 252 |
include/QtFeedback/* \ |
| 253 |
include/QtGallery/* \ |
| 254 |
include/QtConnectivity/* |
| 255 |
|
| 256 |
contains(mobility_modules,contacts|versit|organizer) { |
| 257 |
for(api, qtmAppHeaders) { |
| 258 |
INCLUDEFILES=$$files($$api); |
| 259 |
|
| 260 |
#files() attaches a ';' at the end which we need to remove |
| 261 |
cleanedFiles=$$replace(INCLUDEFILES, ;,) |
| 262 |
|
| 263 |
#files() uses windows path separator ('\') but bld.inf requires '/' |
| 264 |
INCLUDEFILES=$$cleanedFiles |
| 265 |
cleanedFiles=$$replace(INCLUDEFILES, \\\\,/) |
| 266 |
|
| 267 |
for(header, cleanedFiles) { |
| 268 |
exists($$header): |
| 269 |
BLD_INF_RULES.prj_exports += "$$header $$APP_LAYER_PUBLIC_EXPORT_PATH($$basename(header))" |
| 270 |
} |
| 271 |
} |
| 272 |
} |
| 273 |
|
| 274 |
contains(mobility_modules,serviceframework|location|bearer|publishsubscribe|systeminfo|multimedia|messaging|feedback|sensors|gallery|connectivity) { |
| 275 |
for(api, qtmMwHeaders) { |
| 276 |
INCLUDEFILES=$$files($$api); |
| 277 |
|
| 278 |
#files() attaches a ';' at the end which we need to remove |
| 279 |
cleanedFiles=$$replace(INCLUDEFILES, ;,) |
| 280 |
|
| 281 |
#files() uses windows path separator ('\') but bld.inf requires '/' |
| 282 |
INCLUDEFILES=$$cleanedFiles |
| 283 |
cleanedFiles=$$replace(INCLUDEFILES, \\\\,/) |
| 284 |
|
| 285 |
for(header, cleanedFiles) { |
| 286 |
exists($$header): |
| 287 |
BLD_INF_RULES.prj_exports += "$$header $$MW_LAYER_PUBLIC_EXPORT_PATH($$basename(header))" |
| 288 |
} |
| 289 |
} |
| 290 |
} |
| 291 |
} |