|
| 1 | +INCLUDE(FindQt4) |
| 2 | + |
| 3 | +set(MOBILITY_CONFIG_MKSPECS_FILE "") |
| 4 | +IF(EXISTS "${QT_MKSPECS_DIR}/features/mobilityconfig.prf") |
| 5 | + set(MOBILITY_CONFIG_MKSPECS_FILE "${QT_MKSPECS_DIR}/features/mobilityconfig.prf") |
| 6 | +ELSEIF(EXISTS "${QT_MKSPECS_DIR}/features/mobility.prf") |
| 7 | + set(MOBILITY_CONFIG_MKSPECS_FILE "${CMAKE_CURRENT_SOURCE_DIR}/cmakes/mobilityconfig.prf") |
| 8 | +ENDIF() |
| 9 | + |
| 10 | +macro(export_component component) |
| 11 | + IF(NOT ${MOBILITY_CONFIG_MKSPECS_FILE} STREQUAL "") |
| 12 | + FILE(READ ${MOBILITY_CONFIG_MKSPECS_FILE} MOBILITY_FILE_CONTENTS) |
| 13 | + STRING(TOLOWER ${component} _COMPONENT) |
| 14 | + IF(${MOBILITY_FILE_CONTENTS} MATCHES "MOBILITY_CONFIG=.*${_COMPONENT}.*") |
| 15 | + STRING(TOUPPER ${component} _COMPONENT) |
| 16 | + SET(QT_MOBILITY_${_COMPONENT}_FOUND 1) |
| 17 | + SET(QT_MOBILITY_${_COMPONENT}_INCLUDE_DIR ${QT_MOBILITY_PARENT_INCLUDE_DIR}/Qt${component}) |
| 18 | + SET(QT_MOBILITY_${_COMPONENT}_LIBRARY Qt${component}) |
| 19 | + ADD_DEFINITIONS(-DHAVE_QT_MOBILITY_${_COMPONENT}) |
| 20 | + ENDIF() |
| 21 | + ENDIF() |
| 22 | +endmacro() |
| 23 | + |
| 24 | +set(VERSION_INFO "") |
| 25 | +set(FEATURE_FILE_PREFIX "${QT_MKSPECS_DIR}/features/mobility") |
| 26 | + |
| 27 | +if(DEFINED MOBILITY_VERSION) |
| 28 | + if(MOBILITY_VERSION STREQUAL "1.1" AND EXISTS "${FEATURE_FILE_PREFIX}11.prf") |
| 29 | + set(MOBILITY_PRF_FILE "${FEATURE_FILE_PREFIX}11.prf") |
| 30 | + set(VERSION_INFO "1.1") |
| 31 | + elseif(MOBILITY_VERSION STREQUAL "1.2" AND EXISTS "${FEATURE_FILE_PREFIX}12.prf") |
| 32 | + set(MOBILITY_PRF_FILE "${FEATURE_FILE_PREFIX}12.prf") |
| 33 | + set(VERSION_INFO "1.2") |
| 34 | + elseif(MOBILITY_VERSION STREQUAL "default" AND EXISTS "${FEATURE_FILE_PREFIX}.prf") |
| 35 | + set(MOBILITY_PRF_FILE "${FEATURE_FILE_PREFIX}.prf") |
| 36 | + set(VERSION_INFO "system's default") |
| 37 | + else() |
| 38 | + message(STATUS "Couldn't find QtMobility version: ${MOBILITY_VERSION}") |
| 39 | + endif() |
| 40 | +endif() |
| 41 | + |
| 42 | +if(NOT DEFINED MOBILITY_PRF_FILE) |
| 43 | + if(EXISTS "${FEATURE_FILE_PREFIX}.prf") |
| 44 | + set(MOBILITY_PRF_FILE "${FEATURE_FILE_PREFIX}.prf") |
| 45 | + set(VERSION_INFO "system's default") |
| 46 | + elseif(EXISTS "${FEATURE_FILE_PREFIX}12.prf") |
| 47 | + set(MOBILITY_PRF_FILE "${FEATURE_FILE_PREFIX}12.prf") |
| 48 | + set(VERSION_INFO "1.2") |
| 49 | + elseif(EXISTS "${FEATURE_FILE_PREFIX}11.prf") |
| 50 | + set(MOBILITY_PRF_FILE "${FEATURE_FILE_PREFIX}11.prf") |
| 51 | + set(VERSION_INFO "1.1") |
| 52 | + else() |
| 53 | + message(FATAL_ERROR "Couldn't find any version of QtMobility.") |
| 54 | + endif() |
| 55 | +endif() |
| 56 | + |
| 57 | +message(STATUS "Using QtMobility version: ${VERSION_INFO}") |
| 58 | + |
| 59 | +IF(DEFINED MOBILITY_PRF_FILE) |
| 60 | + FILE(READ ${MOBILITY_PRF_FILE} MOBILITY_FILE_CONTENTS) |
| 61 | + |
| 62 | + STRING(REGEX MATCH "MOBILITY_PREFIX=([^\n]+)" QT_MOBILITY_PREFIX "${MOBILITY_FILE_CONTENTS}") |
| 63 | + SET(QT_MOBILITY_PREFIX ${CMAKE_MATCH_1}) |
| 64 | + |
| 65 | + STRING(REGEX MATCH "MOBILITY_INCLUDE=([^\n]+)" QT_MOBILITY_INCLUDE_DIR "${MOBILITY_FILE_CONTENTS}") |
| 66 | + SET(QT_MOBILITY_INCLUDE_DIR ${CMAKE_MATCH_1}) |
| 67 | + |
| 68 | + STRING(REGEX MATCH "MOBILITY_LIB=([^\n]+)" "\\1" QT_MOBILITY_LIBRARY "${MOBILITY_FILE_CONTENTS}") |
| 69 | + SET(QT_MOBILITY_LIBRARY_DIR ${CMAKE_MATCH_1}) |
| 70 | + |
| 71 | + #VERSION |
| 72 | + IF(NOT ${MOBILITY_CONFIG_MKSPECS_FILE} STREQUAL "") |
| 73 | + FILE(READ ${MOBILITY_CONFIG_MKSPECS_FILE} MOBILITY_CONFIG_FILE_CONTENTS) |
| 74 | + STRING(REGEX MATCH "MOBILITY_VERSION = ([^\n]+)" QT_MOBILITY_VERSION "${MOBILITY_CONFIG_FILE_CONTENTS}") |
| 75 | + SET(QT_MOBILITY_VERSION ${CMAKE_MATCH_1}) |
| 76 | + |
| 77 | + STRING(REGEX MATCH "MOBILITY_MAJOR_VERSION = ([^\n]+)" QT_MOBILITY_MAJOR_VERSION "${MOBILITY_CONFIG_FILE_CONTENTS}") |
| 78 | + SET(QT_MOBILITY_MAJOR_VERSION ${CMAKE_MATCH_1}) |
| 79 | + |
| 80 | + STRING(REGEX MATCH "MOBILITY_MINOR_VERSION = ([^\n]+)" QT_MOBILITY_MINOR_VERSION "${MOBILITY_CONFIG_FILE_CONTENTS}") |
| 81 | + SET(QT_MOBILITY_MINOR_VERSION ${CMAKE_MATCH_1}) |
| 82 | + |
| 83 | + STRING(REGEX MATCH "MOBILITY_PATCH_VERSION = ([^\n]+)" QT_MOBILITY_PATCH_VERSION "${MOBILITY_CONFIG_FILE_CONTENTS}") |
| 84 | + SET(QT_MOBILITY_PATCH_VERSION ${CMAKE_MATCH_1}) |
| 85 | + |
| 86 | + message(STATUS "QtMobility version: ${QT_MOBILITY_VERSION}") |
| 87 | + ELSE() |
| 88 | + SET(QT_MOBILITY_VERSION 1.0.0) |
| 89 | + SET(QT_MOBILITY_MAJOR_VERSION 1) |
| 90 | + SET(QT_MOBILITY_MINOR_VERSION 0) |
| 91 | + SET(QT_MOBILITY_PATCH_VERSION 0) |
| 92 | + ENDIF() |
| 93 | + |
| 94 | + SET(QT_MOBILITY_PARENT_INCLUDE_DIR ${QT_MOBILITY_INCLUDE_DIR}) |
| 95 | + SET(QT_MOBILITY_INCLUDE_DIR ${QT_MOBILITY_INCLUDE_DIR}/QtMobility) |
| 96 | + |
| 97 | + IF(QtMobility_FIND_VERSION_EXACT) |
| 98 | + IF(QT_MOBILITY_VERSION VERSION_EQUAL QtMobility_FIND_VERSION) |
| 99 | + SET(QT_MOBILITY_FOUND TRUE) |
| 100 | + ELSE() |
| 101 | + SET(QT_MOBILITY_FOUND FALSE) |
| 102 | + IF(QT_MOBILITY_VERSION VERSION_LESS QtMobility_FIND_VERSION) |
| 103 | + SET(QT_MOBILITY_TOO_OLD TRUE) |
| 104 | + ELSE() |
| 105 | + SET(QT_MOBILITY_TOO_NEW TRUE) |
| 106 | + ENDIF() |
| 107 | + ENDIF() |
| 108 | + ELSE() |
| 109 | + IF(QT_MOBILITY_VERSION VERSION_LESS QtMobility_FIND_VERSION) |
| 110 | + SET(QT_MOBILITY_FOUND FALSE) |
| 111 | + SET(QT_MOBILITY_TOO_OLD TRUE) |
| 112 | + ELSE() |
| 113 | + SET(QT_MOBILITY_FOUND TRUE) |
| 114 | + ENDIF() |
| 115 | + ENDIF() |
| 116 | +ELSE() |
| 117 | + SET(QT_MOBILITY_FOUND NOTFOUND) |
| 118 | + SET(QT_MOBILITY_PREFIX NOTFOUND) |
| 119 | + SET(QT_MOBILITY_INCLUDE NOTFOUND) |
| 120 | + SET(QT_MOBILITY_LIB NOTFOUND) |
| 121 | +ENDIF() |
| 122 | + |
| 123 | +IF(NOT QT_MOBILITY_FOUND) |
| 124 | + if(QT_MOBILITY_TOO_OLD) |
| 125 | + MESSAGE(FATAL_ERROR "The installed QtMobility version ${QT_MOBILITY_VERSION} it too old, version ${QtMobility_FIND_VERSION} is required.") |
| 126 | + ELSEIF(QT_MOBILITY_TOO_NEW) |
| 127 | + MESSAGE(FATAL_ERROR "The installed QtMobility version ${QT_MOBILITY_VERSION} it too new, version ${QtMobility_FIND_VERSION} is required.") |
| 128 | + ELSE() |
| 129 | + MESSAGE(FATAL_ERROR "QtMobility not found.") |
| 130 | + ENDIF() |
| 131 | +ELSE() |
| 132 | + INCLUDE_DIRECTORIES(${QT_MOBILITY_INCLUDE_DIR}) |
| 133 | + export_component(Bearer) |
| 134 | + export_component(Feedback) |
| 135 | + export_component(Gallery) |
| 136 | + export_component(PublishSubscribe) |
| 137 | + export_component(Location) |
| 138 | + export_component(Organizer) |
| 139 | + export_component(ServiceFramework) |
| 140 | + export_component(SystemInfo) |
| 141 | + export_component(Contacts) |
| 142 | + export_component(Connectivity) |
| 143 | + export_component(Messaging) |
| 144 | + export_component(Versit) |
| 145 | + export_component(Sensors) |
| 146 | + # VersitOrganizer |
| 147 | + if(QT_MOBILITY_VERSIT_FOUND AND QT_MOBILITY_ORGANIZER_FOUND) |
| 148 | + SET(QT_MOBILITY_VERSITORGANIZER_FOUND 1) |
| 149 | + SET(QT_MOBILITY_VERSITORGANIZER_INCLUDE_DIR ${QT_MOBILITY_PARENT_INCLUDE_DIR}/QtVersitOrganizer) |
| 150 | + SET(QT_MOBILITY_VERSITORGANIZER_LIBRARY QtVersitOrganizer) |
| 151 | + endif() |
| 152 | + |
| 153 | + # MultimediaKit - it's just 'multimedia' in the .prf file. |
| 154 | + IF(NOT ${MOBILITY_CONFIG_MKSPECS_FILE} STREQUAL "") |
| 155 | + FILE(READ ${MOBILITY_CONFIG_MKSPECS_FILE} MOBILITY_FILE_CONTENTS) |
| 156 | + IF(${MOBILITY_FILE_CONTENTS} MATCHES "MOBILITY_CONFIG=.*multimedia.*") |
| 157 | + SET(QT_MOBILITY_MULTIMEDIAKIT_FOUND 1) |
| 158 | + SET(QT_MOBILITY_MULTIMEDIAKIT_INCLUDE_DIR ${QT_MOBILITY_PARENT_INCLUDE_DIR}/QtMultimediaKit) |
| 159 | + SET(QT_MOBILITY_MULTIMEDIAKIT_LIBRARY QtMultimediaKit) |
| 160 | + ENDIF() |
| 161 | + ENDIF() |
| 162 | + |
| 163 | +ENDIF() |
0 commit comments