|
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()
|