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