CMakeLists.txt 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. cmake_minimum_required(VERSION 2.6)
  2. project(mirall)
  3. set(PACKAGE "mirall")
  4. set( CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules )
  5. include(${CMAKE_SOURCE_DIR}/VERSION.cmake)
  6. configure_file( ${CMAKE_SOURCE_DIR}/src/mirall/version.h.in "${CMAKE_CURRENT_BINARY_DIR}/src/mirall/version.h" )
  7. include_directories(BEFORE "${CMAKE_CURRENT_BINARY_DIR}/src/mirall/")
  8. include(GNUInstallDirs)
  9. ## stupid, we should upstream this
  10. if("${CMAKE_INSTALL_PREFIX}" STREQUAL "/usr")
  11. set(CMAKE_INSTALL_SYSCONFDIR "/etc")
  12. endif()
  13. #####
  14. ## handle BUILD_OWNCLOUD_OSX_BUNDLE
  15. # BUILD_OWNCLOUD_OSX_BUNDLE was not initialized OR set to true on OSX
  16. if(APPLE AND (NOT DEFINED BUILD_OWNCLOUD_OSX_BUNDLE OR BUILD_OWNCLOUD_OSX_BUNDLE))
  17. set(BUILD_OWNCLOUD_OSX_BUNDLE ON)
  18. set(OWNCLOUD_OSX_BUNDLE "owncloud.app")
  19. # BUILD_OWNCLOUD_OSX_BUNDLE was disabled on OSX
  20. elseif(APPLE AND NOT BUILD_OWNCLOUD_OSX_BUNDLE)
  21. message(FATAL_ERROR "Building in non-bundle mode on OSX is currently not supported. Comment this error out if you want to work on/test it.")
  22. # any other platform
  23. else()
  24. set(BUILD_OWNCLOUD_OSX_BUNDLE OFF)
  25. endif()
  26. #####
  27. find_package(Qt4 4.6.0 COMPONENTS QtCore QtGui QtXml QtNetwork QtTest REQUIRED )
  28. find_package(Csync)
  29. find_package(INotify)
  30. set(WITH_CSYNC CSYNC_FOUND)
  31. set(USE_INOTIFY ${INOTIFY_FOUND})
  32. set(THEME_CLASS "ownCloudTheme")
  33. configure_file(config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)
  34. macro(add_tests)
  35. foreach( loop_var ${ARGV} )
  36. qt4_automoc(test${loop_var}.cpp)
  37. add_executable(test${loop_var} test${loop_var}.cpp)
  38. target_link_libraries(test${loop_var} ${QT_LIBRARIES} mirall_static)
  39. add_test(test${loop_var} ${CMAKE_CURRENT_BINARY_DIR}/test${loop_var} --catch_system_errors=no)
  40. endforeach( loop_var )
  41. endmacro(add_tests)
  42. set(CPACK_SOURCE_IGNORE_FILES
  43. # hidden files
  44. "/\\\\..+$"
  45. # temporary files
  46. "\\\\.swp$"
  47. # backup files
  48. "~$"
  49. # others
  50. "\\\\.#"
  51. "/#"
  52. "/build/"
  53. "/_build/"
  54. # used before
  55. "\\\\.o$"
  56. "\\\\.lo$"
  57. "\\\\.la$"
  58. "Makefile\\\\.in$"
  59. )
  60. include(OwnCloudCPack.cmake)
  61. include(CTest)
  62. enable_testing()
  63. #
  64. # This cmake builds two targets (aka apps), mirall and owncloud. For the owncloud
  65. # target, OWNCLOUD_CLIENT needs to be a compile flag. It is set in src/CMakeLists.txt
  66. # but if that fails because cmake is too old, uncomment this here if you want to build
  67. # owncloud.
  68. # add_definitions(-DOWNCLOUD_CLIENT)
  69. add_definitions(-DUNICODE)
  70. add_definitions(-D_UNICODE)
  71. # Handle Translations, pick all mirall_* files from trans directory.
  72. file( GLOB TRANS_FILES ${CMAKE_SOURCE_DIR}/translations/mirall_*.ts)
  73. set(TRANSLATIONS ${TRANS_FILES})
  74. add_subdirectory(src)
  75. if(UNIT_TESTING)
  76. add_subdirectory(test)
  77. endif(UNIT_TESTING)
  78. if(BUILD_OWNCLOUD_OSX_BUNDLE)
  79. install( FILES exclude.lst DESTINATION ${OWNCLOUD_OSX_BUNDLE}/Contents/Resources )
  80. else()
  81. install( FILES exclude.lst DESTINATION ${CMAKE_INSTALL_SYSCONFDIR} )
  82. endif()