diff --git a/cmake/modules-tests/QtMobility/CMakeLists.txt b/cmake/modules-tests/QtMobility/CMakeLists.txt --- /dev/null +++ b/cmake/modules-tests/QtMobility/CMakeLists.txt @@ -0,0 +1,5 @@ +include("${CMAKE_CURRENT_SOURCE_DIR}/../TestFindPackage.cmake") + +set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../modules" ) + +test_find_package(QtMobility QTMOBILITY INCLUDE_DIR INCLUDE_DIRS LIBRARIES) diff --git a/cmake/modules/FindQtMobility.cmake b/cmake/modules/FindQtMobility.cmake --- /dev/null +++ b/cmake/modules/FindQtMobility.cmake @@ -0,0 +1,102 @@ +# - Try to find the QtMobility libraries +# +# This module will search for the QtMobility libraries. +# +# It supports both a minimum version and searching for individual +# components. For the minimum version, use +# find_package(QtMobility 1.2.0). For specific components, use +# find_package(QtMobility COMPONENTS ...). See below for a list of known +# components. +# +# Once done this will define +# QTMOBILITY_FOUND - QtMobility and all specified components were found. +# QTMOBILITY_INCLUDE_DIR - Include directory for global QtMobility files. +# QTMOBILITY_INCLUDE_DIRS - All found QtMobility components' include dirs. +# QTMOBILITY_LIBRARIES - All found QtMobility components' libraries. +# QTMOBILITY_VERSION - The version of QtMobility that was found. +# +# For each found component the following will be defined: +# QTMOBILITY_{COMPONENT}_INCLUDE_DIR - The include directory for the component. +# QTMOBILITY_{COMPONENT}_LIBRARY - The location of the library for the component. +# +# Note that searching for components will be limited to the specified components +# if the components option is used. +# +# Copyright (c) 2011 Arjen Hiemstra <ahiemstra@heimr.nl> +# Redistribution and use is allowed according to the terms of the BSD license. + +set(QTMOBILITY_COMPONENTS + Bearer + Connectivity + Contacts + Feedback + Gallery + Location + Messaging + MultimediaKit + Organizer + PublishSubscribe + Sensors + ServiceFramework + SystemInfo + Versit +) + +if (QtMobility_FIND_COMPONENTS) + foreach (component ${QtMobility_FIND_COMPONENTS}) + string(TOUPPER ${component} _COMPONENT) + set(QTMOBILITY_USE_${_COMPONENT} 1) + endforeach (component) +endif (QtMobility_FIND_COMPONENTS) + +find_path(QTMOBILITY_INCLUDE_DIR qmobilityglobal.h PATH_SUFFIXES QtMobility) + +#Find the mobility version +if(QTMOBILITY_INCLUDE_DIR) + file(READ "${QTMOBILITY_INCLUDE_DIR}/qmobilityglobal.h" _qtmobility_global_header LIMIT 2000) + string(REGEX MATCH "#define QTM_VERSION_STR \"([0-9.]*)\"" _qtmobility_version_match "${_qtmobility_global_header}") + set(QTMOBILITY_VERSION "${CMAKE_MATCH_1}") + message(STATUS "QtMobility Version ${QTMOBILITY_VERSION} detected") +endif(QTMOBILITY_INCLUDE_DIR) + +set(QTMOBILITY_VARIABLES "QTMOBILITY_INCLUDE_DIR") +set(QTMOBILITY_INCLUDE_DIRS ${QTMOBILITY_INCLUDE_DIR}) + +#A list of files to find for specific components +set(QTMOBILITY_FIND_FILES + QNetworkConfiguration #Bearer + QBluetoothSocket #Connectivity + QContact #Contacts + QFeedbackInterface #Feedback + QAbstractGallery #Gallery + QLandmark #Location + QMessage #Messaging + QMediaPlayer #MultimediaKit + QOrganizerItem #Organizer + QValueSpace #PublishSubscribe + QSensor #Sensors + QService #ServiceFramework + QSystemInfo #SystemInfo + QVersitDocument #Versit +) + +list(LENGTH QTMOBILITY_COMPONENTS _component_count) +math(EXPR _component_count "${_component_count} - 1") +foreach (index RANGE ${_component_count}) + list(GET QTMOBILITY_COMPONENTS ${index} component) + list(GET QTMOBILITY_FIND_FILES ${index} file) + string(TOUPPER ${component} _COMPONENT) + if (NOT QtMobility_FIND_COMPONENTS OR QTMOBILITY_USE_${_COMPONENT}) + message(STATUS "Looking for QtMobility Component \"${component}\"") + find_path(QTMOBILITY_${_COMPONENT}_INCLUDE_DIR ${file} PATH_SUFFIXES Qt${component}) + find_library(QTMOBILITY_${_COMPONENT}_LIBRARY NAMES Qt${component}) + list(APPEND QTMOBILITY_VARIABLES "QTMOBILITY_${_COMPONENT}_INCLUDE_DIR" "QTMOBILITY_${_COMPONENT}_LIBRARY") + list(APPEND QTMOBILITY_INCLUDE_DIRS ${QTMOBILITY_${_COMPONENT}_INCLUDE_DIR}) + list(APPEND QTMOBILITY_LIBRARIES ${QTMOBILITY_${_COMPONENT}_LIBRARY}) + endif (NOT QtMobility_FIND_COMPONENTS OR QTMOBILITY_USE_${_COMPONENT}) +endforeach (index) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(QtMobility REQUIRED_VARS ${QTMOBILITY_VARIABLES} VERSION_VAR QTMOBILITY_VERSION) + +mark_as_advanced(${QTMOBILITY_VARIABLES})