view cmake/IrccdOptions.cmake @ 878:fb0adda67228 release-3.0

misc: added tag 3.0.0 for changeset 6baa070e083c
author David Demelier <markand@malikania.fr>
date Thu, 15 Aug 2019 22:35:58 +0200
parents 6af323b76970
children 5e25439fe98d
line wrap: on
line source

#
# IrccdOptions.cmake -- CMake build system for irccd
#
# Copyright (c) 2013-2019 David Demelier <markand@malikania.fr>
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#

#
# Options that controls the build:
#
# IRCCD_WITH_DOXYGEN        Enable internal irccd documentation (default: on)
# IRCCD_WITH_JS             Enable JavaScript (default: on)
# IRCCD_WITH_LIBEDIT        Enable libedit support (default: on)
# IRCCD_WITH_MAN            Install manpages (default: on)
# IRCCD_WITH_PKGCONFIG      Install pkg-config files (default: on, off for Windows (except MinGW))
# IRCCD_WITH_PLUGIN_<NAME>  Enable or disable the specified plugin (default: on)
# IRCCD_WITH_SSL            Enable OpenSSL (default: on)
# IRCCD_WITH_TESTS          Enable unit testing (default: off)
#
# Note: the option() commands for IRCCD_WITH_PLUGIN_<name> variables are
# defined automatically from the IRCCD_PLUGINS list.
#

# pkg-config is only relevant on UNIX or MinGW
if (MINGW OR UNIX)
	set(DEFAULT_PKGCONFIG "Yes")
else ()
	set(DEFAULT_PKGCONFIG "No")
endif ()

option(IRCCD_WITH_DOXYGEN "Enable doxygen" On)
option(IRCCD_WITH_JS "Enable embedded Duktape" On)
option(IRCCD_WITH_LIBEDIT "Enable libedit support" On)
option(IRCCD_WITH_PKGCONFIG "Enable pkg-config file" ${DEFAULT_PKGCONFIG})
option(IRCCD_WITH_SSL "Enable SSL" On)
option(IRCCD_WITH_TESTS "Enable unit testing" Off)

#
# Internal dependencies.
# -------------------------------------------------------------------
#

if (IRCCD_WITH_JS)
	add_subdirectory(extern/duktape)
	set(IRCCD_HAVE_JS On)
	set(IRCCD_WITH_JS_MSG "Yes")
else ()
	set(IRCCD_WITH_JS_MSG "No")
endif ()

if (IRCCD_WITH_TESTS)
	set(IRCCD_WITH_TESTS_MSG "Yes")
else ()
	set(IRCCD_WITH_TESTS_MSG "No")
endif ()

#
# External dependencies.
# -------------------------------------------------------------------
#

find_package(Doxygen)
find_package(OpenSSL)
find_package(Editline)

if (IRCCD_WITH_LIBEDIT)
	if (Editline_FOUND)
		set(IRCCD_HAVE_LIBEDIT On)
		set(IRCCD_WITH_LIBEDIT_MSG "Yes")
	else ()
		set(IRCCD_WITH_LIBEDIT_MSG "No (libedit not found)")
	endif ()
else ()
	set(IRCCD_WITH_LIBEDIT_MSG "No (disabled by user)")
endif ()

if (IRCCD_WITH_SSL)
	if (OPENSSL_FOUND)
		set(IRCCD_HAVE_SSL On)
		set(IRCCD_WITH_SSL_MSG "Yes")
	else ()
		set(IRCCD_WITH_SSL_MSG "No (OpenSSL not found)")
	endif ()
else()
	set(IRCCD_WITH_SSL_MSG "No (disabled by user)")
endif ()

if (IRCCD_WITH_DOXYGEN)
	if (DOXYGEN_FOUND)
		set(IRCCD_HAVE_DOXYGEN On)
		set(IRCCD_WITH_DOXYGEN_MSG "Yes")
	else ()
		set(IRCCD_WITH_DOXYGEN_MSG "No (doxygen not found)")
	endif ()
else ()
	set(IRCCD_WITH_DOXYGEN_MSG "No (disabled by user)")
endif ()

if (IRCCD_WITH_MAN)
	set(IRCCD_HAVE_MAN On)
	set(IRCCD_WITH_MAN_MSG "Yes")
else ()
	set(IRCCD_WITH_MAN_MSG "No (disabled by user)")
endif ()