Mercurial > irccd
annotate cmake/IrccdDefinePlugin.cmake @ 986:583d9f83e9f5
irccd: bring back Javascript plugins
While here, fix various small issues.
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 10 Feb 2021 13:20:39 +0100 |
parents | |
children | 685b85367c8e |
rev | line source |
---|---|
986
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 # |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 # CMakeLists.txt -- CMake build for irccd |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 # |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
4 # Copyright (c) 2013-2021 David Demelier <markand@malikania.fr> |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 # |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 # Permission to use, copy, modify, and/or distribute this software for any |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 # purpose with or without fee is hereby granted, provided that the above |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 # copyright notice and this permission notice appear in all copies. |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 # |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 # |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 function(irccd_define_js_plugin) |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 set(options "") |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 set(oneValueArgs NAME MAN) |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 set(multiValueArgs SCRIPT) |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 cmake_parse_arguments(PLG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
25 |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
26 if (NOT PLG_NAME) |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
27 message(FATAL_ERROR "Missing NAME argument") |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
28 elseif (NOT PLG_SCRIPT) |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
29 message(FATAL_ERROR "Missing SCRIPT argument") |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
30 endif () |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
31 |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
32 # Install script. |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
33 get_filename_component(basename ${PLG_SCRIPT} NAME) |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
34 configure_file(${PLG_SCRIPT} ${CMAKE_CURRENT_BINARY_DIR}/${basename}) |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
35 |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
36 install( |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
37 FILES ${CMAKE_CURRENT_BINARY_DIR}/${basename} |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
38 DESTINATION ${CMAKE_INSTALL_LIBDIR}/irccd |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
39 ) |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
40 |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 # Install manual page. |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
42 if (PLG_MAN) |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
43 get_filename_component(basename ${PLG_MAN} NAME) |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
44 configure_file(${PLG_MAN} ${CMAKE_CURRENT_BINARY_DIR}/${basename}) |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
45 |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 install( |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
47 FILES ${CMAKE_CURRENT_BINARY_DIR}/${basename} |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
48 DESTINATION ${CMAKE_INSTALL_MANDIR}/man7 |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
49 RENAME irccd-plugin-${basename} |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
50 ) |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
51 endif () |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
52 endfunction() |