diff options
author | Dimitri van Heesch <dimitri@stack.nl> | 2015-07-21 18:14:58 (GMT) |
---|---|---|
committer | Dimitri van Heesch <dimitri@stack.nl> | 2015-07-21 18:14:58 (GMT) |
commit | d47a94d7b17b072032191f5e4978a2782ce60746 (patch) | |
tree | ff940865e1b06be20db85566d6327650069f46cb | |
parent | b0fc11e4a891e51bb4d982730efecddac2ef807e (diff) | |
parent | 8c0c80e44e1e9cb1ce4e88a3e1d01b65536dc60c (diff) | |
download | Doxygen-d47a94d7b17b072032191f5e4978a2782ce60746.zip Doxygen-d47a94d7b17b072032191f5e4978a2782ce60746.tar.gz Doxygen-d47a94d7b17b072032191f5e4978a2782ce60746.tar.bz2 |
Merge pull request #368 from olibre/master
Enable build of RPM/DEB/... packages
-rw-r--r-- | CMakeLists.txt | 3 | ||||
-rw-r--r-- | cmake/packaging.cmake | 106 | ||||
-rw-r--r-- | packages/rpm/doxygen.spec.in | 126 |
3 files changed, 109 insertions, 126 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index dcb329b..3695093 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -135,3 +135,6 @@ add_subdirectory(addon/doxywizard) enable_testing() add_subdirectory(testing) + +include(cmake/packaging.cmake) # set CPACK_xxxx properties +include(CPack) diff --git a/cmake/packaging.cmake b/cmake/packaging.cmake new file mode 100644 index 0000000..a85ce33 --- /dev/null +++ b/cmake/packaging.cmake @@ -0,0 +1,106 @@ +##### set CPack properties ##### +# +# Good doc/tutorial/example: +# - http://www.cmake.org/Wiki/CMake:CPackPackageGenerators +# - http://www.cmake.org/cmake/help/v3.3/module/CPack.html +# - http://sourceforge.net/p/klusters/klusters/ci/master/tree/CMakeLists.txt +# +# This cmake script should generate same packages (deb,rpm) as: +# - http://mirror.debian.ikoula.com/debian/pool/main/d/doxygen +# - http://archive.ubuntu.com/ubuntu/pool/main/d/doxygen (http://old-releases.ubuntu.com/ubuntu/pool/main/d/doxygen) +# - http://rpmfind.net/linux/rpm2html/search.php?query=doxygen + +set(CPACK_STRIP_FILES ON) +set(CPACK_PACKAGE_NAME ${PROJECT_NAME} ) +set(CPACK_PACKAGE_VERSION ${VERSION}) +set(CPACK_PACKAGE_CONTACT "Dimitri van Heesch") +set(CPACK_PACKAGE_VENDOR "Dimitri van Heesch") +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Generate documentation from C, C++, Java, Python and other languages") +set(CPACK_PACKAGE_DESCRIPTION "Doxygen is the de facto standard tool for generating documentation from annotated C++ sources. + But many other popular programming languages are supported: + C, Objective-C, C#, PHP, Java, Python, Fortran, VHDL, Tcl, D (some extent) and IDL (Corba, Microsoft, and UNO/OpenOffice flavors). + . + Three usages: + . + 1. Generate documentation from annotated source files to various format: + - On-line documentation (HTML) + - Off-line reference manual (LaTeX, RTF, PostScript, hyperlinked PDF, compressed HTML, Unix man pages) + . + 2. Extract the code structure from undocumented source files. + Also generate include dependency graphs, inheritance diagrams, and collaboration diagrams. + Useful to quickly understand code organization in large source distributions. + . + 3. Create normal documentation (as the doxygen user manual and web-site http://doxygen.org/) + . + Install the doxygen-latex package to build LaTeX based documents. + Install the libclang1 package to use the 'clang assisted parsing'.") + +set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE) +set(CPACK_RESOURCE_FILE_README ${CMAKE_CURRENT_SOURCE_DIR}/README.md) + +# Variables specific to CPack RPM generator +set(CPACK_RPM_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION}) +set(CPACK_RPM_PACKAGE_LICENSE "GPLv2") +set(CPACK_RPM_PACKAGE_GROUP "Development/Tools") +set(CPACK_RPM_PACKAGE_URL "http://doxygen.org/") +set(CPACK_RPM_PACKAGE_REQUIRES "/sbin/chkconfig, /bin/mktemp, /bin/rm, /bin/mv, libstdc++ >= 2.96") +set(CPACK_RPM_PACKAGE_SUGGESTS "doxygen-latex, doxygen-doc, doxygen-gui, graphviz, libclang1") + +# Variables specific to CPack DEB generator +set(CPACK_DEBIAN_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION}) +set(CPACK_DEBIAN_PACKAGE_SECTION "devel") +set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "http://doxygen.org/") +set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS YES) #set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6, libclang1-3.6, libgcc1, libsqlite3-0, libstdc++6, libxapian22") +set(CPACK_DEBIAN_PACKAGE_SUGGESTS "doxygen-latex, doxygen-doc, doxygen-gui, graphviz, libclang1") +set(CPACK_DEBIAN_PACKAGE_CONFLICTS "graphviz (<< 1.12)") +set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Matthias Klose <doko@debian.org>") # Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> + +# Variables specific to CPack NSIS generator +set(CPACK_NSIS_MUI_ICON ${CMAKE_CURRENT_SOURCE_DIR}/addon/doxywizard/doxywizard.ico) +set(CPACK_NSIS_URL_INFO_ABOUT "http://doxygen.org/") +set(CPACK_NSIS_PACKAGE_NAME ${PROJECT_NAME}) + +# Variables specific to CPack DragNDrop generator +set(CPACK_DMG_FORMAT "UDBZ") # UDRO=UDIF-Read-Only, UDZO=zlib, UDBZ=bzip2 -- See hdiutil +set(CPACK_DMG_VOLUME_NAME ${PROJECT_NAME}) +set(CPACK_DMG_BACKGROUND_IMAGE ${CMAKE_CURRENT_SOURCE_DIR}/doc/doxygen_logo.eps) + +if(WIN32) + set(CPACK_GENERATOR "ZIP;NSIS") + +elseif(APPLE) + set(CPACK_GENERATOR "ZIP;DragNDrop;PackageMaker;Bundle" ) + set(CPACK_SYSTEM_NAME "OSX" ) + +elseif(UNIX) + # Determine distribution and release + execute_process(COMMAND lsb_release -si OUTPUT_VARIABLE distribution OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND lsb_release -sc OUTPUT_VARIABLE release OUTPUT_STRIP_TRAILING_WHITESPACE) + #xecute_process(COMMAND uname -i OUTPUT_VARIABLE CPACK_RPM_PACKAGE_ARCHITECTURE OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND uname -m OUTPUT_VARIABLE CPACK_RPM_PACKAGE_ARCHITECTURE OUTPUT_STRIP_TRAILING_WHITESPACE) + + if(distribution STREQUAL "Debian" OR distribution STREQUAL "Ubuntu") + set(CPACK_GENERATOR "DEB") + execute_process(COMMAND dpkg --print-architecture OUTPUT_VARIABLE CPACK_DEBIAN_PACKAGE_ARCHITECTURE OUTPUT_STRIP_TRAILING_WHITESPACE) + set(CPACK_PACKAGE_FILE_NAME ${CPACK_PACKAGE_NAME}_${CPACK_PACKAGE_VERSION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}) + + elseif(distribution MATCHES "openSUSE.*") + set(CPACK_GENERATOR "RPM") + set(CPACK_PACKAGE_FILE_NAME ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${release}.${CPACK_RPM_PACKAGE_ARCHITECTURE}) + + elseif(distribution STREQUAL "Fedora") + set(CPACK_GENERATOR "RPM") + set(CPACK_PACKAGE_FILE_NAME ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}.fc${release}.${CPACK_RPM_PACKAGE_ARCHITECTURE}) + + elseif(distribution STREQUAL "Scientific") + set(CPACK_GENERATOR "RPM") + set(CPACK_PACKAGE_FILE_NAME ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${release}.${CPACK_RPM_PACKAGE_ARCHITECTURE}) + + else() + set(CPACK_GENERATOR "RPM;TGZ;STGZ") + set(CPACK_PACKAGE_FILE_NAME ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${release}.${CPACK_RPM_PACKAGE_ARCHITECTURE}) + endif() + +else() + # other operating system (not Windows/Apple/Unix) +endif() diff --git a/packages/rpm/doxygen.spec.in b/packages/rpm/doxygen.spec.in deleted file mode 100644 index f78322a..0000000 --- a/packages/rpm/doxygen.spec.in +++ /dev/null @@ -1,126 +0,0 @@ -%define name doxygen - -# optionally pass --with-doxywizard to rpmbuild - -%define contentdir /var/www -%define suexec_caller doxygen -%define buildroot /var/tmp/%{name}-%{version}-%{revision}root - -Summary: A documentation system for C/C++. -Name: doxygen -Version: %{version} -Release: %{revision} -URL: http://www.stack.nl/~dimitri/doxygen/index.html -Vendor: Dimitri van Heesch -License: GNU General Public License -Group: Development/Tools -Source: %{name}-%{version}.src.tar.gz -BuildRoot: %{buildroot} -BuildRequires: libstdc++-devel >= 2.96, /usr/bin/perl, /usr/bin/latex, /usr/bin/dvips, /usr/bin/gs -Requires: /sbin/chkconfig, /bin/mktemp, /bin/rm, /bin/mv, libstdc++ >= 2.96 -Provides: doxygen = %{mmn} - -%description -Doxygen can generate an online class browser (in HTML) and/or a -reference manual (in LaTeX) from a set of documented source files. The -documentation is extracted directly from the sources. Doxygen can -also be configured to extract the code structure from undocumented -source files. - -%if %{?_with_doxywizard:1}%{!?_with_doxywizard:0} -%package doxywizard -Group: Development/Libraries -Summary: GUI Interface for doxygen. -Requires: doxygen = %{mmn} -Requires: qt >= 3.3 -Provides: doxywizard = %{mmn} -# Obsoletes: - -%description doxywizard -Doxygen can generate an online class browser (in HTML) and/or a -reference manual (in LaTeX) from a set of documented source files. The -documentation is extracted directly from the sources. Doxygen can -also be configured to extract the code structure from undocumented -source files. - -This is the GUI interface for doxygen. It requires qt and X11 to -install. -%endif - -%if %{?_with_doxysearch:1}%{!?_with_doxysearch:0} -%package doxysearch -Group: Development/Libraries -Summary: external indexer and search engine for doxygen. -Requires: doxygen = %{mmn} -Requires: libxapian-devel >= 1.2 -Provides: doxysearch.cgi = %{mmn} -Provides: doxyindexer = %{mmn} -# Obsoletes: - -%description doxysearch -External indexing and search tools for searching through doxygen -generated HTML documentation. -%endif - -%prep -%setup -q -n %{name}-%{version} -./configure %{?_with_doxywizard} %{?_with_doxysearch} --prefix $RPM_BUILD_ROOT/usr - -%build -make %{?_smp_mflags} -make %{?_smp_mflags} pdf - -%install -rm -rf $RPM_BUILD_ROOT -make install - -%clean -rm -rf $RPM_BUILD_ROOT - -%files -%defattr(-,root,root) - -%doc README.md LICENSE LANGUAGE.HOWTO examples ./latex/*.pdf -%doc /usr/man/man1/doxygen.1.gz - -%{_bindir}/doxygen - -%if %{?_with_doxywizard:1}%{!?_with_doxywizard:0} -%files doxywizard -%defattr(-,root,root) -%{_bindir}/doxywizard -%doc /usr/man/man1/doxywizard.1.gz -%endif - -%if %{?_with_doxysearch:1}%{!?_with_doxysearch:0} -%files doxysearch -%defattr(-,root,root) -%{_bindir}/doxyindexer -%{_bindir}/doxysearch.cgi -%doc /usr/man/man1/doxyindexer.1.gz -%doc /usr/man/man1/doxysearch.1.gz -%endif - -%changelog -* Tue Dec 25 2012 Dimitri van Heesch <dimitri@stack.nl> 1.8.3 -- added doxyindexer and doxysearch - -* Fri Apr 18 2008 Kenneth Porter <shiva+doxygenspec@sewingwitch.com> 1.5.5-1 -- consolidate with and without doxywizard spec files with rpm macro -- add gs BuildPrereq - -* Sun Nov 18 2007 Kevin McBride <kevin@planetsaphire.com> 1.5.4 -- consolidated manual package in lieu of --excludedocs flag for rpm --install - -* Mon Oct 10 2005 Kevin McBride <kevin@planetsaphire.com> 1.4.5 -- fixed versioning bugs. - -* Tue Oct 4 2005 Kevin McBride <kevin@planetsaphire.com> 1.4.5 -- added obsoletes and proides sections. - -* Sun Sep 20 2005 Kevin McBride <kevin@planetsaphire.com> 1.4.4 -- modified rpm spec file for Fedora Core acceptance criteria. - -* Sun Aug 7 2005 Kevin McBride <kevin@planetsaphire.com> 1.4.4 -- created initial rpm spec file for doxygen-1.4.4 - |