debian: fix build-deps for focal
[amule.git] / cmake / options.cmake
blob88caac77a738a9644628afa91c62aa44755f5012
2 # This file is part of the aMule Project.
4 # Copyright (c) 2011 Werner Mahr (Vollstrecker) <amule@vollstreckernet.de>
6 # Any parts of this program contributed by third-party developers are copyrighted
7 # by their respective authors.
9 # This program is free software; you can redistribute it and/or modify
10 # it under the terms of the GNU General Public License as published by
11 # the Free Software Foundation; either version 3 of the License, or
12 # (at your option) any later version.
14 # This program is distributed in the hope that it will be useful,
15 # but WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 # GNU General Public License for more details.
19 # You should have received a copy of the GNU General Public License
20 # along with this program; if not, write to the Free Software
21 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
23 # This file contains the options for en- or disabling parts of aMule, and
24 # sets the needed variables for them to compile
27 option (BUILD_ALC "compile aLinkCreator GUI version")
28 option (BUILD_ALCC "compile aLinkCreator for console")
29 option (BUILD_AMULECMD "compile aMule command line client")
31 if (UNIX)
32         option (BUILD_CAS "compile C aMule Statistics")
33 endif()
35 option (BUILD_DAEMON "compile aMule daemon version")
36 option (BUILD_ED2K "compile aMule ed2k links handler" ON)
37 option (BUILD_EVERYTHING "compile all parts of aMule")
38 option (BUILD_FILEVIEW "compile aMule file viewer for console (EXPERIMENTAL)")
39 option (BUILD_MONOLITHIC "enable building of the monolithic aMule app" ON)
41 if (UNIX)
42         option (BUILD_PLASMAMULE "compile aMule plasma applet and engine")
43 endif()
45 option (BUILD_REMOTEGUI "compile aMule remote GUI")
46 option (BUILD_WEBSERVER "compile aMule WebServer")
47 option (BUILD_WXCAS "compile aMule GUI Statistics")
48 option (BUILD_XAS "install xas XChat2 plugin")
49 option (BUILD_TESTING "Run Tests after compile" ON)
51 if (PREFIX)
52         set (CMAKE_INSTALL_PREFIX "${PREFIX}")
53 endif()
55 include (GNUInstallDirs)
57 set (PKGDATADIR "${CMAKE_INSTALL_DATADIR}/${PACKAGE}")
59 if (BUILD_EVERYTHING)
60         set (BUILD_ALC ON CACHE BOOL "compile aLinkCreator GUI version" FORCE)
61         set (BUILD_ALCC ON CACHE BOOL "compile aLinkCreator for console" FORCE)
62         set (BUILD_AMULECMD ON CACHE BOOL "compile aMule command line client" FORCE)
64         if (UNIX)
65                 set (BUILD_CAS ON CACHE BOOL "compile C aMule Statistics" FORCE)
66         endif()
68         set (BUILD_DAEMON ON CACHE BOOL "compile aMule daemon version" FORCE)
69         set (BUILD_FILEVIEW ON CACHE BOOL "compile aMule file viewer for console (EXPERIMENTAL)" FORCE)
71 #       if (UNIX)
72 #               set (BUILD_PLASMAMULE ON CACHE BOOL )
73 #       endif()
75         set (BUILD_REMOTEGUI ON CACHE BOOL "compile aMule remote GUI" FORCE)
76         set (BUILD_WEBSERVER ON CACHE BOOL "compile aMule WebServer" FORCE)
77         set (BUILD_WXCAS ON CACHE BOOL "compile aMule GUI Statistics" FORCE)
78         set (BUILD_XAS ON CACHE BOOL "install xas XChat2 plugin" FORCE)
79 endif()
81 if (BUILD_AMULECMD)
82         set (NEED_LIB_EC TRUE)
83         set (NEED_LIB_MULECOMMON TRUE)
84         set (NEED_LIB_MULESOCKET TRUE)
85         set (wx_NEED_NET TRUE)
86         set (NEED_ZLIB TRUE)
87 endif()
89 if (BUILD_CAS)
90         set (BUILD_UTIL TRUE)
91 endif()
93 if (BUILD_ALCC)
94         set (BUILD_UTIL TRUE)
95         set (wx_NEED_BASE TRUE)
96 endif()
98 if (BUILD_ALC)
99         set (BUILD_UTIL TRUE)
100         set (wx_NEED_GUI TRUE)
101 endif()
103 if (BUILD_XAS)
104         set (BUILD_UTIL TRUE)
105 endif()
107 if (BUILD_DAEMON)
108         set (NEED_LIB_EC TRUE)
109         set (NEED_LIB_MULEAPPCOMMON TRUE)
110         set (NEED_LIB_MULECOMMON TRUE)
111         set (NEED_LIB_MULESOCKET TRUE)
112         set (NEED_ZLIB TRUE)
113         set (wx_NEED_NET TRUE)
114 endif()
116 if (BUILD_ED2K)
117         set (wx_NEED_BASE TRUE)
118 endif()
120 if (BUILD_FILEVIEW)
121         set (BUILD_UTIL TRUE)
122         set (NEED_LIB_CRYPTO TRUE)
123         set (NEED_LIB_MULECOMMON TRUE)
124         set (wx_NEED_NET TRUE)
125 endif()
127 if (BUILD_MONOLITHIC)
128         set (NEED_LIB_EC TRUE)
129         set (NEED_LIB_MULEAPPGUI TRUE)
130         set (NEED_LIB_MULEAPPCOMMON TRUE)
131         set (NEED_LIB_MULECOMMON TRUE)
132         set (NEED_LIB_MULESOCKET TRUE)
133         set (NEED_ZLIB TRUE)
134         set (wx_NEED_ADV TRUE)
135         set (wx_NEED_NET TRUE)
136 endif()
138 if (BUILD_MONOLITHIC OR BUILD_REMOTEGUI)
139         set (INSTALL_SKINS TRUE)
140 endif()
142 if (BUILD_PLASMAMULE)
143         set (BUILD_UTIL TRUE)
144 endif()
146 if (BUILD_REMOTEGUI)
147         set (NEED_GLIB_CHECK TRUE)
148         set (NEED_LIB_EC TRUE)
149         set (NEED_LIB_MULEAPPCOMMON TRUE)
150         set (NEED_LIB_MULEAPPGUI TRUE)
151         set (NEED_LIB_MULECOMMON TRUE)
152         set (NEED_LIB_MULESOCKET TRUE)
153         set (NEED_ZLIB TRUE)
154         set (wx_NEED_ADV TRUE)
155         set (wx_NEED_NET TRUE)
156 endif()
158 if (BUILD_WEBSERVER)
159         set (NEED_LIB_EC TRUE)
160         set (NEED_LIB_MULECOMMON TRUE)
161         set (NEED_LIB_MULESOCKET TRUE)
162         set (NEED_ZLIB TRUE)
163         set (WEBSERVERDIR "${PKGDATADIR}/webserver/")
164         set (wx_NEED_NET TRUE)
165 endif()
167 if (BUILD_WXCAS)
168         set (BUILD_UTIL TRUE)
169         set (wx_NEED_GUI TRUE)
170         set (wx_NEED_NET TRUE)
171 endif()
173 if (NEED_LIB_EC)
174         set (NEED_LIB_CRYPTO TRUE)
175 endif()
177 if (NEED_LIB_MULECOMMON OR NEED_LIB_EC)
178         set (NEED_LIB TRUE)
179         set (wx_NEED_BASE TRUE)
180 endif()
182 if (NEED_LIB_MULECOMMON)
183         set (NEED_GLIB_CHECK TRUE)
184 endif()
186 if (NEED_LIB_MULEAPPCOMMON)
187         option (ENABLE_BOOST "compile with Boost.ASIO Sockets" ON)
188         option (ENABLE_IP2COUNTRY "compile with GeoIP IP2Country library")
189         option (ENABLE_MMAP "enable using mapped memory if supported")
190         option (ENABLE_NLS "enable national language support" ON)
191         set (NEED_LIB_MULEAPPCORE TRUE)
192         set (wx_NEED_BASE TRUE)
193 else()
194         set (ENABLE_BOOST FALSE)
195         set (ENABLE_IP2COUNTRY FALSE)
196         set (ENABLE_MMAP FALSE)
197         set (ENABLE_NLS FALSE)
198 endif()
200 if (NEED_LIB_MULEAPPGUI)
201         set (wx_NEED_GUI TRUE)
202 endif()
204 if (NEED_LIB_MULESOCKET)
205         set (wx_NEED_BASE TRUE)
206 endif()
208 if (ENABLE_BOOST AND NOT (BUILD_DAEMON OR BUILD_MONOLITHIC OR BUILD_REMOTEGUI OR BUILD_WXCAS))
209         set (wx_NEED_NET FALSE)
210 endif()
212 if (wx_NEED_ADV OR wx_NEED_BASE OR wx_NEED_GUI OR wx_NEED_NET)
213         set (wx_NEEDED TRUE)
215         if (WIN32 AND NOT wx_NEED_BASE)
216                 set (wx_NEED_BASE TRUE)
217         endif()
218 endif()
220 ADD_COMPILE_DEFINITIONS ($<$<CONFIG:DEBUG>:__DEBUG__>)
222 IF (WIN32)
223         ADD_COMPILE_DEFINITIONS ($<$<CONFIG:DEBUG>:wxDEBUG_LEVEL=0>)
224 ENDIF (WIN32)
226 if (NEED_LIB_MULEAPPCOMMON OR BUILD_WEBSERVER)
227         option (ENABLE_UPNP "enable UPnP support in aMule" ON)
228 endif()