Mercurial > irccd
annotate lib/CMakeLists.txt @ 1201:67fa43998a91 default tip @
misc: update copyright years
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 04 Jan 2024 10:39:43 +0100 |
parents | efbe36bf020b |
children |
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 # |
1201
67fa43998a91
misc: update copyright years
David Demelier <markand@malikania.fr>
parents:
1200
diff
changeset
|
4 # Copyright (c) 2013-2024 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}) |
1200
efbe36bf020b
lib: make sure nobody use conn.h
David Demelier <markand@malikania.fr>
parents:
1183
diff
changeset
|
108 source_group(irccd FILES ${SOURCES} ${HEADERS} ${PRIVHEADERS}) |