comparison cmake/IrccdPackage.cmake @ 0:1158cffe5a5e

Initial import
author David Demelier <markand@malikania.fr>
date Mon, 08 Feb 2016 16:43:14 +0100
parents
children af9b35bf1585
comparison
equal deleted inserted replaced
-1:000000000000 0:1158cffe5a5e
1 #
2 # CPackConfing.cmake -- CMake build system for irccd
3 #
4 # Copyright (c) 2013-2016 David Demelier <markand@malikania.fr>
5 #
6 # Permission to use, copy, modify, and/or distribute this software for any
7 # purpose with or without fee is hereby granted, provided that the above
8 # copyright notice and this permission notice appear in all copies.
9 #
10 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 #
18
19 set(CPACK_SOURCE_PACKAGE_FILE_NAME "irccd-${IRCCD_VERSION}")
20 set(CPACK_SOURCE_GENERATOR "TXZ")
21 set(CPACK_SOURCE_IGNORE_FILES ".hg")
22
23 #
24 # Define the binary package name.
25 # -------------------------------------------------------------------
26 #
27
28 if (WIN32)
29 set(PKGSYS "Windows")
30 set(PKGSUFFIX "exe")
31 endif ()
32
33 if (IRCCD_64BITS)
34 set(PKGARCH "amd64")
35 else ()
36 set(PKGARCH "x86")
37 endif ()
38
39 #
40 # Create the QtIFW hierarchy.
41 # -------------------------------------------------------------------
42 #
43
44 # Custom package_ifw on Windows
45 if (IRCCD_PACKAGE)
46 set(CONFDIR ${CMAKE_BINARY_DIR}/installer/config)
47 set(PKGDIR ${CMAKE_BINARY_DIR}/installer/packages)
48 set(PKGNAME "irccd-${IRCCD_VERSION}-${PKGSYS}-${PKGARCH}.${PKGSUFFIX}")
49
50 # Configure some QtIFW files and their meta packages.
51 file(COPY cmake/installer/LICENSE DESTINATION ${PKGDIR}/base/meta)
52
53 # QtIFW configuration file
54 configure_file(cmake/installer/config/config.xml.in ${CONFDIR}/config.xml)
55
56 # Meta packages
57 configure_file(cmake/installer/packages/meta-programs.xml.in ${PKGDIR}/base/meta/package.xml)
58 configure_file(cmake/installer/packages/meta-plugins.xml.in ${PKGDIR}/plugins/meta/package.xml)
59
60 # Irccd, irccdctl and docs
61 file(
62 MAKE_DIRECTORY
63 ${PKGDIR}/base.irccd/data/${WITH_BINDIR}
64 ${PKGDIR}/base.irccdctl/data/${WITH_BINDIR}
65 ${PKGDIR}/docs/data/${WITH_DOCDIR}
66 )
67
68 configure_file(cmake/installer/packages/irccd.xml.in ${PKGDIR}/base.irccd/meta/package.xml)
69 configure_file(cmake/installer/packages/irccd.xml.in ${PKGDIR}/base.irccdctl/meta/package.xml)
70 configure_file(cmake/installer/packages/docs.xml.in ${PKGDIR}/docs/meta/package.xml)
71
72 # Main dependencies.
73 set(dependencies irccd irccdctl docs)
74
75 # Build commands for plugins.
76 foreach (plugin ${IRCCD_PLUGINS})
77 list(APPEND dependencies plugin-${plugin})
78 file(MAKE_DIRECTORY ${PKGDIR}/plugins.${plugin}/data/${WITH_PLUGINDIR})
79 set(IRCCD_PLUGIN_NAME ${plugin})
80 configure_file(cmake/installer/packages/plugin.xml.in ${PKGDIR}/plugins.${plugin}/meta/package.xml)
81 list(
82 APPEND
83 PLUGIN_COMMANDS
84 COMMAND ${CMAKE_COMMAND} -E copy ${IRCCD_FAKEDIR}/${WITH_PLUGINDIR}/${plugin}.js ${PKGDIR}/plugins.${plugin}/data/${WITH_PLUGINDIR}
85 )
86 endforeach ()
87
88 # Target for building the package.
89 add_custom_target(
90 package_ifw
91 ${PLUGIN_COMMANDS}
92 COMMAND
93 ${CMAKE_COMMAND} -E copy $<TARGET_FILE:irccd> ${PKGDIR}/base.irccd/data/${WITH_BINDIR}
94 COMMAND
95 ${CMAKE_COMMAND} -E copy $<TARGET_FILE:irccdctl> ${PKGDIR}/base.irccdctl/data/${WITH_BINDIR}
96 COMMAND
97 ${CMAKE_COMMAND} -E copy_directory ${IRCCD_FAKEDIR}/${WITH_DOCDIR} ${PKGDIR}/docs/data/${WITH_DOCDIR}
98 COMMAND
99 ${QtIFW_CREATOR} -c ${CONFDIR}/config.xml -p ${PKGDIR} ${CMAKE_BINARY_DIR}/${PKGNAME}
100 COMMENT "Generating ${CMAKE_BINARY_DIR}/${PKGNAME}"
101 DEPENDS ${dependencies}
102 VERBATIM
103 )
104 endif ()