changeset 797:2dfba38e93f0

cmake: fix headers installation, closes #924 @1h
author David Demelier <markand@malikania.fr>
date Sun, 11 Nov 2018 15:44:20 +0100
parents 1a6152af0866
children 952021a03ace
files cmake/function/IrccdDefineLibrary.cmake extern/duktape/CMakeLists.txt extern/json/CMakeLists.txt irccd-test/main.cpp libirccd-core/CMakeLists.txt libirccd-ctl/CMakeLists.txt libirccd-js/CMakeLists.txt libirccd-test/CMakeLists.txt libirccd-test/irccd/test/debug_server.cpp libirccd-test/irccd/test/debug_server.hpp libirccd-test/irccd/test/js_plugin_fixture.cpp libirccd-test/irccd/test/js_plugin_fixture.hpp libirccd-test/irccd/test/mock.cpp libirccd-test/irccd/test/mock.hpp libirccd-test/irccd/test/mock_plugin.cpp libirccd-test/irccd/test/mock_plugin.hpp libirccd-test/irccd/test/mock_server.cpp libirccd-test/irccd/test/mock_server.hpp libirccd/CMakeLists.txt
diffstat 19 files changed, 112 insertions(+), 147 deletions(-) [+]
line wrap: on
line diff
--- a/cmake/function/IrccdDefineLibrary.cmake	Sun Nov 11 14:56:04 2018 +0100
+++ b/cmake/function/IrccdDefineLibrary.cmake	Sun Nov 11 15:44:20 2018 +0100
@@ -24,8 +24,7 @@
 #   TARGET              target name
 #   SOURCES             src1, src2, srcn
 #   EXPORT              (Optional) set to true to export library through irccd
-#   HEADERS             (Optional) headers to install
-#   HEADERS_DIRECTORY   (Optional) subdirectory where to install headers
+#   HEADERS             (Optional) directory of headers to install
 #   FLAGS               (Optional) C/C++ flags (without -D)
 #   LIBRARIES           (Optional) libraries to link
 #   LOCAL_INCLUDES      (Optional) local includes for the target only
@@ -37,7 +36,7 @@
 
 function(irccd_define_library)
 	set(options EXPORT)
-	set(oneValueArgs HEADERS_DIRECTORY TARGET)
+	set(oneValueArgs TARGET)
 	set(multiValueArgs HEADERS SOURCES FLAGS LIBRARIES LOCAL_INCLUDES PUBLIC_INCLUDES)
 
 	cmake_parse_arguments(LIB "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
@@ -86,13 +85,9 @@
 	endif ()
 
 	if (LIB_HEADERS)
-		if (NOT LIB_HEADERS_DIRECTORY)
-			message(FATAL_ERROR "HEADERS_DIRECTORY must be defined")
-		endif ()
-
 		install(
-			FILES ${LIB_HEADERS}
-			DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${LIB_HEADERS_DIRECTORY}
+			DIRECTORY ${LIB_HEADERS}
+			DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/irccd
 		)
 	endif ()
 endfunction()
--- a/extern/duktape/CMakeLists.txt	Sun Nov 11 14:56:04 2018 +0100
+++ b/extern/duktape/CMakeLists.txt	Sun Nov 11 15:44:20 2018 +0100
@@ -18,10 +18,26 @@
 
 cmake_minimum_required(VERSION 3.0)
 project(duktape)
-add_library(libduktape OBJECT duktape.h duktape.cpp)
+add_library(libduktape duktape.h duktape.cpp)
+install(
+	TARGETS libduktape
+	EXPORT irccd-targets
+	RUNTIME DESTINATION bin
+	LIBRARY DESTINATION lib
+	ARCHIVE DESTINATION lib
+)
+
 install(
-    FILES
-        duktape.h
-        duk_config.h
-    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/irccd/extern
+	FILES
+		duktape.h
+		duk_config.h
+	DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/irccd/extern
 )
+target_include_directories(
+	libduktape
+	PUBLIC
+		$<BUILD_INTERFACE:${duktape_SOURCE_DIR}>
+		$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/irccd/extern>
+)
+target_compile_definitions(libduktape PUBLIC DUK_OPT_CPP_EXCEPTIONS)
+set_target_properties(libduktape PROPERTIES OUTPUT_NAME irccd-duktape)
--- a/extern/json/CMakeLists.txt	Sun Nov 11 14:56:04 2018 +0100
+++ b/extern/json/CMakeLists.txt	Sun Nov 11 15:44:20 2018 +0100
@@ -22,7 +22,7 @@
     libjson
     INTERFACE
         $<BUILD_INTERFACE:${json_SOURCE_DIR}>
-        $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR/irccd/extern}>
+        $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/irccd/extern>
 )
 install(TARGETS libjson EXPORT irccd-targets)
 install(FILES json.hpp DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/irccd/extern)
--- a/irccd-test/main.cpp	Sun Nov 11 14:56:04 2018 +0100
+++ b/irccd-test/main.cpp	Sun Nov 11 15:44:20 2018 +0100
@@ -50,7 +50,7 @@
 using boost::format;
 using boost::str;
 
-namespace irccd {
+namespace irccd::test {
 
 namespace su = string_util;
 
@@ -651,13 +651,13 @@
 
 } // !namespace
 
-} // !irccd
+} // !irccd::test
 
 int main(int argc, char** argv)
 {
 	try {
-		irccd::load(--argc, ++argv);
-		irccd::run();
+		irccd::test::load(--argc, ++argv);
+		irccd::test::run();
 	} catch (const std::exception& ex) {
 		std::cerr << "abort: " << ex.what() << std::endl;
 		return 1;
--- a/libirccd-core/CMakeLists.txt	Sun Nov 11 14:56:04 2018 +0100
+++ b/libirccd-core/CMakeLists.txt	Sun Nov 11 15:44:20 2018 +0100
@@ -21,33 +21,29 @@
 find_package(Boost 1.60 REQUIRED QUIET COMPONENTS filesystem system)
 
 set(
-	HEADERS
+	SOURCES
 	${libirccd-core_SOURCE_DIR}/irccd/acceptor.hpp
+	${libirccd-core_SOURCE_DIR}/irccd/config.cpp
 	${libirccd-core_SOURCE_DIR}/irccd/config.hpp
 	${libirccd-core_SOURCE_DIR}/irccd/connector.hpp
+	${libirccd-core_SOURCE_DIR}/irccd/fs_util.cpp
 	${libirccd-core_SOURCE_DIR}/irccd/fs_util.hpp
+	${libirccd-core_SOURCE_DIR}/irccd/ini.cpp
 	${libirccd-core_SOURCE_DIR}/irccd/ini.hpp
 	${libirccd-core_SOURCE_DIR}/irccd/ini_util.hpp
+	${libirccd-core_SOURCE_DIR}/irccd/json_util.cpp
 	${libirccd-core_SOURCE_DIR}/irccd/json_util.hpp
+	${libirccd-core_SOURCE_DIR}/irccd/options.cpp
 	${libirccd-core_SOURCE_DIR}/irccd/options.hpp
 	${libirccd-core_SOURCE_DIR}/irccd/stream.hpp
+	${libirccd-core_SOURCE_DIR}/irccd/string_util.cpp
 	${libirccd-core_SOURCE_DIR}/irccd/string_util.hpp
+	${libirccd-core_SOURCE_DIR}/irccd/system.cpp
 	${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
@@ -76,13 +72,11 @@
 	TARGET libirccd-core
 	EXPORT
 	FLAGS ${FLAGS}
-	HEADERS ${HEADERS}
-	HEADERS_DIRECTORY irccd
+	HEADERS ${libirccd-core_SOURCE_DIR}/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>
 )
--- a/libirccd-ctl/CMakeLists.txt	Sun Nov 11 14:56:04 2018 +0100
+++ b/libirccd-ctl/CMakeLists.txt	Sun Nov 11 15:44:20 2018 +0100
@@ -19,20 +19,15 @@
 project(libirccd-ctl)
 
 set(
-	HEADERS
-	${libirccd-ctl_SOURCE_DIR}/irccd/ctl/controller.hpp
-)
-
-set(
 	SOURCES
 	${libirccd-ctl_SOURCE_DIR}/irccd/ctl/controller.cpp
+	${libirccd-ctl_SOURCE_DIR}/irccd/ctl/controller.hpp
 )
 
 irccd_define_library(
 	TARGET libirccd-ctl
 	EXPORT
-	HEADERS ${HEADERS}
-	HEADERS_DIRECTORY irccd/ctl
+	HEADERS ${libirccd-ctl_SOURCE_DIR}/irccd/ctl
 	SOURCES ${SOURCES}
 	LIBRARIES
 		libirccd
--- a/libirccd-js/CMakeLists.txt	Sun Nov 11 14:56:04 2018 +0100
+++ b/libirccd-js/CMakeLists.txt	Sun Nov 11 15:44:20 2018 +0100
@@ -21,58 +21,50 @@
 find_package(Boost REQUIRED QUIET COMPONENTS timer)
 
 set(
-	HEADERS
+	SOURCES
+	${libirccd-js_SOURCE_DIR}/irccd/js/directory_js_api.cpp
 	${libirccd-js_SOURCE_DIR}/irccd/js/directory_js_api.hpp
+	${libirccd-js_SOURCE_DIR}/irccd/js/duk.cpp
 	${libirccd-js_SOURCE_DIR}/irccd/js/duk.hpp
+	${libirccd-js_SOURCE_DIR}/irccd/js/elapsed_timer_js_api.cpp
 	${libirccd-js_SOURCE_DIR}/irccd/js/elapsed_timer_js_api.hpp
+	${libirccd-js_SOURCE_DIR}/irccd/js/file_js_api.cpp
 	${libirccd-js_SOURCE_DIR}/irccd/js/file_js_api.hpp
+	${libirccd-js_SOURCE_DIR}/irccd/js/irccd_js_api.cpp
 	${libirccd-js_SOURCE_DIR}/irccd/js/irccd_js_api.hpp
-	${libirccd-js_SOURCE_DIR}/irccd/js/js_plugin.hpp
+	${libirccd-js_SOURCE_DIR}/irccd/js/js_api.cpp
 	${libirccd-js_SOURCE_DIR}/irccd/js/js_api.hpp
+	${libirccd-js_SOURCE_DIR}/irccd/js/js_plugin.cpp
+	${libirccd-js_SOURCE_DIR}/irccd/js/js_plugin.hpp
+	${libirccd-js_SOURCE_DIR}/irccd/js/logger_js_api.cpp
 	${libirccd-js_SOURCE_DIR}/irccd/js/logger_js_api.hpp
+	${libirccd-js_SOURCE_DIR}/irccd/js/plugin_js_api.cpp
 	${libirccd-js_SOURCE_DIR}/irccd/js/plugin_js_api.hpp
+	${libirccd-js_SOURCE_DIR}/irccd/js/server_js_api.cpp
 	${libirccd-js_SOURCE_DIR}/irccd/js/server_js_api.hpp
+	${libirccd-js_SOURCE_DIR}/irccd/js/system_js_api.cpp
 	${libirccd-js_SOURCE_DIR}/irccd/js/system_js_api.hpp
+	${libirccd-js_SOURCE_DIR}/irccd/js/timer_js_api.cpp
 	${libirccd-js_SOURCE_DIR}/irccd/js/timer_js_api.hpp
+	${libirccd-js_SOURCE_DIR}/irccd/js/unicode.cpp
 	${libirccd-js_SOURCE_DIR}/irccd/js/unicode.hpp
+	${libirccd-js_SOURCE_DIR}/irccd/js/unicode_js_api.cpp
 	${libirccd-js_SOURCE_DIR}/irccd/js/unicode_js_api.hpp
+	${libirccd-js_SOURCE_DIR}/irccd/js/util_js_api.cpp
 	${libirccd-js_SOURCE_DIR}/irccd/js/util_js_api.hpp
 )
 
-set(
-	SOURCES
-	${libirccd-js_SOURCE_DIR}/irccd/js/duk.cpp
-	${libirccd-js_SOURCE_DIR}/irccd/js/directory_js_api.cpp
-	${libirccd-js_SOURCE_DIR}/irccd/js/elapsed_timer_js_api.cpp
-	${libirccd-js_SOURCE_DIR}/irccd/js/file_js_api.cpp
-	${libirccd-js_SOURCE_DIR}/irccd/js/irccd_js_api.cpp
-	${libirccd-js_SOURCE_DIR}/irccd/js/js_plugin.cpp
-	${libirccd-js_SOURCE_DIR}/irccd/js/js_api.cpp
-	${libirccd-js_SOURCE_DIR}/irccd/js/logger_js_api.cpp
-	${libirccd-js_SOURCE_DIR}/irccd/js/plugin_js_api.cpp
-	${libirccd-js_SOURCE_DIR}/irccd/js/server_js_api.cpp
-	${libirccd-js_SOURCE_DIR}/irccd/js/system_js_api.cpp
-	${libirccd-js_SOURCE_DIR}/irccd/js/timer_js_api.cpp
-	${libirccd-js_SOURCE_DIR}/irccd/js/unicode.cpp
-	${libirccd-js_SOURCE_DIR}/irccd/js/unicode_js_api.cpp
-	${libirccd-js_SOURCE_DIR}/irccd/js/util_js_api.cpp
-)
-
 irccd_define_library(
 	TARGET libirccd-js
 	EXPORT
-	HEADERS ${HEADERS}
-	HEADERS_DIRECTORY irccd/js
+	HEADERS ${libirccd-js_SOURCE_DIR}/irccd/js
 	SOURCES
-		${libirccd-js_SOURCE_DIR}/CMakeLists.txt
 		${SOURCES}
-		$<TARGET_OBJECTS:libduktape>
-	FLAGS
-		DUK_OPT_CPP_EXCEPTIONS
 	LIBRARIES
 		Boost::timer
+		libduktape
 		libirccd
 	PUBLIC_INCLUDES
-		$<BUILD_INTERFACE:${duktape_SOURCE_DIR}>
 		$<BUILD_INTERFACE:${libirccd-js_SOURCE_DIR}>
+
 )
--- a/libirccd-test/CMakeLists.txt	Sun Nov 11 14:56:04 2018 +0100
+++ b/libirccd-test/CMakeLists.txt	Sun Nov 11 15:44:20 2018 +0100
@@ -19,40 +19,23 @@
 project(libirccd-test)
 
 set(
-	HEADERS
+	SOURCES
+	${libirccd-test_SOURCE_DIR}/irccd/test/cli_fixture.cpp
+	${libirccd-test_SOURCE_DIR}/irccd/test/cli_fixture.hpp
+	${libirccd-test_SOURCE_DIR}/irccd/test/command_fixture.cpp
 	${libirccd-test_SOURCE_DIR}/irccd/test/command_fixture.hpp
+	${libirccd-test_SOURCE_DIR}/irccd/test/debug_server.cpp
 	${libirccd-test_SOURCE_DIR}/irccd/test/debug_server.hpp
+	${libirccd-test_SOURCE_DIR}/irccd/test/irccd_fixture.cpp
 	${libirccd-test_SOURCE_DIR}/irccd/test/irccd_fixture.hpp
+	${libirccd-test_SOURCE_DIR}/irccd/test/mock.cpp
 	${libirccd-test_SOURCE_DIR}/irccd/test/mock.hpp
+	${libirccd-test_SOURCE_DIR}/irccd/test/mock_plugin.cpp
 	${libirccd-test_SOURCE_DIR}/irccd/test/mock_plugin.hpp
+	${libirccd-test_SOURCE_DIR}/irccd/test/mock_server.cpp
 	${libirccd-test_SOURCE_DIR}/irccd/test/mock_server.hpp
 )
 
-set(
-	SOURCES
-	${libirccd-test_SOURCE_DIR}/irccd/test/command_fixture.cpp
-	${libirccd-test_SOURCE_DIR}/irccd/test/debug_server.cpp
-	${libirccd-test_SOURCE_DIR}/irccd/test/irccd_fixture.cpp
-	${libirccd-test_SOURCE_DIR}/irccd/test/mock.cpp
-	${libirccd-test_SOURCE_DIR}/irccd/test/mock_plugin.cpp
-	${libirccd-test_SOURCE_DIR}/irccd/test/mock_server.cpp
-)
-
-# TODO: add a check with symbol macro.
-if (NOT CMAKE_SYSTEM_NAME MATCHES Windows)
-	list(
-		APPEND
-		HEADERS
-		${libirccd-test_SOURCE_DIR}/irccd/test/cli_fixture.hpp
-	)
-
-	list(
-		APPEND
-		SOURCES
-		${libirccd-test_SOURCE_DIR}/irccd/test/cli_fixture.cpp
-	)
-endif ()
-
 if (${IRCCD_HAVE_JS})
 	list(
 		APPEND
@@ -72,8 +55,7 @@
 irccd_define_library(
 	TARGET libirccd-test
 	EXPORT
-	HEADERS ${HEADERS}
-	HEADERS_DIRECTORY irccd/test
+	HEADERS ${libirccd-test_SOURCE_DIR}/irccd/test
 	SOURCES ${SOURCES}
 	LIBRARIES
 		${LIBRARIES}
--- a/libirccd-test/irccd/test/debug_server.cpp	Sun Nov 11 14:56:04 2018 +0100
+++ b/libirccd-test/irccd/test/debug_server.cpp	Sun Nov 11 15:44:20 2018 +0100
@@ -20,7 +20,7 @@
 
 #include "debug_server.hpp"
 
-namespace irccd {
+namespace irccd::test {
 
 void debug_server::connect(connect_handler) noexcept
 {
@@ -101,4 +101,4 @@
 	std::cout << get_id() << ": whois " << target << std::endl;
 }
 
-} // !irccd
+} // !irccd::test
--- a/libirccd-test/irccd/test/debug_server.hpp	Sun Nov 11 14:56:04 2018 +0100
+++ b/libirccd-test/irccd/test/debug_server.hpp	Sun Nov 11 15:44:20 2018 +0100
@@ -26,7 +26,7 @@
 
 #include <irccd/daemon/server.hpp>
 
-namespace irccd {
+namespace irccd::test {
 
 /**
  * \brief Server which prints everything in the console.
@@ -113,6 +113,6 @@
 	void whois(std::string_view target) override;
 };
 
-} // !irccd
+} // !irccd::test
 
 #endif // !IRCCD_TEST_DEBUG_SERVER_HPP
--- a/libirccd-test/irccd/test/js_plugin_fixture.cpp	Sun Nov 11 14:56:04 2018 +0100
+++ b/libirccd-test/irccd/test/js_plugin_fixture.cpp	Sun Nov 11 15:44:20 2018 +0100
@@ -37,7 +37,7 @@
 
 #include "js_plugin_fixture.hpp"
 
-namespace irccd {
+namespace irccd::test {
 
 js_plugin_fixture::js_plugin_fixture(std::string path)
 	: server_(std::make_shared<mock_server>(service_, "test", "local"))
@@ -59,4 +59,4 @@
 	plugin_->open();
 }
 
-} // !irccd
+} // !irccd::test
--- a/libirccd-test/irccd/test/js_plugin_fixture.hpp	Sun Nov 11 14:56:04 2018 +0100
+++ b/libirccd-test/irccd/test/js_plugin_fixture.hpp	Sun Nov 11 15:44:20 2018 +0100
@@ -30,7 +30,7 @@
 
 #include "mock_server.hpp"
 
-namespace irccd {
+namespace irccd::test {
 
 /**
  * \brief test fixture helper for Javascript plugins.
@@ -53,6 +53,6 @@
 	js_plugin_fixture(std::string path);
 };
 
-} // !irccd
+} // !irccd::test
 
 #endif // !IRCCD_TEST_JS_PLUGIN_FIXTURE_HPP
--- a/libirccd-test/irccd/test/mock.cpp	Sun Nov 11 14:56:04 2018 +0100
+++ b/libirccd-test/irccd/test/mock.cpp	Sun Nov 11 15:44:20 2018 +0100
@@ -18,7 +18,7 @@
 
 #include "mock.hpp"
 
-namespace irccd {
+namespace irccd::test {
 
 void mock::push(std::string name, args args) const
 {
@@ -48,4 +48,4 @@
 	return table_.empty();
 }
 
-} // !irccd
+} // !irccd::test
--- a/libirccd-test/irccd/test/mock.hpp	Sun Nov 11 14:56:04 2018 +0100
+++ b/libirccd-test/irccd/test/mock.hpp	Sun Nov 11 15:44:20 2018 +0100
@@ -30,7 +30,7 @@
 #include <unordered_map>
 #include <vector>
 
-namespace irccd {
+namespace irccd::test {
 
 /**
  * \brief Keep track of function invocations.
@@ -87,6 +87,6 @@
 	auto empty() const noexcept -> bool;
 };
 
-} // !irccd
+} // !irccd::test
 
 #endif // !IRCCD_TEST_MOCK_HPP
--- a/libirccd-test/irccd/test/mock_plugin.cpp	Sun Nov 11 14:56:04 2018 +0100
+++ b/libirccd-test/irccd/test/mock_plugin.cpp	Sun Nov 11 15:44:20 2018 +0100
@@ -20,7 +20,7 @@
 
 #include "mock_plugin.hpp"
 
-namespace irccd {
+namespace irccd::test {
 
 auto mock_plugin::get_name() const noexcept -> std::string_view
 {
@@ -189,4 +189,4 @@
 	push("handle_whois", { event });
 }
 
-} // !irccd
+} // !irccd::test
--- a/libirccd-test/irccd/test/mock_plugin.hpp	Sun Nov 11 14:56:04 2018 +0100
+++ b/libirccd-test/irccd/test/mock_plugin.hpp	Sun Nov 11 15:44:20 2018 +0100
@@ -28,7 +28,7 @@
 
 #include "mock.hpp"
 
-namespace irccd {
+namespace irccd::test {
 
 /**
  * \brief Mock plugin.
@@ -188,6 +188,6 @@
 	void handle_whois(irccd& irccd, const whois_event& event) override;
 };
 
-} // !irccd
+} // !irccd::test
 
 #endif // !IRCCD_TEST_MOCK_PLUGIN_HPP
--- a/libirccd-test/irccd/test/mock_server.cpp	Sun Nov 11 14:56:04 2018 +0100
+++ b/libirccd-test/irccd/test/mock_server.cpp	Sun Nov 11 15:44:20 2018 +0100
@@ -18,7 +18,7 @@
 
 #include "mock_server.hpp"
 
-namespace irccd {
+namespace irccd::test {
 
 void mock_server::connect(connect_handler) noexcept
 {
@@ -102,4 +102,4 @@
 	push("whois", { std::string(target) });
 }
 
-} // !irccd
+} // !irccd::test
--- a/libirccd-test/irccd/test/mock_server.hpp	Sun Nov 11 14:56:04 2018 +0100
+++ b/libirccd-test/irccd/test/mock_server.hpp	Sun Nov 11 15:44:20 2018 +0100
@@ -28,7 +28,7 @@
 
 #include "mock.hpp"
 
-namespace irccd {
+namespace irccd::test {
 
 /**
  * \brief Mock server.
@@ -115,6 +115,6 @@
 	void whois(std::string_view target) override;
 };
 
-} // !irccd
+} // !irccd::test
 
 #endif // !IRCCD_TEST_MOCK_SERVER_HPP
--- a/libirccd/CMakeLists.txt	Sun Nov 11 14:56:04 2018 +0100
+++ b/libirccd/CMakeLists.txt	Sun Nov 11 15:44:20 2018 +0100
@@ -19,57 +19,48 @@
 project(libirccd)
 
 set(
-	HEADERS
-	${libirccd_SOURCE_DIR}/irccd/daemon/command.hpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/dynlib_plugin.hpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/irc.hpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/irccd.hpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/logger.hpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/plugin.hpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/plugin_service.hpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/rule.hpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/rule_service.hpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/rule_util.hpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/server.hpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/server_service.hpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/server_util.hpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/transport_client.hpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/transport_server.hpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/transport_service.hpp
-	${libirccd_SOURCE_DIR}/irccd/daemon/transport_util.hpp
-)
-
-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
 )
 
 irccd_define_library(
 	TARGET libirccd
 	EXPORT
-	HEADERS ${HEADERS}
-	HEADERS_DIRECTORY irccd/daemon
-	SOURCES
-		${libirccd_SOURCE_DIR}/CMakeLists.txt
-		${SOURCES}
-	LIBRARIES
-		libirccd-core
-	PUBLIC_INCLUDES
-		$<BUILD_INTERFACE:${libirccd_SOURCE_DIR}>
+	HEADERS ${libirccd_SOURCE_DIR}/irccd/daemon
+	SOURCES ${SOURCES}
+	LIBRARIES libirccd-core
+	PUBLIC_INCLUDES $<BUILD_INTERFACE:${libirccd_SOURCE_DIR}>
 )