QtMobility.cmake 3.3 KB

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