Mercurial > irccd
view libirccd-core/CMakeLists.txt @ 796:1a6152af0866
misc: use ipv4 as option rather than family
Now, all sections and JSON options that require a IP family will take ipv4 and
ipv6 boolean options for convenience.
It reduces parsing complexity and is more convenient for the user.
Examples:
# IPv6 server only
[server]
name = example
port = 6667
hostname = example.org
ipv4 = false
ipv6 = true
# IPv4 transport only
[transport]
type = ip
ipv4 = true
ipv6 = false
port = 3320
If both options are defined (default everywhere), both protocols will be tried
or bound.
author | David Demelier <markand@malikania.fr> |
---|---|
date | Sun, 11 Nov 2018 14:56:04 +0100 |
parents | 2d188a3e8802 |
children | 2dfba38e93f0 |
line wrap: on
line source
# # CMakeLists.txt -- CMake build system for irccd # # Copyright (c) 2013-2018 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. # project(libirccd-core) find_package(Boost 1.60 REQUIRED QUIET COMPONENTS filesystem system) set( HEADERS ${libirccd-core_SOURCE_DIR}/irccd/acceptor.hpp ${libirccd-core_SOURCE_DIR}/irccd/config.hpp ${libirccd-core_SOURCE_DIR}/irccd/connector.hpp ${libirccd-core_SOURCE_DIR}/irccd/fs_util.hpp ${libirccd-core_SOURCE_DIR}/irccd/ini.hpp ${libirccd-core_SOURCE_DIR}/irccd/ini_util.hpp ${libirccd-core_SOURCE_DIR}/irccd/json_util.hpp ${libirccd-core_SOURCE_DIR}/irccd/options.hpp ${libirccd-core_SOURCE_DIR}/irccd/stream.hpp ${libirccd-core_SOURCE_DIR}/irccd/string_util.hpp ${libirccd-core_SOURCE_DIR}/irccd/system.hpp ${libirccd-core_SOURCE_DIR}/irccd/xdg.hpp ) set( SOURCES ${libirccd-core_SOURCE_DIR}/irccd/config.cpp ${libirccd-core_SOURCE_DIR}/irccd/fs_util.cpp ${libirccd-core_SOURCE_DIR}/irccd/ini.cpp ${libirccd-core_SOURCE_DIR}/irccd/json_util.cpp ${libirccd-core_SOURCE_DIR}/irccd/options.cpp ${libirccd-core_SOURCE_DIR}/irccd/string_util.cpp ${libirccd-core_SOURCE_DIR}/irccd/system.cpp ) set( LIBRARIES ${CMAKE_DL_LIBS} libjson Threads::Threads Boost::filesystem Boost::system ) if (CMAKE_SYSTEM_NAME MATCHES Windows) list(APPEND LIBRARIES mswsock shlwapi ws2_32) elseif (CMAKE_SYSTEM_NAME MATCHES "Linux") # # Disable epoll in boost until it get fixed: # https://github.com/boostorg/asio/issues/150 # list(APPEND FLAGS "BOOST_ASIO_DISABLE_EPOLL") elseif (APPLE) list(APPEND LIBRARIES resolv) endif () if (IRCCD_HAVE_SSL) list(APPEND LIBRARIES OpenSSL::Crypto OpenSSL::SSL) endif () irccd_define_library( TARGET libirccd-core EXPORT FLAGS ${FLAGS} HEADERS ${HEADERS} HEADERS_DIRECTORY irccd SOURCES ${SOURCES} LIBRARIES ${LIBRARIES} PUBLIC_INCLUDES $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}> $<BUILD_INTERFACE:${libirccd-core_SOURCE_DIR}> $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/irccd/extern> )