Mercurial > irccd
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 {