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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
2da5064d0cff irccd: add hooks
David Demelier <markand@malikania.fr>
parents: 966
diff changeset
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
2899474aefd7 irccd: misc cleanups
David Demelier <markand@malikania.fr>
parents: 950
diff changeset
133
2899474aefd7 irccd: misc cleanups
David Demelier <markand@malikania.fr>
parents: 950
diff changeset
134 source_group(TREE ${libirccd_SOURCE_DIR} FILES ${SOURCES})