Mercurial > irccd
annotate cmake/IrccdOptions.cmake @ 827:2ecff01d4277
cmake: start moving options from IrccdOptions.cmake
author | David Demelier <markand@malikania.fr> |
---|---|
date | Tue, 15 Jan 2019 20:13:44 +0100 |
parents | 06cc2f95f479 |
children | 00a4720c4874 |
rev | line source |
---|---|
0 | 1 # |
827
2ecff01d4277
cmake: start moving options from IrccdOptions.cmake
David Demelier <markand@malikania.fr>
parents:
824
diff
changeset
|
2 # IrccdOptions.cmake -- CMake build system for irccd |
0 | 3 # |
824
06cc2f95f479
misc: happy new year!
David Demelier <markand@malikania.fr>
parents:
817
diff
changeset
|
4 # Copyright (c) 2013-2019 David Demelier <markand@malikania.fr> |
0 | 5 # |
6 # Permission to use, copy, modify, and/or distribute this software for any | |
7 # purpose with or without fee is hereby granted, provided that the above | |
8 # copyright notice and this permission notice appear in all copies. | |
9 # | |
10 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
11 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
12 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
13 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
14 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
15 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
16 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
17 # | |
18 | |
19 # | |
20 # Options that controls the build: | |
21 # | |
701
2007a37d7e1a
CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents:
694
diff
changeset
|
22 # IRCCD_WITH_DOCS Enable building of all documentation (default: on) |
2007a37d7e1a
CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents:
694
diff
changeset
|
23 # IRCCD_WITH_DOXYGEN Enable internal irccd documentation (default: on) |
2007a37d7e1a
CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents:
694
diff
changeset
|
24 # IRCCD_WITH_HTML Enable HTML documentation |
2007a37d7e1a
CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents:
694
diff
changeset
|
25 # IRCCD_WITH_JS Enable JavaScript (default: on) |
2007a37d7e1a
CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents:
694
diff
changeset
|
26 # IRCCD_WITH_LIBEDIT Enable libedit support (default: on) |
2007a37d7e1a
CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents:
694
diff
changeset
|
27 # IRCCD_WITH_MAN Install manpages (default: on, off for Windows) |
2007a37d7e1a
CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents:
694
diff
changeset
|
28 # IRCCD_WITH_PKGCONFIG Install pkg-config files (default: on, off for Windows (except MinGW)) |
2007a37d7e1a
CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents:
694
diff
changeset
|
29 # IRCCD_WITH_PLUGIN_<NAME> Enable or disable the specified plugin (default: on) |
2007a37d7e1a
CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents:
694
diff
changeset
|
30 # IRCCD_WITH_SSL Enable OpenSSL (default: on) |
2007a37d7e1a
CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents:
694
diff
changeset
|
31 # IRCCD_WITH_TESTS Enable unit testing (default: off) |
0 | 32 # |
701
2007a37d7e1a
CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents:
694
diff
changeset
|
33 # Note: the option() commands for IRCCD_WITH_PLUGIN_<name> variables are |
2007a37d7e1a
CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents:
694
diff
changeset
|
34 # defined automatically from the IRCCD_PLUGINS list. |
0 | 35 # |
36 | |
37 # Manual pages on Windows are pretty useless. | |
38 if (WIN32) | |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
39 set(DEFAULT_MAN "No") |
0 | 40 else () |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
41 set(DEFAULT_MAN "Yes") |
0 | 42 endif () |
43 | |
74
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
39
diff
changeset
|
44 # pkg-config is only relevant on UNIX or MinGW |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
39
diff
changeset
|
45 if (MINGW OR UNIX) |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
46 set(DEFAULT_PKGCONFIG "Yes") |
74
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
39
diff
changeset
|
47 else () |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
48 set(DEFAULT_PKGCONFIG "No") |
74
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
39
diff
changeset
|
49 endif () |
35ef15100de8
CMake: install pkg-config file, #440
David Demelier <markand@malikania.fr>
parents:
39
diff
changeset
|
50 |
701
2007a37d7e1a
CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents:
694
diff
changeset
|
51 option(IRCCD_WITH_DOCS "Enable building of all documentation" On) |
2007a37d7e1a
CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents:
694
diff
changeset
|
52 option(IRCCD_WITH_DOXYGEN "Enable doxygen" Off) |
2007a37d7e1a
CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents:
694
diff
changeset
|
53 option(IRCCD_WITH_HTML "Enable building of HTML documentation" On) |
2007a37d7e1a
CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents:
694
diff
changeset
|
54 option(IRCCD_WITH_JS "Enable embedded Duktape" On) |
2007a37d7e1a
CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents:
694
diff
changeset
|
55 option(IRCCD_WITH_LIBEDIT "Enable libedit support" On) |
2007a37d7e1a
CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents:
694
diff
changeset
|
56 option(IRCCD_WITH_MAN "Install man pages" ${DEFAULT_MAN}) |
2007a37d7e1a
CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents:
694
diff
changeset
|
57 option(IRCCD_WITH_PKGCONFIG "Enable pkg-config file" ${DEFAULT_PKGCONFIG}) |
2007a37d7e1a
CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents:
694
diff
changeset
|
58 option(IRCCD_WITH_SSL "Enable SSL" On) |
2007a37d7e1a
CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents:
694
diff
changeset
|
59 option(IRCCD_WITH_TESTS "Enable unit testing" Off) |
0 | 60 |
374
e9adab218027
Misc: various code cleanup
David Demelier <markand@malikania.fr>
parents:
257
diff
changeset
|
61 # |
e9adab218027
Misc: various code cleanup
David Demelier <markand@malikania.fr>
parents:
257
diff
changeset
|
62 # Internal dependencies. |
e9adab218027
Misc: various code cleanup
David Demelier <markand@malikania.fr>
parents:
257
diff
changeset
|
63 # ------------------------------------------------------------------- |
e9adab218027
Misc: various code cleanup
David Demelier <markand@malikania.fr>
parents:
257
diff
changeset
|
64 # |
0 | 65 |
701
2007a37d7e1a
CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents:
694
diff
changeset
|
66 if (IRCCD_WITH_JS) |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
67 add_subdirectory(extern/duktape) |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
68 set(IRCCD_HAVE_JS On) |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
69 set(IRCCD_WITH_JS_MSG "Yes") |
0 | 70 else () |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
71 set(IRCCD_WITH_JS_MSG "No") |
0 | 72 endif () |
73 | |
701
2007a37d7e1a
CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents:
694
diff
changeset
|
74 if (IRCCD_WITH_TESTS) |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
75 set(IRCCD_WITH_TESTS_MSG "Yes") |
0 | 76 else () |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
77 set(IRCCD_WITH_TESTS_MSG "No") |
0 | 78 endif () |
79 | |
374
e9adab218027
Misc: various code cleanup
David Demelier <markand@malikania.fr>
parents:
257
diff
changeset
|
80 # |
e9adab218027
Misc: various code cleanup
David Demelier <markand@malikania.fr>
parents:
257
diff
changeset
|
81 # External dependencies. |
e9adab218027
Misc: various code cleanup
David Demelier <markand@malikania.fr>
parents:
257
diff
changeset
|
82 # ------------------------------------------------------------------- |
e9adab218027
Misc: various code cleanup
David Demelier <markand@malikania.fr>
parents:
257
diff
changeset
|
83 # |
0 | 84 |
85 find_package(Doxygen) | |
552
bf6a1fb7c45a
CMake: find TCL and disable vera++
David Demelier <markand@malikania.fr>
parents:
548
diff
changeset
|
86 find_package(OpenSSL) |
817
ebe561276c33
doc: start reworking, continue #752 @8h
David Demelier <markand@malikania.fr>
parents:
810
diff
changeset
|
87 find_package(marker) |
620
c79ae2987955
Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
561
diff
changeset
|
88 find_package(Editline) |
0 | 89 |
701
2007a37d7e1a
CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents:
694
diff
changeset
|
90 if (IRCCD_WITH_LIBEDIT) |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
91 if (Editline_FOUND) |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
92 set(IRCCD_HAVE_LIBEDIT On) |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
93 set(IRCCD_WITH_LIBEDIT_MSG "Yes") |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
94 else () |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
95 set(IRCCD_WITH_LIBEDIT_MSG "No (libedit not found)") |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
96 endif () |
620
c79ae2987955
Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
561
diff
changeset
|
97 else () |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
98 set(IRCCD_WITH_LIBEDIT_MSG "No (disabled by user)") |
620
c79ae2987955
Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
561
diff
changeset
|
99 endif () |
c79ae2987955
Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
561
diff
changeset
|
100 |
701
2007a37d7e1a
CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents:
694
diff
changeset
|
101 if (IRCCD_WITH_SSL) |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
102 if (OPENSSL_FOUND) |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
103 set(IRCCD_HAVE_SSL On) |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
104 set(IRCCD_WITH_SSL_MSG "Yes") |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
105 else () |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
106 set(IRCCD_WITH_SSL_MSG "No (OpenSSL not found)") |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
107 endif () |
0 | 108 else() |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
109 set(IRCCD_WITH_SSL_MSG "No (disabled by user)") |
0 | 110 endif () |
111 | |
701
2007a37d7e1a
CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents:
694
diff
changeset
|
112 if (IRCCD_WITH_DOXYGEN) |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
113 if (DOXYGEN_FOUND) |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
114 set(IRCCD_HAVE_DOXYGEN On) |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
115 set(IRCCD_WITH_DOXYGEN_MSG "Yes") |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
116 else () |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
117 set(IRCCD_WITH_DOXYGEN_MSG "No (doxygen not found)") |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
118 endif () |
0 | 119 else () |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
120 set(IRCCD_WITH_DOXYGEN_MSG "No (disabled by user)") |
0 | 121 endif () |
122 | |
123 # | |
124 # Determine if allowed to package. | |
125 # ------------------------------------------------------------------- | |
126 # | |
127 # Do not move this section because irccd's CMake functions requires the IRCCD_PACKAGE value. | |
128 # | |
129 | |
130 set(IRCCD_PACKAGE FALSE) | |
131 | |
101
113d909fdfe1
CMake: disallow absolute paths, #389
David Demelier <markand@malikania.fr>
parents:
75
diff
changeset
|
132 if (NOT WITH_HTML) |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
133 set(IRCCD_PACKAGE_MSG "No (HTML documentation disabled)") |
0 | 134 else () |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
135 # Now check that a plugin has not been disabled. |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
136 set(IRCCD_PACKAGE TRUE) |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
137 set(IRCCD_PACKAGE_MSG "Yes") |
0 | 138 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
139 foreach (plugin ${IRCCD_PLUGINS}) |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
140 string(TOUPPER ${plugin} optname) |
0 | 141 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
142 if (NOT IRCCD_WITH_PLUGIN_${optname}) |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
143 set(IRCCD_PACKAGE FALSE) |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
144 set(IRCCD_PACKAGE_MSG "No (Plugin ${plugin} disabled)") |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
145 endif () |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
709
diff
changeset
|
146 endforeach () |
0 | 147 endif () |