changeset 790:ca16ca53c347

windows: many fixes under MinGW-w64
author David Demelier <markand@malikania.fr>
date Fri, 09 Nov 2018 13:45:00 +0100
parents 17367b6a99b4
children 2d04f5e5f343
files cmake/IrccdSystem.cmake cmake/internal/sysconfig.hpp.in libirccd-core/irccd/system.cpp libirccd-test/CMakeLists.txt libirccd/irccd/daemon/dynlib_plugin.cpp libirccd/irccd/daemon/dynlib_plugin.hpp libirccd/irccd/daemon/server.cpp libirccd/irccd/daemon/server.hpp plugins/links/links.cpp plugins/links/links.hpp tests/CMakeLists.txt tests/src/libirccd/CMakeLists.txt tests/src/libirccd/dynlib-plugin/test_plugin.cpp
diffstat 13 files changed, 60 insertions(+), 84 deletions(-) [+]
line wrap: on
line diff
--- a/cmake/IrccdSystem.cmake	Fri Nov 09 13:31:00 2018 +0100
+++ b/cmake/IrccdSystem.cmake	Fri Nov 09 13:45:00 2018 +0100
@@ -56,7 +56,6 @@
 #
 # The following variables are defined in irccd/sysconfig.h
 #
-# IRCCD_HAVE_GETLOGIN           True if getlogin(3) function (and unistd.h)
 # IRCCD_HAVE_POPEN              True if has popen(3) function (in stdio.h)
 # IRCCD_HAVE_SETPROGNAME        True if setprogname(3) is available from C library,
 # IRCCD_HAVE_STAT               True if has stat(2) function (and sys/types.h and sys/stat.h),
@@ -85,17 +84,6 @@
 # #include <cstdlib>
 check_function_exists(setprogname IRCCD_HAVE_SETPROGNAME)
 
-# getlogin() function
-#
-# If IRCCD_HAVE_GETLOGIN is defined, include:
-#
-# #include <unistd.h>
-check_function_exists(getlogin IRCCD_HAVE_GETLOGIN)
-
-if (NOT IRCCD_HAVE_UNISTD_H)
-	set(IRCCD_HAVE_GETLOGIN FALSE)
-endif ()
-
 # popen() function
 #
 # If IRCCD_HAVE_POPEN is defined, include;
--- a/cmake/internal/sysconfig.hpp.in	Fri Nov 09 13:31:00 2018 +0100
+++ b/cmake/internal/sysconfig.hpp.in	Fri Nov 09 13:45:00 2018 +0100
@@ -68,7 +68,6 @@
  * ------------------------------------------------------------------
  */
 
-#cmakedefine IRCCD_HAVE_GETLOGIN
 #cmakedefine IRCCD_HAVE_POPEN
 #cmakedefine IRCCD_HAVE_SETPROGNAME
 #cmakedefine IRCCD_HAVE_STAT
--- a/libirccd-core/irccd/system.cpp	Fri Nov 09 13:31:00 2018 +0100
+++ b/libirccd-core/irccd/system.cpp	Fri Nov 09 13:45:00 2018 +0100
@@ -50,10 +50,6 @@
 #	include <libproc.h>
 #endif
 
-#if defined(IRCCD_HAVE_GETLOGIN)
-#	include <unistd.h>
-#endif
-
 #include "system.hpp"
 #include "string_util.hpp"
 #include "xdg.hpp"
@@ -458,26 +454,6 @@
 
 // }}}
 
-// {{{ username
-
-/*
- * Requires:
- *   - <unistd.h>
- */
-auto username() -> std::string
-{
-#if defined(IRCCD_HAVE_GETLOGIN)
-	auto v = getlogin();
-
-	if (v)
-		return v;
-#endif
-
-	return "";
-}
-
-// }}}
-
 // {{{ config_filenames
 
 auto config_filenames(std::string_view file) -> std::vector<std::string>
--- a/libirccd-test/CMakeLists.txt	Fri Nov 09 13:31:00 2018 +0100
+++ b/libirccd-test/CMakeLists.txt	Fri Nov 09 13:45:00 2018 +0100
@@ -20,8 +20,6 @@
 
 set(
 	HEADERS
-	${libirccd-test_SOURCE_DIR}/irccd/test/cli_fixture.hpp
-	${libirccd-test_SOURCE_DIR}/irccd/test/command_fixture.hpp
 	${libirccd-test_SOURCE_DIR}/irccd/test/debug_server.hpp
 	${libirccd-test_SOURCE_DIR}/irccd/test/irccd_fixture.hpp
 	${libirccd-test_SOURCE_DIR}/irccd/test/mock.hpp
@@ -31,8 +29,6 @@
 
 set(
 	SOURCES
-	${libirccd-test_SOURCE_DIR}/irccd/test/cli_fixture.cpp
-	${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
@@ -40,6 +36,23 @@
 	${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
+		${libirccd-test_SOURCE_DIR}/irccd/test/command_fixture.hpp
+	)
+
+	list(
+		APPEND
+		SOURCES
+		${libirccd-test_SOURCE_DIR}/irccd/test/cli_fixture.cpp
+		${libirccd-test_SOURCE_DIR}/irccd/test/command_fixture.cpp
+	)
+endif ()
+
 if (${IRCCD_HAVE_JS})
 	list(
 		APPEND
--- a/libirccd/irccd/daemon/dynlib_plugin.cpp	Fri Nov 09 13:31:00 2018 +0100
+++ b/libirccd/irccd/daemon/dynlib_plugin.cpp	Fri Nov 09 13:45:00 2018 +0100
@@ -23,6 +23,7 @@
 #include <boost/predef/os.h>
 #include <boost/format.hpp>
 
+#define BOOST_DLL_FORCE_ALIAS_INSTANTIATION
 #include "dynlib_plugin.hpp"
 
 #if BOOST_OS_WINDOWS
@@ -74,6 +75,8 @@
 
 	const auto [ abisym, initsym ] = symbol(pathstr);
 
+	printf("abisym: %s\n", abisym.c_str());
+	printf("initsym: %s\n", initsym.c_str());
 	using abisym_func_type = version ();
 	using initsym_func_type = std::unique_ptr<plugin> (std::string);
 
--- a/libirccd/irccd/daemon/dynlib_plugin.hpp	Fri Nov 09 13:31:00 2018 +0100
+++ b/libirccd/irccd/daemon/dynlib_plugin.hpp	Fri Nov 09 13:45:00 2018 +0100
@@ -24,6 +24,9 @@
  * \brief Native plugin implementation.
  */
 
+#define BOOST_DLL_FORCE_ALIAS_INSTANTIATION
+#include <boost/dll.hpp>
+
 #include "plugin.hpp"
 
 namespace irccd {
--- a/libirccd/irccd/daemon/server.cpp	Fri Nov 09 13:31:00 2018 +0100
+++ b/libirccd/irccd/daemon/server.cpp	Fri Nov 09 13:45:00 2018 +0100
@@ -35,7 +35,6 @@
 
 #include <irccd/json_util.hpp>
 #include <irccd/string_util.hpp>
-#include <irccd/system.hpp>
 
 #include "server.hpp"
 
@@ -505,12 +504,6 @@
 	, timer_(service)
 {
 	assert(!hostname_.empty());
-
-	// Initialize nickname and username.
-	auto user = sys::username();
-
-	nickname_ = user.empty() ? "irccd" : user;
-	username_ = user.empty() ? "irccd" : user;
 }
 
 server::~server()
--- a/libirccd/irccd/daemon/server.hpp	Fri Nov 09 13:31:00 2018 +0100
+++ b/libirccd/irccd/daemon/server.hpp	Fri Nov 09 13:45:00 2018 +0100
@@ -312,8 +312,8 @@
 	options options_;
 
 	// Identity.
-	std::string nickname_;
-	std::string username_;
+	std::string nickname_{"irccd"};
+	std::string username_{"irccd"};
 	std::string realname_{"IRC Client Daemon"};
 	std::string ctcpversion_{"IRC Client Daemon"};
 
--- a/plugins/links/links.cpp	Fri Nov 09 13:31:00 2018 +0100
+++ b/plugins/links/links.cpp	Fri Nov 09 13:45:00 2018 +0100
@@ -16,8 +16,6 @@
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#include <boost/dll.hpp>
-
 #include <irccd/daemon/irccd.hpp>
 #include <irccd/daemon/server.hpp>
 
--- a/plugins/links/links.hpp	Fri Nov 09 13:31:00 2018 +0100
+++ b/plugins/links/links.hpp	Fri Nov 09 13:45:00 2018 +0100
@@ -24,7 +24,7 @@
  * \brief Links plugin.
  */
 
-#include <irccd/daemon/plugin.hpp>
+#include <irccd/daemon/dynlib_plugin.hpp>
 
 namespace irccd {
 
--- a/tests/CMakeLists.txt	Fri Nov 09 13:31:00 2018 +0100
+++ b/tests/CMakeLists.txt	Fri Nov 09 13:45:00 2018 +0100
@@ -26,7 +26,10 @@
 
 add_subdirectory(src/libcommon)
 add_subdirectory(src/libirccd)
-add_subdirectory(src/irccdctl)
+
+if (NOT CMAKE_SYSTEM_NAME MATCHES Windows)
+	add_subdirectory(src/irccdctl)
+endif ()
 
 if (IRCCD_HAVE_JS)
 	add_subdirectory(src/plugins)
--- a/tests/src/libirccd/CMakeLists.txt	Fri Nov 09 13:31:00 2018 +0100
+++ b/tests/src/libirccd/CMakeLists.txt	Fri Nov 09 13:45:00 2018 +0100
@@ -16,33 +16,35 @@
 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #
 
-add_subdirectory(command-plugin-config)
-add_subdirectory(command-plugin-info)
-add_subdirectory(command-plugin-list)
-add_subdirectory(command-plugin-load)
-add_subdirectory(command-plugin-reload)
-add_subdirectory(command-plugin-unload)
-add_subdirectory(command-rule-add)
-add_subdirectory(command-rule-edit)
-add_subdirectory(command-rule-info)
-add_subdirectory(command-rule-list)
-add_subdirectory(command-rule-move)
-add_subdirectory(command-rule-remove)
-add_subdirectory(command-server-connect)
-add_subdirectory(command-server-disconnect)
-add_subdirectory(command-server-info)
-add_subdirectory(command-server-invite)
-add_subdirectory(command-server-join)
-add_subdirectory(command-server-kick)
-add_subdirectory(command-server-list)
-add_subdirectory(command-server-me)
-add_subdirectory(command-server-message)
-add_subdirectory(command-server-mode)
-add_subdirectory(command-server-nick)
-add_subdirectory(command-server-notice)
-add_subdirectory(command-server-part)
-add_subdirectory(command-server-reconnect)
-add_subdirectory(command-server-topic)
+if (NOT CMAKE_SYSTEM_NAME MATCHES Windows)
+	add_subdirectory(command-plugin-config)
+	add_subdirectory(command-plugin-info)
+	add_subdirectory(command-plugin-list)
+	add_subdirectory(command-plugin-load)
+	add_subdirectory(command-plugin-reload)
+	add_subdirectory(command-plugin-unload)
+	add_subdirectory(command-rule-add)
+	add_subdirectory(command-rule-edit)
+	add_subdirectory(command-rule-info)
+	add_subdirectory(command-rule-list)
+	add_subdirectory(command-rule-move)
+	add_subdirectory(command-rule-remove)
+	add_subdirectory(command-server-connect)
+	add_subdirectory(command-server-disconnect)
+	add_subdirectory(command-server-info)
+	add_subdirectory(command-server-invite)
+	add_subdirectory(command-server-join)
+	add_subdirectory(command-server-kick)
+	add_subdirectory(command-server-list)
+	add_subdirectory(command-server-me)
+	add_subdirectory(command-server-message)
+	add_subdirectory(command-server-mode)
+	add_subdirectory(command-server-nick)
+	add_subdirectory(command-server-notice)
+	add_subdirectory(command-server-part)
+	add_subdirectory(command-server-reconnect)
+	add_subdirectory(command-server-topic)
+endif ()
 
 add_subdirectory(dynlib-plugin)
 add_subdirectory(irc)
--- a/tests/src/libirccd/dynlib-plugin/test_plugin.cpp	Fri Nov 09 13:31:00 2018 +0100
+++ b/tests/src/libirccd/dynlib-plugin/test_plugin.cpp	Fri Nov 09 13:45:00 2018 +0100
@@ -16,9 +16,7 @@
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#include <boost/dll.hpp>
-
-#include <irccd/daemon/plugin.hpp>
+#include <irccd/daemon/dynlib_plugin.hpp>
 
 namespace irccd {