Blame cmake/packaging.cmake

Packit 1c1d7e
##### set CPack properties #####
Packit 1c1d7e
#
Packit 1c1d7e
# Good doc/tutorial/example:
Packit 1c1d7e
# - http://www.cmake.org/Wiki/CMake:CPackPackageGenerators
Packit 1c1d7e
# - http://www.cmake.org/cmake/help/v3.3/module/CPack.html
Packit 1c1d7e
# - http://sourceforge.net/p/klusters/klusters/ci/master/tree/CMakeLists.txt
Packit 1c1d7e
#
Packit 1c1d7e
# This cmake script should generate same packages (deb,rpm) as:
Packit 1c1d7e
# - http://mirror.debian.ikoula.com/debian/pool/main/d/doxygen
Packit 1c1d7e
# - http://archive.ubuntu.com/ubuntu/pool/main/d/doxygen (http://old-releases.ubuntu.com/ubuntu/pool/main/d/doxygen)
Packit 1c1d7e
# - http://rpmfind.net/linux/rpm2html/search.php?query=doxygen
Packit 1c1d7e
Packit 1c1d7e
set(CPACK_STRIP_FILES      ON)
Packit 1c1d7e
set(CPACK_PACKAGE_NAME     ${PROJECT_NAME} )
Packit 1c1d7e
set(CPACK_PACKAGE_VERSION  ${VERSION})
Packit 1c1d7e
set(CPACK_PACKAGE_CONTACT  "Dimitri van Heesch")
Packit 1c1d7e
set(CPACK_PACKAGE_VENDOR   "Dimitri van Heesch")
Packit 1c1d7e
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Generate documentation from C, C++, Java, Python and other languages")
Packit 1c1d7e
set(CPACK_PACKAGE_DESCRIPTION "Doxygen is the de facto standard tool for generating documentation from annotated C++ sources.
Packit 1c1d7e
 But many other popular programming languages are supported:
Packit 1c1d7e
 C, Objective-C, C#, PHP, Java, Python, Fortran, VHDL, Tcl, D (some extent) and IDL (Corba, Microsoft, and UNO/OpenOffice flavors).
Packit 1c1d7e
 .
Packit 1c1d7e
 Three usages:
Packit 1c1d7e
 .
Packit 1c1d7e
    1. Generate documentation from annotated source files to various format:
Packit 1c1d7e
       - On-line documentation (HTML)
Packit 1c1d7e
       - Off-line reference manual (LaTeX, RTF, PostScript, hyperlinked PDF, compressed HTML, Unix man pages)
Packit 1c1d7e
 .
Packit 1c1d7e
    2. Extract the code structure from undocumented source files.
Packit 1c1d7e
       Also generate include dependency graphs, inheritance diagrams, and collaboration diagrams.
Packit 1c1d7e
       Useful to quickly understand code organization in large source distributions.
Packit 1c1d7e
 .
Packit 1c1d7e
    3. Create normal documentation (as the doxygen user manual and web-site http://doxygen.org/)
Packit 1c1d7e
 .
Packit 1c1d7e
 Install the doxygen-latex package to build LaTeX based documents.
Packit 1c1d7e
 Install the libclang1 package to use the 'clang assisted parsing'.")
Packit 1c1d7e
Packit 1c1d7e
set(CPACK_RESOURCE_FILE_LICENSE     ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE)
Packit 1c1d7e
set(CPACK_RESOURCE_FILE_README      ${CMAKE_CURRENT_SOURCE_DIR}/README.md)
Packit 1c1d7e
Packit 1c1d7e
# Variables specific to CPack RPM generator
Packit 1c1d7e
set(CPACK_RPM_PACKAGE_DESCRIPTION   ${CPACK_PACKAGE_DESCRIPTION})
Packit 1c1d7e
set(CPACK_RPM_PACKAGE_LICENSE       "GPLv2")
Packit 1c1d7e
set(CPACK_RPM_PACKAGE_GROUP         "Development/Tools")
Packit 1c1d7e
set(CPACK_RPM_PACKAGE_URL           "http://doxygen.org/")
Packit 1c1d7e
set(CPACK_RPM_PACKAGE_REQUIRES      "/sbin/chkconfig, /bin/mktemp, /bin/rm, /bin/mv, libstdc++ >= 2.96")
Packit 1c1d7e
set(CPACK_RPM_PACKAGE_SUGGESTS      "doxygen-latex, doxygen-doc, doxygen-gui, graphviz, libclang1")
Packit 1c1d7e
Packit 1c1d7e
# Variables specific to CPack DEB generator
Packit 1c1d7e
set(CPACK_DEBIAN_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION})
Packit 1c1d7e
set(CPACK_DEBIAN_PACKAGE_SECTION     "devel")
Packit 1c1d7e
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE    "http://doxygen.org/")
Packit 1c1d7e
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS   YES) #set(CPACK_DEBIAN_PACKAGE_DEPENDS    "libc6, libclang1-3.6, libgcc1, libsqlite3-0, libstdc++6, libxapian22")
Packit 1c1d7e
set(CPACK_DEBIAN_PACKAGE_SUGGESTS    "doxygen-latex, doxygen-doc, doxygen-gui, graphviz, libclang1")
Packit 1c1d7e
set(CPACK_DEBIAN_PACKAGE_CONFLICTS   "graphviz (<< 1.12)")
Packit 1c1d7e
set(CPACK_DEBIAN_PACKAGE_MAINTAINER  "Matthias Klose <doko@debian.org>")  # Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Packit 1c1d7e
Packit 1c1d7e
# Variables specific to CPack NSIS generator
Packit 1c1d7e
set(CPACK_NSIS_MUI_ICON         ${CMAKE_CURRENT_SOURCE_DIR}/addon/doxywizard/doxywizard.ico)
Packit 1c1d7e
set(CPACK_NSIS_URL_INFO_ABOUT   "http://doxygen.org/")
Packit 1c1d7e
set(CPACK_NSIS_PACKAGE_NAME     ${PROJECT_NAME})
Packit 1c1d7e
Packit 1c1d7e
# Variables specific to CPack DragNDrop generator
Packit 1c1d7e
set(CPACK_DMG_FORMAT            "UDBZ")         # UDRO=UDIF-Read-Only, UDZO=zlib, UDBZ=bzip2 -- See hdiutil
Packit 1c1d7e
set(CPACK_DMG_VOLUME_NAME       ${PROJECT_NAME})
Packit 1c1d7e
set(CPACK_DMG_BACKGROUND_IMAGE  ${CMAKE_CURRENT_SOURCE_DIR}/doc/doxygen_logo.eps)
Packit 1c1d7e
Packit 1c1d7e
if(WIN32)
Packit 1c1d7e
    set(CPACK_GENERATOR "ZIP;NSIS")
Packit 1c1d7e
Packit 1c1d7e
elseif(APPLE)
Packit 1c1d7e
    set(CPACK_GENERATOR       "ZIP;DragNDrop;PackageMaker;Bundle" )
Packit 1c1d7e
    set(CPACK_SYSTEM_NAME     "OSX" )
Packit 1c1d7e
Packit 1c1d7e
elseif(UNIX)
Packit 1c1d7e
    # Determine distribution and release
Packit 1c1d7e
    execute_process(COMMAND lsb_release -si OUTPUT_VARIABLE distribution                   OUTPUT_STRIP_TRAILING_WHITESPACE)
Packit 1c1d7e
    execute_process(COMMAND lsb_release -sc OUTPUT_VARIABLE release                        OUTPUT_STRIP_TRAILING_WHITESPACE)
Packit 1c1d7e
    #xecute_process(COMMAND uname -i        OUTPUT_VARIABLE CPACK_RPM_PACKAGE_ARCHITECTURE OUTPUT_STRIP_TRAILING_WHITESPACE)
Packit 1c1d7e
    execute_process(COMMAND uname -m        OUTPUT_VARIABLE CPACK_RPM_PACKAGE_ARCHITECTURE OUTPUT_STRIP_TRAILING_WHITESPACE)
Packit 1c1d7e
Packit 1c1d7e
    if(distribution STREQUAL "Debian" OR distribution STREQUAL "Ubuntu")
Packit 1c1d7e
      set(CPACK_GENERATOR "DEB")
Packit 1c1d7e
      execute_process(COMMAND dpkg --print-architecture OUTPUT_VARIABLE CPACK_DEBIAN_PACKAGE_ARCHITECTURE OUTPUT_STRIP_TRAILING_WHITESPACE)
Packit 1c1d7e
      set(CPACK_PACKAGE_FILE_NAME ${CPACK_PACKAGE_NAME}_${CPACK_PACKAGE_VERSION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE})
Packit 1c1d7e
Packit 1c1d7e
    elseif(distribution MATCHES "RedHat.*")
Packit 1c1d7e
      # extract the major version from RedHat full version (e.g. 6.7 --> 6)
Packit 1c1d7e
      execute_process(COMMAND lsb_release -sr COMMAND sed s/[.].*//  OUTPUT_VARIABLE redhat_version_major OUTPUT_STRIP_TRAILING_WHITESPACE)
Packit 1c1d7e
      set(CPACK_GENERATOR "RPM")
Packit 1c1d7e
      set(CPACK_PACKAGE_FILE_NAME ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}.el${redhat_version_major}.${CPACK_RPM_PACKAGE_ARCHITECTURE})
Packit 1c1d7e
Packit 1c1d7e
    elseif(distribution MATCHES "openSUSE.*")
Packit 1c1d7e
      set(CPACK_GENERATOR "RPM")
Packit 1c1d7e
      set(CPACK_PACKAGE_FILE_NAME ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${release}.${CPACK_RPM_PACKAGE_ARCHITECTURE})
Packit 1c1d7e
Packit 1c1d7e
    elseif(distribution STREQUAL "Fedora")
Packit 1c1d7e
      set(CPACK_GENERATOR "RPM")
Packit 1c1d7e
      set(CPACK_PACKAGE_FILE_NAME ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}.fc${release}.${CPACK_RPM_PACKAGE_ARCHITECTURE})
Packit 1c1d7e
Packit 1c1d7e
    elseif(distribution STREQUAL "Scientific")
Packit 1c1d7e
      set(CPACK_GENERATOR "RPM")
Packit 1c1d7e
      set(CPACK_PACKAGE_FILE_NAME ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${release}.${CPACK_RPM_PACKAGE_ARCHITECTURE})
Packit 1c1d7e
Packit 1c1d7e
    else()
Packit 1c1d7e
      set(CPACK_GENERATOR "RPM;TGZ;STGZ")
Packit 1c1d7e
      set(CPACK_PACKAGE_FILE_NAME ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${release}.${CPACK_RPM_PACKAGE_ARCHITECTURE})
Packit 1c1d7e
    endif()
Packit 1c1d7e
Packit 1c1d7e
else()
Packit 1c1d7e
    # other operating system (not Windows/Apple/Unix)
Packit 1c1d7e
endif()