1#============================================================================= 2# Copyright 2017, Max Planck Society. 3# All rights reserved. 4# 5# Redistribution and use in source and binary forms, with or without modification, 6# are permitted provided that the following conditions are met: 7# 8# 1. Redistributions of source code must retain the above copyright notice, 9# this list of conditions and the following disclaimer. 10# 11# 2. Redistributions in binary form must reproduce the above copyright notice, 12# this list of conditions and the following disclaimer in the documentation 13# and/or other materials provided with the distribution. 14# 15# 3. Neither the name of the copyright holder nor the names of its contributors 16# may be used to endorse or promote products derived from this software without 17# specific prior written permission. 18# 19# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 20# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 21# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 22# IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 23# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 24# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 26# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 27# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 28# OF THE POSSIBILITY OF SUCH DAMAGE. 29 30# File created by Raffi Enficiaud 31#============================================================================= 32 33 34 35SET(CPACK_PACKAGE_VERSION_MAJOR "${VERSION_MAJOR}") 36SET(CPACK_PACKAGE_VERSION_MINOR "${VERSION_MINOR}") 37SET(CPACK_PACKAGE_VERSION_PATCH "${VERSION_PATCH}") 38SET(CPACK_PACKAGE_VENDOR "PHD2 team") 39 40string(TIMESTAMP cdate "%Y%m%d%H%M%S" UTC) 41site_name(HOST_NAME) 42 43if(WIN32 AND FALSE) 44 # Windows installation through CPack is not supported in this project (ISS installer) 45 install (TARGETS phd2 RUNTIME DESTINATION .) 46 install (FILES ${PHD_COPY_EXTERNAL_ALL} DESTINATION . ) 47 if (CMAKE_BUILD_TYPE MATCHES Release) 48 install (FILES ${PHD_COPY_EXTERNAL_REL} DESTINATION . ) 49 else() 50 install (FILES ${PHD_COPY_EXTERNAL_DBG} DESTINATION . ) 51 endif() 52 install (FILES ${phd_src_dir}/README-PHD2.txt DESTINATION . ) 53 install (FILES ${phd_src_dir}/PHD2GuideHelp.zip DESTINATION . ) 54 install (DIRECTORY ${phd_src_dir}/locale DESTINATION . ) 55 56 # Make NSIS package 57 set(CPACK_GENERATOR "NSIS") 58 set(CPACK_PACKAGE_FILE_NAME "phd2-${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}.${cdate}.${HOST_NAME}-win32") 59 set(CPACK_PACKAGE_INSTALL_DIRECTORY "PHDGuiding2") 60 set(CPACK_NSIS_EXECUTABLES_DIRECTORY .) 61 set(CPACK_NSIS_MENU_LINKS "phd2.exe" "PHD Guiding 2") 62 set(CPACK_PACKAGE_DESCRIPTION_FILE "${phd_src_dir}/README-PHD2.txt") 63 set(CPACK_RESOURCE_FILE_README "${phd_src_dir}/README-PHD2.txt") 64 set(CPACK_RESOURCE_FILE_LICENSE "${phd_src_dir}/LICENSE.txt") 65 66endif() 67 68if(UNIX AND NOT APPLE) 69 install(TARGETS phd2 70 RUNTIME DESTINATION bin) 71 install(PROGRAMS phd2.sh 72 DESTINATION bin 73 RENAME phd2) 74 install(FILES ${PHD_INSTALL_LIBS} 75 DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/phd2/) 76 install(FILES ${phd_src_dir}/icons/phd2_48.png 77 DESTINATION ${CMAKE_INSTALL_PREFIX}/share/pixmaps/ 78 RENAME "phd2.png") 79 install(FILES ${phd_src_dir}/phd2.desktop 80 DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications/ ) 81 install(FILES ${phd_src_dir}/phd2.appdata.xml 82 DESTINATION ${CMAKE_INSTALL_PREFIX}/share/metainfo/ ) 83 84 # Make Debian package 85 set(CPACK_GENERATOR "DEB") 86 set(CPACK_DEBIAN_PACKAGE_MAINTAINER "PHD2 team https://github.com/OpenPHDGuiding/phd2") 87 # get package information 88 if (CMAKE_SYSTEM_PROCESSOR MATCHES "^arm(.*)") 89 set(debarch "armhf") 90 else() 91 if(CMAKE_SIZEOF_VOID_P EQUAL 8) 92 set(debarch "amd64") 93 else() 94 set(debarch "i386") 95 endif() 96 endif() 97 # package name is lowercase short name 98 set(CPACK_DEBIAN_PACKAGE_NAME "phd2") 99 # architecture use debian terminology 100 set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "${debarch}") 101 # version control compatible version name < ppa name to allow further upgrade 102 set(CPACK_DEBIAN_PACKAGE_VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}.${cdate}.0${HOST_NAME}") 103 # set version and arch compatible file name 104 set(CPACK_PACKAGE_FILE_NAME "phd2_${CPACK_DEBIAN_PACKAGE_VERSION}_${debarch}") 105 # Ubuntu 14.04 compatible minimal dependency 106 set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6 (>= 2.17), libgcc1 (>= 1:4.1.1), libnova-0.14-0 | libnova-0.16-0, libstdc++6 (>= 4.2.1), libusb-1.0-0 (>= 2:1.0.8), libwxbase3.0-0 | libwxbase3.0-0v5 (>= 3.0.0), libwxgtk3.0-0 | libwxgtk3.0-0v5 (>=3.0.0), libx11-6, zlib1g (>= 1:1.1.4)") 107 set(CPACK_DEBIAN_PACKAGE_SUGGESTS "indi-bin (>= 0.9.7)") 108 set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "PHD2 auto-guiding software") 109 # same section as many astronomy packages 110 set(CPACK_DEBIAN_PACKAGE_SECTION "education") 111 set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional") 112endif() 113 114if(APPLE) 115 install(TARGETS phd2 RUNTIME DESTINATION . BUNDLE DESTINATION .) 116 set(CPACK_GENERATOR "ZIP" "DragNDrop") 117 set(CPACK_PACKAGE_FILE_NAME "phd2-${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}.${cdate}.${HOST_NAME}-Darwin") 118endif() 119 120include(CPack) 121