Mercurial > irccd
annotate lib/CMakeLists.txt @ 1004:3ea3361f0fc7
irccd: now track modes
author | David Demelier <markand@malikania.fr> |
---|---|
date | Tue, 16 Feb 2021 18:37:22 +0100 |
parents | 0d71bfa6c97a |
children | 5eaa2a6aa0dc |
rev | line source |
---|---|
948
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 # |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 # CMakeLists.txt -- CMake build for irccd |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 # |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
4 # Copyright (c) 2013-2021 David Demelier <markand@malikania.fr> |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 # |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 # Permission to use, copy, modify, and/or distribute this software for any |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 # purpose with or without fee is hereby granted, provided that the above |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 # copyright notice and this permission notice appear in all copies. |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 # |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 # |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 project(libirccd) |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 |
992
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
21 include(CMakePackageConfigHelpers) |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
22 |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
23 set( |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
24 HEADERS |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
25 irccd/channel.h |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
26 irccd/conn.h |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
27 irccd/event.h |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
28 irccd/hook.h |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
29 irccd/irccd.h |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
30 irccd/limits.h |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
31 irccd/log.h |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
32 irccd/plugin.h |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
33 irccd/rule.h |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
34 irccd/server.h |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
35 irccd/subst.h |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
36 irccd/util.h |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
37 ) |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
38 |
948
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
39 set( |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
40 SOURCES |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 CMakeLists.txt |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
42 irccd/channel.c |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
43 irccd/config.h.in |
959
0d6e2a89fee5
irccd: split network code from server into conn.[ch]
David Demelier <markand@malikania.fr>
parents:
958
diff
changeset
|
44 irccd/conn.c |
953
ab43ba409f9d
irccd: add SSL, and cleanup events
David Demelier <markand@malikania.fr>
parents:
952
diff
changeset
|
45 irccd/event.c |
977 | 46 irccd/hook.c |
948
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
47 irccd/irccd.c |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
48 irccd/log.c |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
49 irccd/plugin.c |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
50 irccd/rule.c |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
51 irccd/server.c |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
52 irccd/subst.c |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
53 irccd/util.c |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
54 ) |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
55 |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
56 configure_file( |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
57 ${libirccd_SOURCE_DIR}/irccd/config.h.in |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
58 ${libirccd_BINARY_DIR}/irccd/config.h |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
59 ) |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
60 |
995
0d71bfa6c97a
tests: add plugin tests
David Demelier <markand@malikania.fr>
parents:
994
diff
changeset
|
61 add_library(libirccd-static ${SOURCES} ${HEADERS}) |
992
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
62 set_target_properties(libirccd-static PROPERTIES PREFIX "") |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
63 |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
64 # This is what we export to the world. |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
65 add_library(libirccd INTERFACE) |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
66 add_library(irccd::libirccd ALIAS libirccd) |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
67 |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
68 target_include_directories(libirccd INTERFACE |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
69 $<BUILD_INTERFACE:${libirccd-compat_BINARY_DIR}> |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
70 $<BUILD_INTERFACE:${libirccd_SOURCE_DIR}> |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
71 $<BUILD_INTERFACE:${libirccd_BINARY_DIR}> |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
72 $<BUILD_INTERFACE:${libirccd_BINARY_DIR}/irccd> |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
73 $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
74 $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/irccd/extern> |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
75 ${OPENSSL_INCLUDE_DIR} |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
76 ) |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
77 |
994
56114ae85868
cmake: add pkg-config file
David Demelier <markand@malikania.fr>
parents:
992
diff
changeset
|
78 target_include_directories( |
56114ae85868
cmake: add pkg-config file
David Demelier <markand@malikania.fr>
parents:
992
diff
changeset
|
79 libirccd-static |
56114ae85868
cmake: add pkg-config file
David Demelier <markand@malikania.fr>
parents:
992
diff
changeset
|
80 PUBLIC |
56114ae85868
cmake: add pkg-config file
David Demelier <markand@malikania.fr>
parents:
992
diff
changeset
|
81 $<BUILD_INTERFACE:${libirccd_BINARY_DIR}/irccd> |
56114ae85868
cmake: add pkg-config file
David Demelier <markand@malikania.fr>
parents:
992
diff
changeset
|
82 $<BUILD_INTERFACE:${libirccd_SOURCE_DIR}> |
56114ae85868
cmake: add pkg-config file
David Demelier <markand@malikania.fr>
parents:
992
diff
changeset
|
83 $<BUILD_INTERFACE:${libirccd_BINARY_DIR}> |
56114ae85868
cmake: add pkg-config file
David Demelier <markand@malikania.fr>
parents:
992
diff
changeset
|
84 ) |
56114ae85868
cmake: add pkg-config file
David Demelier <markand@malikania.fr>
parents:
992
diff
changeset
|
85 target_link_libraries(libirccd-static libirccd-compat) |
56114ae85868
cmake: add pkg-config file
David Demelier <markand@malikania.fr>
parents:
992
diff
changeset
|
86 |
56114ae85868
cmake: add pkg-config file
David Demelier <markand@malikania.fr>
parents:
992
diff
changeset
|
87 if (IRCCD_WITH_SSL) |
56114ae85868
cmake: add pkg-config file
David Demelier <markand@malikania.fr>
parents:
992
diff
changeset
|
88 target_link_libraries(libirccd-static OpenSSL::SSL OpenSSL::Crypto) |
56114ae85868
cmake: add pkg-config file
David Demelier <markand@malikania.fr>
parents:
992
diff
changeset
|
89 endif () |
56114ae85868
cmake: add pkg-config file
David Demelier <markand@malikania.fr>
parents:
992
diff
changeset
|
90 |
56114ae85868
cmake: add pkg-config file
David Demelier <markand@malikania.fr>
parents:
992
diff
changeset
|
91 # pkg-config file |
56114ae85868
cmake: add pkg-config file
David Demelier <markand@malikania.fr>
parents:
992
diff
changeset
|
92 if (APPLE) |
56114ae85868
cmake: add pkg-config file
David Demelier <markand@malikania.fr>
parents:
992
diff
changeset
|
93 set(EXTRA_LIBS "-undefined dynamic_lookup") |
56114ae85868
cmake: add pkg-config file
David Demelier <markand@malikania.fr>
parents:
992
diff
changeset
|
94 endif () |
56114ae85868
cmake: add pkg-config file
David Demelier <markand@malikania.fr>
parents:
992
diff
changeset
|
95 |
56114ae85868
cmake: add pkg-config file
David Demelier <markand@malikania.fr>
parents:
992
diff
changeset
|
96 configure_file( |
56114ae85868
cmake: add pkg-config file
David Demelier <markand@malikania.fr>
parents:
992
diff
changeset
|
97 ${libirccd_SOURCE_DIR}/irccd.pc |
56114ae85868
cmake: add pkg-config file
David Demelier <markand@malikania.fr>
parents:
992
diff
changeset
|
98 ${libirccd_BINARY_DIR}/irccd.pc |
56114ae85868
cmake: add pkg-config file
David Demelier <markand@malikania.fr>
parents:
992
diff
changeset
|
99 ) |
56114ae85868
cmake: add pkg-config file
David Demelier <markand@malikania.fr>
parents:
992
diff
changeset
|
100 |
992
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
101 write_basic_package_version_file(${libirccd_BINARY_DIR}/IrccdConfigVersion.cmake |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
102 VERSION ${IRCCD_VERSION} |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
103 COMPATIBILITY SameMajorVersion |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
104 ) |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
105 |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
106 install(TARGETS libirccd EXPORT IrccdTargets) |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
107 install( |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
108 EXPORT IrccdTargets |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
109 FILE IrccdTargets.cmake |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
110 NAMESPACE |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
111 irccd:: |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
112 DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/irccd |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
113 ) |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
114 install( |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
115 FILES |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
116 ${CMAKE_SOURCE_DIR}/cmake/IrccdDefinePlugin.cmake |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
117 ${libirccd_SOURCE_DIR}/IrccdConfig.cmake |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
118 ${libirccd_BINARY_DIR}/IrccdConfigVersion.cmake |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
119 DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/irccd |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
120 ) |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
121 |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
122 install( |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
123 FILES |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
124 ${HEADERS} |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
125 ${libirccd_BINARY_DIR}/irccd/config.h |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
126 DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/irccd |
462e12e434fb
cmake: add CMake configuration
David Demelier <markand@malikania.fr>
parents:
977
diff
changeset
|
127 ) |
948
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
128 |
994
56114ae85868
cmake: add pkg-config file
David Demelier <markand@malikania.fr>
parents:
992
diff
changeset
|
129 install( |
56114ae85868
cmake: add pkg-config file
David Demelier <markand@malikania.fr>
parents:
992
diff
changeset
|
130 FILES ${libirccd_BINARY_DIR}/irccd.pc |
56114ae85868
cmake: add pkg-config file
David Demelier <markand@malikania.fr>
parents:
992
diff
changeset
|
131 DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig |
948
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
132 ) |
952 | 133 |
134 source_group(TREE ${libirccd_SOURCE_DIR} FILES ${SOURCES}) |