diff libirccd/CMakeLists.txt @ 809:8460b4a34191

misc: reorganize namespaces, closes #952 @4h
author David Demelier <markand@malikania.fr>
date Fri, 16 Nov 2018 12:25:00 +0100
parents libirccd-core/CMakeLists.txt@2dfba38e93f0
children e29af7701b21
line wrap: on
line diff
--- a/libirccd/CMakeLists.txt	Thu Nov 15 13:19:17 2018 +0100
+++ b/libirccd/CMakeLists.txt	Fri Nov 16 12:25:00 2018 +0100
@@ -18,49 +18,65 @@
 
 project(libirccd)
 
+find_package(Boost 1.60 REQUIRED QUIET COMPONENTS filesystem system)
+
 set(
 	SOURCES
-	${libirccd_SOURCE_DIR}/irccd/daemon/command.cpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/command.hpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/dynlib_plugin.cpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/dynlib_plugin.hpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/irc.cpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/irc.hpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/irccd.cpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/irccd.hpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/logger.cpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/logger.hpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/plugin.cpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/plugin.hpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/plugin_service.cpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/plugin_service.hpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/rule.cpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/rule.hpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/rule_service.cpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/rule_service.hpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/rule_util.cpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/rule_util.hpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/server.cpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/server.hpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/server_service.cpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/server_service.hpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/server_util.cpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/server_util.hpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/transport_client.cpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/transport_client.hpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/transport_server.cpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/transport_server.hpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/transport_service.cpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/transport_service.hpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/transport_util.cpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/transport_util.hpp
+	${libirccd_SOURCE_DIR}/irccd/acceptor.hpp
+	${libirccd_SOURCE_DIR}/irccd/config.cpp
+	${libirccd_SOURCE_DIR}/irccd/config.hpp
+	${libirccd_SOURCE_DIR}/irccd/connector.hpp
+	${libirccd_SOURCE_DIR}/irccd/fs_util.cpp
+	${libirccd_SOURCE_DIR}/irccd/fs_util.hpp
+	${libirccd_SOURCE_DIR}/irccd/ini.cpp
+	${libirccd_SOURCE_DIR}/irccd/ini.hpp
+	${libirccd_SOURCE_DIR}/irccd/ini_util.hpp
+	${libirccd_SOURCE_DIR}/irccd/json_util.cpp
+	${libirccd_SOURCE_DIR}/irccd/json_util.hpp
+	${libirccd_SOURCE_DIR}/irccd/options.cpp
+	${libirccd_SOURCE_DIR}/irccd/options.hpp
+	${libirccd_SOURCE_DIR}/irccd/stream.hpp
+	${libirccd_SOURCE_DIR}/irccd/string_util.cpp
+	${libirccd_SOURCE_DIR}/irccd/string_util.hpp
+	${libirccd_SOURCE_DIR}/irccd/system.cpp
+	${libirccd_SOURCE_DIR}/irccd/system.hpp
+	${libirccd_SOURCE_DIR}/irccd/xdg.hpp
 )
 
+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
 	EXPORT
-	HEADERS ${libirccd_SOURCE_DIR}/irccd/daemon
+	FLAGS ${FLAGS}
+	HEADERS ${libirccd_SOURCE_DIR}/irccd/
 	SOURCES ${SOURCES}
-	LIBRARIES libirccd-core
-	PUBLIC_INCLUDES $<BUILD_INTERFACE:${libirccd_SOURCE_DIR}>
+	LIBRARIES ${LIBRARIES}
+	PUBLIC_INCLUDES
+		$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}>
+		$<BUILD_INTERFACE:${libirccd_SOURCE_DIR}>
+		$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
 )