annotate man/irccd-cmake.7 @ 1137:c165e975f144

man: improvements
author David Demelier <markand@malikania.fr>
date Wed, 02 Feb 2022 21:26:12 +0100
parents f06e9761cc90
children 1845a0509a93
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1126
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 .\"
1136
f06e9761cc90 misc: update copyright years
David Demelier <markand@malikania.fr>
parents: 1126
diff changeset
2 .\" Copyright (c) 2013-2022 David Demelier <markand@malikania.fr>
1126
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 .\"
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 .\" Permission to use, copy, modify, and/or distribute this software for any
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 .\" purpose with or without fee is hereby granted, provided that the above
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 .\" copyright notice and this permission notice appear in all copies.
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 .\"
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 .\"
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 .Dd @IRCCD_MAN_DATE@
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 .Dt IRCCD-CMAKE 7
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
18 .Os
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 .\" NAME
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 .Sh NAME
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 .Nm irccd-cmake
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 .Nd CMake macros provided by irccd
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 .\" SYNOPSIS
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 .Sh SYNOPSIS
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 .Fn irccd_define_native_plugin
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 .Fn irccd_define_javascript_plugin
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 .\" DESCRIPTION
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 .Sh DESCRIPTION
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 A config package is provided with irccd and the following macros.
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 .Pp
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 To include irccd with your CMake project, first import
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 .Em irccd
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 CMake package.
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 .Bd -literal -offset indent
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 find_package(irccd 4.0.0 REQUIRED)
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 .Ed
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 .Pp
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 No targets are exported because irccd provide its symbols through
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 .Xr dlopen 3
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 interface, as such native plugins don't have to link to irccd.
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 .Pp
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 .\" MACROS
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 .Sh MACROS
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 When available the following macros are available:
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 .Ss irccd_define_native_plugin
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 This macro creates a native C or C++ plugin with appropriate flags.
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 .Pp
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 Its usage is as follow:
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 .Bd -literal -offset indent
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 irccd_define_native_plugin(
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 NAME foo
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 SOURCES foo.c bar.c quux.c
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 [FLAGS compile-flags...]
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 [INCLUDES include-directories...]
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 [LIBRARIES link-libraries...]
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 [MAN manpage.7]
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 )
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 .Ed
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 .Pp
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 The other
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 .Fa SOURCES
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 argument contains the source code to compile which can be C or C++. See
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 .Xr libirccd 3
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 manual page on which symbols must at least be exported.
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 .Pp
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 The other
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 .Fa FLAGS , INCLUDES
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
68 and
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 .Fa LIBRARIES
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 control the compile flags, include directories and libraries to
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 link respectively. Usually you don't need to pass the compiler option.
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 .Ss irccd_define_javascript_plugin
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 This macro creates a Javascript plugin.
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
74 Its usage is as follow:
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 .Bd -literal -offset indent
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
76 irccd_define_javascript_plugin(
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 NAME foo
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 SCRIPT foo.js
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 [MAN manpage.7]
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 )
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 .Ed
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 .Pp
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
83 The
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 .Fa SCRIPT
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
85 argument contains a single Javascript file that should match the
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
86 .Fa NAME
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
87 argument.
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
88 .Pp
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
89 For both macros, the argument
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
90 .Fa NAME
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
91 must refer to the canical plugin name without any prefix or suffix. For
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
92 example, use
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
93 .Dq foo
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
94 rather than
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
95 .Dq libfoo
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
96 or
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
97 .Dq plugin-foo .
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
98 .Pp
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
99 The
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
100 .Fa MAN
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
101 argument contains a single manual page ending with .7 and should be the same
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
102 name as the
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
103 .Fa NAME
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
104 argument.
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
105 .Pp
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
106 Both macro creates an install target for those and will be installed into the
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
107 irccd plugin directory.
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
108 .\" EXAMPLES
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
109 .Sh EXAMPLES
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
110 .Ss Example of native plugin
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
111 In contrast to Javascript plugins, native plugins can have multiple sources.
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
112 They can link to external libraries.
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
113 .Pp
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
114 The following plugin called
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
115 .Dq translator
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
116 uses the external libcurl library with several source files.
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
117 .Bd -literal -offset indent
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
118 find_package(CURL REQUIRED)
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
119 find_package(irccd 4.0.0 REQUIRED)
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
120
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
121 irccd_define_native_plugin(
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
122 NAME translator
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
123 MAN translator.7
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
124 SOURCES translator.c translator.h main.c
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
125 LIBRARIES CURL::libcurl
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
126 FLAGS _BSD_SOURCE
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
127 )
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
128 .Ed
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
129 .Ss Example of Javascript plugin
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
130 The following example creates a rpg plugin.
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
131 .Bd -literal -offset indent
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
132 find_package(irccd 4.0.0 REQUIRED)
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
133
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
134 irccd_define_javascript_plugin(
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
135 NAME rpg
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
136 SCRIPT rpg.js
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
137 MAN rpg.7
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
138 )
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
139 .Ed
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
140 .\" SEE ALSO
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
141 .Sh SEE ALSO
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
142 .Xr libirccd 3
722fcb2930ea man: add irccd-cmake(7) manual page
David Demelier <markand@malikania.fr>
parents:
diff changeset
143 .Xr irccd-api 3
1137
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
144 .\" AUTHORS
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
145 .Sh AUTHORS
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
146 The
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
147 .Nm irccd
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
148 daemon was written by
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
149 .An David Demelier Aq Mt markand@malikania.fr .