-
Notifications
You must be signed in to change notification settings - Fork 478
/
QtMobility.cmake
85 lines (73 loc) · 3.4 KB
/
QtMobility.cmake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#
# QtMobility
#
SET(QtMobility_DEPENDS)
ctkMacroShouldAddExternalProject(QTMOBILITY_QTSERVICEFW_LIBRARIES add_project)
IF(${add_project})
SET(QtMobility_enabling_variable QTMOBILITY_QTSERVICEFW_LIBRARIES)
SET(proj QtMobility)
# MESSAGE(STATUS "Adding project:${proj}")
SET(QtMobility_DEPENDS ${proj})
# Patch program
FIND_PROGRAM(CTK_PATCH_EXECUTABLE patch
"C:/Program Files/GnuWin32/bin"
"C:/Program Files (x86)/GnuWin32/bin")
MARK_AS_ADVANCED(CTK_PATCH_EXECUTABLE)
IF(NOT CTK_PATCH_EXECUTABLE)
MESSAGE(FATAL_ERROR "error: Patch is required to build ${proj}. Set CTK_PATCH_EXECUTABLE. If running Windows, you can download it here: http://gnuwin32.sourceforge.net/packages/patch.htm")
ENDIF()
# Configure patch script
SET(qtmobility_src_dir ${ep_source_dir}/${proj})
SET(qtmobility_patch_dir ${CTK_SOURCE_DIR}/Utilities/QtMobility/)
SET(qtmobility_configured_patch_dir ${CTK_BINARY_DIR}/Utilities/QtMobility/)
SET(qtmobility_patchscript
${qtmobility_configured_patch_dir}/QtMobility-1.0.0-patch.cmake)
CONFIGURE_FILE(
${qtmobility_patch_dir}/QtMobility-1.0.0-patch.cmake.in
${qtmobility_patchscript} @ONLY)
# Define configure options
SET(qtmobility_modules "serviceframework")
SET(qtmobility_build_type "release")
IF(UNIX OR MINGW)
IF(CMAKE_BUILD_TYPE STREQUAL "Debug")
SET(qtmobility_build_type "debug")
ENDIF()
ELSEIF(NOT ${CMAKE_CFG_INTDIR} STREQUAL "Release")
SET(qtmobility_build_type "debug")
ENDIf()
SET(qtmobility_make_cmd)
SET(qtmobility_install_cmd)
IF(UNIX)
SET(qtmobility_make_cmd make)
SET(qtmobility_config_args -${qtmobility_build_type} -libdir ${CTK_CMAKE_LIBRARY_OUTPUT_DIRECTORY} -no-docs -modules ${qtmobility_modules})
SET(qtmobility_install_cmd ${qtmobility_make_cmd} install)
ELSEIF(WIN32)
SET(qtmobility_make_cmd nmake)
IF(MINGW AND NOT MSYS)
SET(qtmobility_make_cmd mingw32-make)
ENDIF()
SET(qtmobility_win32_install_prefix "${ep_source_dir}/${proj}/install/")
STRING(REPLACE "/" "\\" qtmobility_win32_native_install_prefix ${qtmobility_win32_install_prefix})
SET(qtmobility_config_args -${qtmobility_build_type} -qt ${QT_BINARY_DIR} -prefix ${qtmobility_win32_native_install_prefix} -no-docs -modules ${qtmobility_modules})
CONFIGURE_FILE(${qtmobility_patch_dir}/QtMobility-1.0.0-install-win32.cmake.in
${qtmobility_configured_patch_dir}/QtMobility-1.0.0-install-win32.cmake @ONLY)
SET(qtmobility_install_cmd ${CMAKE_COMMAND} -D INTERMEDIATE_DIRECTORY:STRING=$(IntDir) -P ${qtmobility_configured_patch_dir}/QtMobility-1.0.0-install-win32.cmake)
ENDIF()
ExternalProject_Add(${proj}
URL ${CTK_SOURCE_DIR}/Utilities/QtMobility/qt-mobility-servicefw-opensource-src-1.0.0.tar.gz
PATCH_COMMAND ${CMAKE_COMMAND} -P ${qtmobility_patchscript}
CONFIGURE_COMMAND <SOURCE_DIR>/configure ${qtmobility_config_args}
BUILD_COMMAND ${qtmobility_make_cmd}
INSTALL_COMMAND ${qtmobility_install_cmd}
BUILD_IN_SOURCE 1
)
# Since the full path of QtMobility library is used, there is not need to add
# its corresponding library output directory to CTK_EXTERNAL_LIBRARY_DIRS
IF(UNIX)
SET(${QtMobility_enabling_variable}_INCLUDE_DIRS
"${CTK_BINARY_DIR}/CMakeExternals/Source/QtMobility/install/include")
ELSE()
SET(${QtMobility_enabling_variable}_INCLUDE_DIRS
"${qtmobility_win32_install_prefix}/include")
ENDIF()
ENDIF()