Mercurial > irccd
diff cmake/IrccdPackage.cmake @ 256:f04acabfbbe5
CMake: switch to NSIS with various fixes, closes #533
author | David Demelier <markand@malikania.fr> |
---|---|
date | Mon, 12 Sep 2016 17:54:27 +0200 |
parents | 6635b9187d71 |
children | 08a041011599 |
line wrap: on
line diff
--- a/cmake/IrccdPackage.cmake Thu Sep 08 13:11:10 2016 +0200 +++ b/cmake/IrccdPackage.cmake Mon Sep 12 17:54:27 2016 +0200 @@ -20,91 +20,28 @@ set(CPACK_SOURCE_GENERATOR TXZ ZIP) set(CPACK_SOURCE_IGNORE_FILES "/[.]hg" "/CMakeLists[.]txt[.]user") +set(CPACK_PACKAGE_NAME "irccd") +set(CPACK_PACKAGE_VENDOR "malikania") +set(CPACK_PACKAGE_VERSION_MAJOR ${IRCCD_VERSION_MAJOR}) +set(CPACK_PACKAGE_VERSION_MINOR ${IRCCD_VERSION_MINOR}) +set(CPACK_PACKAGE_VERSION_PATCH ${IRCCD_VERSION_PATCH}) +set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/LICENSE.md) + # -# Define the binary package name. +# Installer hierarchy. # ------------------------------------------------------------------- # +# -- Applications (Group: Applications) +# | -- irccd (Component: irccd) +# | -- irccdctl (Component: irccdctl) +# -- Development (Group: Development) +# | -- C++ Headers (Component: headers) +# -- Plugins (Group: Plugins) +# | -- * (Component: *) +# +# Replace * with the appropriate plugin name. +# if (WIN32) - set(PKGSYS "Windows") - set(PKGSUFFIX "exe") - - if (IRCCD_64BITS) - set(PKGTARGETDIR "C:/Program Files/irccd-${IRCCD_VERSION}") - else () - set(PKGTARGETDIR "C:/Program Files (x86)/irccd-${IRCCD_VERSION}") - endif () -endif () - -if (IRCCD_64BITS) - set(PKGARCH "amd64") -else () - set(PKGARCH "x86") + set(CPACK_GENERATOR "NSIS") endif () - -# -# Create the QtIFW hierarchy. -# ------------------------------------------------------------------- -# - -# Custom package_ifw on Windows -if (IRCCD_PACKAGE) - set(CONFDIR ${CMAKE_BINARY_DIR}/installer/config) - set(PKGDIR ${CMAKE_BINARY_DIR}/installer/packages) - set(PKGNAME "irccd-${IRCCD_VERSION}-${PKGSYS}-${PKGARCH}.${PKGSUFFIX}") - - # Configure some QtIFW files and their meta packages. - file(COPY cmake/installer/LICENSE DESTINATION ${PKGDIR}/base/meta) - - # QtIFW configuration file - configure_file(cmake/installer/config/config.xml.in ${CONFDIR}/config.xml) - - # Meta packages - configure_file(cmake/installer/packages/meta-programs.xml.in ${PKGDIR}/base/meta/package.xml) - configure_file(cmake/installer/packages/meta-plugins.xml.in ${PKGDIR}/plugins/meta/package.xml) - - # Irccd, irccdctl and docs - file( - MAKE_DIRECTORY - ${PKGDIR}/base.irccd/data/${WITH_BINDIR} - ${PKGDIR}/base.irccdctl/data/${WITH_BINDIR} - ${PKGDIR}/docs/data/${WITH_DOCDIR} - ) - - configure_file(cmake/installer/packages/irccd.xml.in ${PKGDIR}/base.irccd/meta/package.xml) - configure_file(cmake/installer/packages/irccd.xml.in ${PKGDIR}/base.irccdctl/meta/package.xml) - configure_file(cmake/installer/packages/docs.xml.in ${PKGDIR}/docs/meta/package.xml) - - # Main dependencies. - set(dependencies irccd irccdctl all-docs) - - # Build commands for plugins. - foreach (plugin ${IRCCD_PLUGINS}) - list(APPEND dependencies plugin-${plugin}) - file(MAKE_DIRECTORY ${PKGDIR}/plugins.${plugin}/data/${WITH_PLUGINDIR}) - set(IRCCD_PLUGIN_NAME ${plugin}) - configure_file(cmake/installer/packages/plugin.xml.in ${PKGDIR}/plugins.${plugin}/meta/package.xml) - list( - APPEND - PLUGIN_COMMANDS - COMMAND ${CMAKE_COMMAND} -E copy ${IRCCD_FAKEDIR}/${WITH_PLUGINDIR}/${plugin}.js ${PKGDIR}/plugins.${plugin}/data/${WITH_PLUGINDIR} - ) - endforeach () - - # Target for building the package. - add_custom_target( - package_ifw - ${PLUGIN_COMMANDS} - COMMAND - ${CMAKE_COMMAND} -E copy $<TARGET_FILE:irccd> ${PKGDIR}/base.irccd/data/${WITH_BINDIR} - COMMAND - ${CMAKE_COMMAND} -E copy $<TARGET_FILE:irccdctl> ${PKGDIR}/base.irccdctl/data/${WITH_BINDIR} - COMMAND - ${CMAKE_COMMAND} -E copy_directory ${IRCCD_FAKEDIR}/${WITH_DOCDIR} ${PKGDIR}/docs/data/${WITH_DOCDIR} - COMMAND - ${QtIFW_CREATOR} -c ${CONFDIR}/config.xml -p ${PKGDIR} ${CMAKE_BINARY_DIR}/${PKGNAME} - COMMENT "Generating ${CMAKE_BINARY_DIR}/${PKGNAME}" - DEPENDS ${dependencies} - VERBATIM - ) -endif ()