summaryrefslogtreecommitdiffstats
path: root/Modules/CPackDeb.cmake
blob: 4b782c85e87d5763ed5c193cd735300e7b5d181e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
IF(CMAKE_BINARY_DIR)
  MESSAGE(FATAL_ERROR "CPackDeb.cmake may only be used by CPack internally.")
ENDIF(CMAKE_BINARY_DIR)

IF(NOT UNIX)
  MESSAGE(FATAL_ERROR "CPackDeb.cmake may only be used under UNIX.")
ENDIF(NOT UNIX)

FIND_PROGRAM(AR_EXECUTABLE ar)

IF(NOT AR_EXECUTABLE)
  # Is there a *NIX out there without ar ?
  MESSAGE(FATAL_ERROR "debian package require a ar executable")
ENDIF(NOT AR_EXECUTABLE)

# Let's define the control file found in debian package:

# Package:
# debian policy enforce lower case for package name
IF(NOT DEBIAN_PACKAGE_NAME)
  STRING(TOLOWER ${CPACK_PACKAGE_NAME} DEBIAN_PACKAGE_NAME)
ENDIF(NOT DEBIAN_PACKAGE_NAME)

# Version:
IF(NOT DEBIAN_PACKAGE_VERSION)
  IF(NOT CPACK_PACKAGE_VERSION)
    MESSAGE(FATAL_ERROR "debian package require a package version")
  ENDIF(NOT CPACK_PACKAGE_VERSION)
  SET(DEBIAN_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION})
ENDIF(NOT DEBIAN_PACKAGE_VERSION)

# Architecture:
IF(NOT DEBIAN_PACKAGE_ARCHITECTURE)
# There is no such thing as i686 architecture on debian, you should use i386 instead
# $ dpkg --print-architecture
  SET(DEBIAN_PACKAGE_ARCHITECTURE i386)
ENDIF(NOT DEBIAN_PACAKGE_ARCHITECTURE)

# Depends:
IF(NOT DEBIAN_PACKAGE_DEPENDS)
  SET(DEBIAN_PACKAGE_DEPENDS
    "libc6 (>= 2.3.1-6), libgcc1 (>= 1:3.4.2-12)"
  )
ENDIF(NOT DEBIAN_PACKAGE_DEPENDS)

# Maintainer:
IF(NOT DEBIAN_PACKAGE_MAINTAINER)
  IF(NOT CPACK_PACKAGE_CONTACT)
    MESSAGE(FATAL_ERROR "debian package require a maintainer for a package")
  ENDIF(NOT CPACK_PACKAGE_CONTACT)
  SET(DEBIAN_PACKAGE_MAINTAINER ${CPACK_PACKAGE_CONTACT})
ENDIF(NOT DEBIAN_PACKAGE_MAINTAINER)

# Description:
IF(NOT DEBIAN_PACKAGE_DESCRIPTION)
  IF(NOT CPACK_PACKAGE_DESCRIPTION_SUMMARY)
    MESSAGE(FATAL_ERROR "debian package require a summary for a package")
  ENDIF(NOT CPACK_PACKAGE_DESCRIPTION_SUMMARY)
  SET(DEBIAN_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION_SUMMARY})
ENDIF(NOT DEBIAN_PACKAGE_DESCRIPTION)