Mercurial > irccd
annotate CMakeLists.txt @ 1009:637a98de3910
misc: add more examples
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 17 Feb 2021 19:45:00 +0100 |
parents | 5eaa2a6aa0dc |
children |
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 cmake_minimum_required(VERSION 3.12) |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 project(irccd) |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 set_property(GLOBAL PROPERTY USE_FOLDERS On) |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 set(IRCCD_VERSION_MAJOR 4) |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
25 set(IRCCD_VERSION_MINOR 0) |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
26 set(IRCCD_VERSION_PATCH 0) |
995
0d71bfa6c97a
tests: add plugin tests
David Demelier <markand@malikania.fr>
parents:
992
diff
changeset
|
27 set(IRCCD_VERSION "${IRCCD_VERSION_MAJOR}.${IRCCD_VERSION_MINOR}.${IRCCD_VERSION_PATCH}") |
948
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
28 |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
29 option(IRCCD_WITH_JS "Enable Javascript" On) |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
30 option(IRCCD_WITH_SSL "Enable SSL support" On) |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
31 option(IRCCD_WITH_IRCCD "Enable irccd daemon" On) |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
32 option(IRCCD_WITH_IRCCDCTL "Enable irccdctl utility" On) |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
33 option(IRCCD_WITH_TESTS "Enable unit tests" Off) |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
34 |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
35 if (CMAKE_C_COMPILER_ID MATCHES "GNU|Clang") |
956
5e682f1cebcc
irccd: improve SSL support and add basic whois
David Demelier <markand@malikania.fr>
parents:
950
diff
changeset
|
36 set(CMAKE_C_FLAGS "-Wall -Wextra ${CMAKE_C_FLAGS}") |
948
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
37 endif () |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
38 |
1006
5eaa2a6aa0dc
misc: many fixes for Linux
David Demelier <markand@malikania.fr>
parents:
996
diff
changeset
|
39 set(CMAKE_POSITION_INDEPENDENT_CODE On) |
5eaa2a6aa0dc
misc: many fixes for Linux
David Demelier <markand@malikania.fr>
parents:
996
diff
changeset
|
40 |
948
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 include(GNUInstallDirs) |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
42 |
986
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
975
diff
changeset
|
43 include(cmake/IrccdDefinePlugin.cmake) |
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
975
diff
changeset
|
44 |
967
8becffd7617a
irccd: initial import of configuration file
David Demelier <markand@malikania.fr>
parents:
956
diff
changeset
|
45 find_package(FLEX REQUIRED) |
8becffd7617a
irccd: initial import of configuration file
David Demelier <markand@malikania.fr>
parents:
956
diff
changeset
|
46 find_package(BISON REQUIRED) |
8becffd7617a
irccd: initial import of configuration file
David Demelier <markand@malikania.fr>
parents:
956
diff
changeset
|
47 |
950
9fcb0038fe0a
irccd: bring SSL support back
David Demelier <markand@malikania.fr>
parents:
948
diff
changeset
|
48 if (IRCCD_WITH_SSL) |
9fcb0038fe0a
irccd: bring SSL support back
David Demelier <markand@malikania.fr>
parents:
948
diff
changeset
|
49 find_package(OpenSSL REQUIRED) |
9fcb0038fe0a
irccd: bring SSL support back
David Demelier <markand@malikania.fr>
parents:
948
diff
changeset
|
50 endif () |
9fcb0038fe0a
irccd: bring SSL support back
David Demelier <markand@malikania.fr>
parents:
948
diff
changeset
|
51 |
948
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
52 add_subdirectory(extern/libcompat) |
975
5ffc8350e84b
irccdctl: add support for rule editing
David Demelier <markand@malikania.fr>
parents:
967
diff
changeset
|
53 add_subdirectory(extern/libketopt) |
948
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 if (IRCCD_WITH_JS) |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
56 add_subdirectory(extern/libduktape) |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
57 endif () |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
58 |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
59 add_subdirectory(lib) |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
60 add_subdirectory(irccd) |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
61 add_subdirectory(irccdctl) |
1009
637a98de3910
misc: add more examples
David Demelier <markand@malikania.fr>
parents:
1006
diff
changeset
|
62 add_subdirectory(examples) |
986
583d9f83e9f5
irccd: bring back Javascript plugins
David Demelier <markand@malikania.fr>
parents:
975
diff
changeset
|
63 add_subdirectory(plugins) |
996 | 64 add_subdirectory(man) |
948
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
65 |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
66 if (IRCCD_WITH_TESTS) |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
67 enable_testing() |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
68 add_subdirectory(extern/libgreatest) |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
69 add_subdirectory(tests) |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
70 endif () |