diff options
-rw-r--r-- | CMakeLists.txt | 13 | ||||
-rw-r--r-- | OwnCloudCPack.cmake | 67 | ||||
-rw-r--r-- | admin/osx/DMGBackground.png | bin | 0 -> 18463 bytes | |||
-rw-r--r-- | admin/osx/DS_Store.in | bin | 0 -> 15364 bytes | |||
-rw-r--r-- | cmake/modules/MacOSXBundleInfo.plist.in | 36 | ||||
-rw-r--r-- | src/CMakeLists.txt | 79 |
6 files changed, 151 insertions, 44 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 999265015..4ebb96c28 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,12 @@ set( CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules ) include(${CMAKE_SOURCE_DIR}/VERSION.cmake) include(GNUInstallDirs) +if(NOT DEFINED BUILD_OWNCLOUD_OSX_BUNDLE OR NOT APPLE) + set(BUILD_OWNCLOUD_OSX_BUNDLE OFF) +elseif(BUILD_OWNCLOUD_OSX_BUNDLE) + set(OWNCLOUD_OSX_BUNDLE "owncloud.app") +endif() + find_package(Qt4 4.4.3 COMPONENTS QtCore QtGui QtXml QtNetwork QtTest REQUIRED ) find_package(Csync) @@ -56,6 +62,9 @@ set(TRANSLATIONS ${CMAKE_SOURCE_DIR}/translations/mirall_de.ts) add_subdirectory(src) # add_subdirectory(test) -install( FILES exclude.lst DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}) - +if(BUILD_OWNCLOUD_OSX_BUNDLE) + install( FILES exclude.lst DESTINATION ${OWNCLOUD_OSX_BUNDLE}/Contents/Resources ) +else() + install( FILES exclude.lst DESTINATION ${CMAKE_INSTALL_SYSCONFDIR} ) +endif() diff --git a/OwnCloudCPack.cmake b/OwnCloudCPack.cmake index a6575f2ce..c118dd79d 100644 --- a/OwnCloudCPack.cmake +++ b/OwnCloudCPack.cmake @@ -1,35 +1,60 @@ -INCLUDE( InstallRequiredSystemLibraries ) +include( InstallRequiredSystemLibraries ) -SET( CPACK_PACKAGE_CONTACT "Dominik Schmidt <domme@tomahawk-player.org>" ) +set( CPACK_PACKAGE_CONTACT "Dominik Schmidt <domme@tomahawk-player.org>" ) -SET( APPLICATION_NAME "ownCloud Client") +set( APPLICATION_NAME "ownCloud Client") -SET( CPACK_PACKAGE_FILE_NAME owncloud-setup ) # Package file name without extension. Also a directory of installer cmake-2.5.0-Linux-i686 +set( CPACK_PACKAGE_VERSION_MAJOR 1 ) +set( CPACK_PACKAGE_VERSION_MINOR 0 ) +set( CPACK_PACKAGE_VERSION_PATCH 0 ) +set( CPACK_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH} ) -# CPACK_GENERATOR CPack generator to be used STGZ;TGZ;TZ -# CPACK_INCLUDE_TOPLEVEL_DIRECTORY Controls whether CPack adds a top-level directory, usually of the form ProjectName-Version-OS, to the top of package tree. 0 to disable, 1 to enable -# CPACK_INSTALL_CMAKE_PROJECTS List of four values: Build directory, Project Name, Project Component, Directory in the package /home/andy/vtk/CMake-bin;CMake;ALL;/ -SET( CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README.md" ) # File used as a description of a project /path/to/project/ReadMe.txt -SET( CPACK_PACKAGE_DESCRIPTION_SUMMARY "ownCloud Syncing Client" ) # Description summary of a project -# CPACK_PACKAGE_EXECUTABLES List of pairs of executables and labels. Used by the NSIS generator to create Start Menu shortcuts. ccmake;CMake -SET( CPACK_PACKAGE_INSTALL_DIRECTORY ${APPLICATION_NAME} ) # Installation directory on the target system -> C:\Program Files\fellody -SET( CPACK_PACKAGE_INSTALL_REGISTRY_KEY ${APPLICATION_NAME} ) # Registry key used when installing this project CMake 2.5.0 -SET( CPACK_PACKAGE_NAME ${APPLICATION_NAME} ) # Package name, defaults to the project name -SET( CPACK_PACKAGE_VENDOR "http://owncloud.com" ) # Package vendor name +if(APPLE) + set( CPACK_GENERATOR "DragNDrop" ) + set( CPACK_SOURCE_GENERATOR "") + set( CPACK_PACKAGE_FILE_NAME ownCloudClientSetup-${CPACK_PACKAGE_VERSION} ) + set( CPACK_PACKAGE_ICON ${CMAKE_BINARY_DIR}/src/ownCloud.icns) -SET( CPACK_PACKAGE_VERSION_MAJOR 1 ) -SET( CPACK_PACKAGE_VERSION_MINOR 0 ) -SET( CPACK_PACKAGE_VERSION_PATCH 0 ) -SET( CPACK_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH} ) + set( CPACK_DMG_DS_STORE "${CMAKE_SOURCE_DIR}/admin/osx/DS_Store.in") + set( CPACK_DMG_BACKGROUND_IMAGE "${CMAKE_SOURCE_DIR}/admin/osx/DMGBackground.png" ) -# SET( CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE.txt" ) # License file for the project, used by the STGZ, NSIS, and PackageMaker generators. /home/andy/vtk/CMake/Copyright.txt + set( CPACK_DMG_FORMAT "UDBZ" ) + set( CPACK_DMG_VOLUME_NAME "${APPLICATION_NAME}") + # did not work with cmake 2.8.7, so we override MacOSXBundleInfo.plist.in + #set( CPACK_BUNDLE_PLIST ${CMAKE_SOURCE_DIR}/admin/osx/Info.plist ) -SET( CPACK_TOPLEVEL_TAG "unused" ) # Directory for the installed files. - needed to provide anything to avoid an error# CPACK_INSTALL_COMMANDS Extra commands to install components. + # do we need these? + #set( CPACK_SYSTEM_NAME "OSX" ) + #set( CPACK_PACKAGE_NAME "FOO" ) + #set( CPACK_BUNDLE_NAME "BAR" ) +endif() + + + + +if(WIN32) + set( CPACK_PACKAGE_FILE_NAME owncloud-client-setup ) + # Package file name without extension. Also a directory of installer cmake-2.5.0-Linux-i686 + # CPACK_GENERATOR CPack generator to be used STGZ;TGZ;TZ + # CPACK_INCLUDE_TOPLEVEL_DIRECTORY Controls whether CPack adds a top-level directory, usually of the form ProjectName-Version-OS, to the top of package tree. 0 to disable, 1 to enable + # CPACK_INSTALL_CMAKE_PROJECTS List of four values: Build directory, Project Name, Project Component, Directory in the package /home/andy/vtk/CMake-bin;CMake;ALL;/ + set( CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README.md" ) # File used as a description of a project /path/to/project/ReadMe.txt + set( CPACK_PACKAGE_DESCRIPTION_SUMMARY "ownCloud Syncing Client" ) # Description summary of a project + # CPACK_PACKAGE_EXECUTABLES List of pairs of executables and labels. Used by the NSIS generator to create Start Menu shortcuts. ccmake;CMake + set( CPACK_PACKAGE_INSTALL_DIRECTORY ${APPLICATION_NAME} ) # Installation directory on the target system -> C:\Program Files\fellody + set( CPACK_PACKAGE_INSTALL_REGISTRY_KEY ${APPLICATION_NAME} ) # Registry key used when installing this project CMake 2.5.0 + set( CPACK_PACKAGE_NAME ${APPLICATION_NAME} ) # Package name, defaults to the project name + set( CPACK_PACKAGE_VENDOR "http://owncloud.com" ) # Package vendor name +endif() + +# set( CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE.txt" ) # License file for the project, used by the STGZ, NSIS, and PackageMaker generators. /home/andy/vtk/CMake/Copyright.txt + + +set( CPACK_TOPLEVEL_TAG "unused" ) # Directory for the installed files. - needed to provide anything to avoid an error# CPACK_INSTALL_COMMANDS Extra commands to install components. # Set the options file that needs to be included inside CMakeCPackOptions.cmake -#SET(QT_DIALOG_CPACK_OPTIONS_FILE ${CMake_BINARY_DIR}/Source/QtDialog/QtDialogCPack.cmake) configure_file("${CMAKE_SOURCE_DIR}/CPackOptions.cmake.in" "${CMAKE_BINARY_DIR}/CPackOptions.cmake" @ONLY) set(CPACK_PROJECT_CONFIG_FILE "${CMAKE_BINARY_DIR}/CPackOptions.cmake") # File included at cpack time, once per generator after setting CPACK_GENERATOR to the actual generator being used; allows per-generator setting of CPACK_* variables at cpack time. ${PROJECT_BINARY_DIR}/CPackOptions.cmake diff --git a/admin/osx/DMGBackground.png b/admin/osx/DMGBackground.png Binary files differnew file mode 100644 index 000000000..873635e7f --- /dev/null +++ b/admin/osx/DMGBackground.png diff --git a/admin/osx/DS_Store.in b/admin/osx/DS_Store.in Binary files differnew file mode 100644 index 000000000..66fae9552 --- /dev/null +++ b/admin/osx/DS_Store.in diff --git a/cmake/modules/MacOSXBundleInfo.plist.in b/cmake/modules/MacOSXBundleInfo.plist.in new file mode 100644 index 000000000..03f97c32a --- /dev/null +++ b/cmake/modules/MacOSXBundleInfo.plist.in @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleDevelopmentRegion</key> + <string>English</string> + <key>CFBundleExecutable</key> + <string>owncloud</string> + <key>CFBundleGetInfoString</key> + <string></string> + <key>CFBundleIconFile</key> + <string>ownCloud.icns</string> + <key>CFBundleIdentifier</key> + <string>org.owncloud</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleLongVersionString</key> + <string>owncloud FIXME</string> + <key>CFBundleName</key> + <string>owncloudBundleName</string> + <key>CFBundlePackageType</key> + <string>APPL</string> + <key>CFBundleShortVersionString</key> + <string>0.1.0 FIXME</string> + <key>CFBundleSignature</key> + <string>????</string> + <key>CFBundleVersion</key> + <string>owncloud FIXME 0.1.0</string> + <key>CSResourcesFileMapped</key> + <true/> + <key>LSUIElement</key> + <true/> + <key>NSHumanReadableCopyright</key> + <string>2012 owncloud.org</string> +</dict> +</plist> diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1bf001a85..5d09deda5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -98,39 +98,76 @@ qt4_add_translation(mirall_I18N ${TRANSLATIONS}) add_library(mirall_static STATIC ${mirall_SRCS} ${mirall_UI_SRCS} ${mirallMoc} ${mirall_HEADERS} ${MIRALL_RC_SRC} ${mirall_I18N}) target_link_libraries(mirall_static ${QT_LIBRARIES}) -add_executable( mirall main.cpp ) -set( final_src ${mirall_HEADERS} - ${MIRALL_RC_SRC} ${mirall_SRCS} ${mirall_UI_SRCS} ${mirallMoc} ${mirall_HEADERS} ${mirall_I18N}) +set( final_src + ${mirall_HEADERS} + ${MIRALL_RC_SRC} + ${mirall_SRCS} + ${mirall_UI_SRCS} + ${mirallMoc} + ${mirall_HEADERS} + ${mirall_I18N} +) # add executable icon on windows and osx include( AddAppIconMacro ) -kde4_add_app_icon( final_src "${CMAKE_CURRENT_SOURCE_DIR}/../resources/mirall-*.png" ) +set(ownCloud_old ${ownCloud}) +kde4_add_app_icon( ownCloud "${CMAKE_CURRENT_SOURCE_DIR}/../resources/mirall-*.png" ) +list(APPEND final_src ${ownCloud}) +set(ownCloud ${ownCloud_old}) -add_executable(owncloud WIN32 main.cpp ${final_src}) -# add_executable(owncloud main.cpp ${final_src}) +if(NOT BUILD_OWNCLOUD_OSX_BUNDLE) + set(BIN_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") -SET(BIN_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") -SET_TARGET_PROPERTIES( mirall PROPERTIES - RUNTIME_OUTPUT_DIRECTORY ${BIN_OUTPUT_DIRECTORY} ) -SET_TARGET_PROPERTIES( owncloud PROPERTIES + install(FILES mirall.png DESTINATION share/icons/hicolor/48x48/apps) + + # we may not add MACOSX_BUNDLE here, if not building one + add_executable(owncloud WIN32 main.cpp ${final_src}) + + # mirall is not built for the bundle + add_executable( mirall WIN32 main.cpp ) + target_link_libraries(mirall mirall_static) + target_link_libraries(mirall ${CSYNC_LIBRARY}) + set_target_properties( mirall PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${BIN_OUTPUT_DIRECTORY} ) + install(TARGETS mirall + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + BUNDLE DESTINATION library + ) +else() + set(BIN_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}") + include(DeployQt4) + + set(CMAKE_INSTALL_PREFIX ".") # Examples use /Applications. hurmpf. + set(MACOSX_BUNDLE_ICON_FILE "ownCloud.icns") + + # we must add MACOSX_BUNDLE only if building a bundle + add_executable(owncloud WIN32 MACOSX_BUNDLE main.cpp ${final_src}) + + #FIXME: hardcoded path + install(FILES /usr/local/lib/csync-0/csync_owncloud.so DESTINATION ${OWNCLOUD_OSX_BUNDLE}/Contents/Plugins) + list(APPEND dirs "/usr/local/lib") +endif() -target_link_libraries(mirall mirall_static) +set_target_properties( owncloud PROPERTIES + RUNTIME_OUTPUT_DIRECTORY ${BIN_OUTPUT_DIRECTORY} +) target_link_libraries(owncloud ${QT_LIBRARIES} ) -target_link_libraries(mirall ${CSYNC_LIBRARY}) target_link_libraries(owncloud ${CSYNC_LIBRARY}) -install(TARGETS mirall - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib ) install(TARGETS owncloud - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib ) - -install(FILES mirall.png DESTINATION share/icons/hicolor/48x48/apps + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + BUNDLE DESTINATION "." ) +#FIXME: find a nice solution to make the second if(BUILD_OWNCLOUD_OSX_BUNDLE) unneccessary +# currently it needs to be done because the code right above needs to be executed no matter +# if building a bundle or not and the install_qt4_executable needs to be called afterwards +if(BUILD_OWNCLOUD_OSX_BUNDLE) + install_qt4_executable(${OWNCLOUD_OSX_BUNDLE} "" "${OWNCLOUD_OSX_BUNDLE}/Contents/Plugins/csync_owncloud.so" ${dirs}) +endif()
\ No newline at end of file |