From 96117fe989d09286de03d7cc6110d6016ebab3e1 Mon Sep 17 00:00:00 2001 From: Patrick Storz Date: Sat, 30 Mar 2019 14:42:22 +0100 Subject: Restore "Add inkscape root directory to DLL search path" See ecfc9efaf66d054fda239f48ef984190a89e6bae for details. This was dropped in db05b842cba28f01b431eee890537959aa2d8fe3 Partial fix for https://gitlab.com/inkscape/inkscape/issues/115 --- src/inkscape-main.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/inkscape-main.cpp b/src/inkscape-main.cpp index 998935a4b..a8499412c 100644 --- a/src/inkscape-main.cpp +++ b/src/inkscape-main.cpp @@ -10,14 +10,29 @@ * Released under GNU GPL v2+, read the file 'COPYING' for more information. */ +#ifdef _WIN32 +#include // provides SetDllDirectoryW +#endif + #include "inkscape-application.h" #include "path-prefix.h" static void set_extensions_env() { + // add share/inkscape/extensions to PYTHONPATH so the inkex module is found by extensions in user folder gchar *pythonpath = get_extensions_path(); g_setenv("PYTHONPATH", pythonpath, true); g_free(pythonpath); + +#ifdef _WIN32 + // add inkscape directory to DLL search path so dynamically linked extension modules find their libraries + // should be fixed in Python 3.8 (https://github.com/python/cpython/commit/2438cdf0e932a341c7613bf4323d06b91ae9f1f1) + gchar *installation_dir = g_win32_get_package_installation_directory_of_module(NULL); + wchar_t *installation_dir_w = (wchar_t *)g_utf8_to_utf16(installation_dir, -1, NULL, NULL, NULL); + SetDllDirectoryW(installation_dir_w); + g_free(installation_dir); + g_free(installation_dir_w); +#endif } int main(int argc, char *argv[]) -- cgit v1.2.3