annotate lib/CMakeLists.txt @ 1140:206bf06a6bea

irccdctl: fix mode in watch command
author David Demelier <markand@malikania.fr>
date Thu, 03 Feb 2022 13:10:47 +0100
parents f06e9761cc90
children 1845a0509a93
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1098
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 #
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 # CMakeLists.txt -- CMake build system for irccd
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 #
1136
f06e9761cc90 misc: update copyright years
David Demelier <markand@malikania.fr>
parents: 1123
diff changeset
4 # Copyright (c) 2013-2022 David Demelier <markand@malikania.fr>
1098
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 #
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 # Permission to use, copy, modify, and/or distribute this software for any
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 # purpose with or without fee is hereby granted, provided that the above
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 # copyright notice and this permission notice appear in all copies.
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 #
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 #
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 project(libirccd)
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
20
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 set(
1100
792730ae5c77 cmake: improve IDE structure
David Demelier <markand@malikania.fr>
parents: 1098
diff changeset
22 LIBBSD_SOURCES
1098
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 ${irccd_SOURCE_DIR}/extern/libbsd/strlcpy.c
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 ${irccd_SOURCE_DIR}/extern/libbsd/strlcat.c
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 ${irccd_SOURCE_DIR}/extern/libbsd/reallocarray.c
1100
792730ae5c77 cmake: improve IDE structure
David Demelier <markand@malikania.fr>
parents: 1098
diff changeset
26 )
792730ae5c77 cmake: improve IDE structure
David Demelier <markand@malikania.fr>
parents: 1098
diff changeset
27
792730ae5c77 cmake: improve IDE structure
David Demelier <markand@malikania.fr>
parents: 1098
diff changeset
28 set(
1117
ef91ec313ea2 lib: install headers
David Demelier <markand@malikania.fr>
parents: 1116
diff changeset
29 HEADERS
1098
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 ${libirccd_SOURCE_DIR}/irccd/channel.h
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 ${libirccd_SOURCE_DIR}/irccd/event.h
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 ${libirccd_SOURCE_DIR}/irccd/hook.h
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 ${libirccd_SOURCE_DIR}/irccd/irccd.h
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 ${libirccd_SOURCE_DIR}/irccd/limits.h
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 ${libirccd_SOURCE_DIR}/irccd/log.h
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 ${libirccd_SOURCE_DIR}/irccd/plugin.h
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 ${libirccd_SOURCE_DIR}/irccd/rule.h
1117
ef91ec313ea2 lib: install headers
David Demelier <markand@malikania.fr>
parents: 1116
diff changeset
38 ${libirccd_SOURCE_DIR}/irccd/server.h
ef91ec313ea2 lib: install headers
David Demelier <markand@malikania.fr>
parents: 1116
diff changeset
39 ${libirccd_SOURCE_DIR}/irccd/subst.h
ef91ec313ea2 lib: install headers
David Demelier <markand@malikania.fr>
parents: 1116
diff changeset
40 ${libirccd_SOURCE_DIR}/irccd/util.h
ef91ec313ea2 lib: install headers
David Demelier <markand@malikania.fr>
parents: 1116
diff changeset
41 )
ef91ec313ea2 lib: install headers
David Demelier <markand@malikania.fr>
parents: 1116
diff changeset
42
ef91ec313ea2 lib: install headers
David Demelier <markand@malikania.fr>
parents: 1116
diff changeset
43 set(
ef91ec313ea2 lib: install headers
David Demelier <markand@malikania.fr>
parents: 1116
diff changeset
44 PRIVHEADERS
ef91ec313ea2 lib: install headers
David Demelier <markand@malikania.fr>
parents: 1116
diff changeset
45 ${libirccd_SOURCE_DIR}/irccd/conn.h
ef91ec313ea2 lib: install headers
David Demelier <markand@malikania.fr>
parents: 1116
diff changeset
46 )
ef91ec313ea2 lib: install headers
David Demelier <markand@malikania.fr>
parents: 1116
diff changeset
47
ef91ec313ea2 lib: install headers
David Demelier <markand@malikania.fr>
parents: 1116
diff changeset
48 set(
ef91ec313ea2 lib: install headers
David Demelier <markand@malikania.fr>
parents: 1116
diff changeset
49 SOURCES
ef91ec313ea2 lib: install headers
David Demelier <markand@malikania.fr>
parents: 1116
diff changeset
50 ${libirccd_SOURCE_DIR}/irccd/channel.c
ef91ec313ea2 lib: install headers
David Demelier <markand@malikania.fr>
parents: 1116
diff changeset
51 ${libirccd_SOURCE_DIR}/irccd/conn.c
ef91ec313ea2 lib: install headers
David Demelier <markand@malikania.fr>
parents: 1116
diff changeset
52 ${libirccd_SOURCE_DIR}/irccd/event.c
ef91ec313ea2 lib: install headers
David Demelier <markand@malikania.fr>
parents: 1116
diff changeset
53 ${libirccd_SOURCE_DIR}/irccd/hook.c
ef91ec313ea2 lib: install headers
David Demelier <markand@malikania.fr>
parents: 1116
diff changeset
54 ${libirccd_SOURCE_DIR}/irccd/irccd.c
ef91ec313ea2 lib: install headers
David Demelier <markand@malikania.fr>
parents: 1116
diff changeset
55 ${libirccd_SOURCE_DIR}/irccd/log.c
ef91ec313ea2 lib: install headers
David Demelier <markand@malikania.fr>
parents: 1116
diff changeset
56 ${libirccd_SOURCE_DIR}/irccd/plugin.c
ef91ec313ea2 lib: install headers
David Demelier <markand@malikania.fr>
parents: 1116
diff changeset
57 ${libirccd_SOURCE_DIR}/irccd/rule.c
1098
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 ${libirccd_SOURCE_DIR}/irccd/server.c
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 ${libirccd_SOURCE_DIR}/irccd/subst.c
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 ${libirccd_SOURCE_DIR}/irccd/util.c
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 )
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
62
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 configure_file(
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 ${libirccd_SOURCE_DIR}/irccd/config.h.in
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 ${libirccd_BINARY_DIR}/irccd/config.h
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 )
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
67
1117
ef91ec313ea2 lib: install headers
David Demelier <markand@malikania.fr>
parents: 1116
diff changeset
68 add_library(libirccd STATIC ${LIBBSD_SOURCES} ${SOURCES} ${HEADERS} ${PRIVHEADERS})
1107
02c1b78b9b58 cmake: rename some targets and explain
David Demelier <markand@malikania.fr>
parents: 1106
diff changeset
69 target_link_libraries(libirccd PUBLIC libirccd-utlist)
1098
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 target_include_directories(
1107
02c1b78b9b58 cmake: rename some targets and explain
David Demelier <markand@malikania.fr>
parents: 1106
diff changeset
71 libirccd
1098
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 PUBLIC
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 $<BUILD_INTERFACE:${libirccd_SOURCE_DIR}>
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
74 $<BUILD_INTERFACE:${libirccd_BINARY_DIR}>
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 $<BUILD_INTERFACE:${libirccd_BINARY_DIR}/irccd>
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
76 PRIVATE
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 $<BUILD_INTERFACE:${libirccd_BINARY_DIR}/irccd>
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 )
1107
02c1b78b9b58 cmake: rename some targets and explain
David Demelier <markand@malikania.fr>
parents: 1106
diff changeset
79 set_target_properties(libirccd PROPERTIES PREFIX "")
1098
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
80
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 if (IRCCD_WITH_JS)
1107
02c1b78b9b58 cmake: rename some targets and explain
David Demelier <markand@malikania.fr>
parents: 1106
diff changeset
82 target_link_libraries(libirccd PUBLIC libirccd-duktape)
1098
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
83 endif ()
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 if (IRCCD_WITH_SSL)
1107
02c1b78b9b58 cmake: rename some targets and explain
David Demelier <markand@malikania.fr>
parents: 1106
diff changeset
85 target_link_libraries(libirccd PUBLIC OpenSSL::SSL OpenSSL::Crypto)
1098
6c15d37b7518 cmake: switch back to CMake because of portability issues
David Demelier <markand@malikania.fr>
parents:
diff changeset
86 endif ()
1110
8c53096eef1e cmake: add pkg-config file support
David Demelier <markand@malikania.fr>
parents: 1107
diff changeset
87 if (IRCCD_WITH_PKGCONFIG)
8c53096eef1e cmake: add pkg-config file support
David Demelier <markand@malikania.fr>
parents: 1107
diff changeset
88 configure_file(
8c53096eef1e cmake: add pkg-config file support
David Demelier <markand@malikania.fr>
parents: 1107
diff changeset
89 ${libirccd_SOURCE_DIR}/irccd.pc.in
8c53096eef1e cmake: add pkg-config file support
David Demelier <markand@malikania.fr>
parents: 1107
diff changeset
90 ${libirccd_BINARY_DIR}/irccd.pc
8c53096eef1e cmake: add pkg-config file support
David Demelier <markand@malikania.fr>
parents: 1107
diff changeset
91 )
8c53096eef1e cmake: add pkg-config file support
David Demelier <markand@malikania.fr>
parents: 1107
diff changeset
92 install(
8c53096eef1e cmake: add pkg-config file support
David Demelier <markand@malikania.fr>
parents: 1107
diff changeset
93 FILES ${libirccd_BINARY_DIR}/irccd.pc
8c53096eef1e cmake: add pkg-config file support
David Demelier <markand@malikania.fr>
parents: 1107
diff changeset
94 DESTINATION ${IRCCD_WITH_PKGCONFIGDIR}
8c53096eef1e cmake: add pkg-config file support
David Demelier <markand@malikania.fr>
parents: 1107
diff changeset
95 )
8c53096eef1e cmake: add pkg-config file support
David Demelier <markand@malikania.fr>
parents: 1107
diff changeset
96 endif ()
1100
792730ae5c77 cmake: improve IDE structure
David Demelier <markand@malikania.fr>
parents: 1098
diff changeset
97
1117
ef91ec313ea2 lib: install headers
David Demelier <markand@malikania.fr>
parents: 1116
diff changeset
98 install(
ef91ec313ea2 lib: install headers
David Demelier <markand@malikania.fr>
parents: 1116
diff changeset
99 FILES ${HEADERS}
ef91ec313ea2 lib: install headers
David Demelier <markand@malikania.fr>
parents: 1116
diff changeset
100 DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/irccd
ef91ec313ea2 lib: install headers
David Demelier <markand@malikania.fr>
parents: 1116
diff changeset
101 )
ef91ec313ea2 lib: install headers
David Demelier <markand@malikania.fr>
parents: 1116
diff changeset
102 install(
ef91ec313ea2 lib: install headers
David Demelier <markand@malikania.fr>
parents: 1116
diff changeset
103 FILES ${libirccd_BINARY_DIR}/irccd/config.h
ef91ec313ea2 lib: install headers
David Demelier <markand@malikania.fr>
parents: 1116
diff changeset
104 DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/irccd
ef91ec313ea2 lib: install headers
David Demelier <markand@malikania.fr>
parents: 1116
diff changeset
105 )
ef91ec313ea2 lib: install headers
David Demelier <markand@malikania.fr>
parents: 1116
diff changeset
106
1100
792730ae5c77 cmake: improve IDE structure
David Demelier <markand@malikania.fr>
parents: 1098
diff changeset
107 source_group(extern/libbsd FILES ${LIBBSD_SOURCES})
1123
6457999bfb7a lib: irc_bot_post use a linked list instead
David Demelier <markand@malikania.fr>
parents: 1117
diff changeset
108 source_group(irccd FILES ${SOURCES} ${HEADERS})