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