diff --git a/CMakeLists.txt b/CMakeLists.txt index 64b2b7f29f..29e5b37081 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1362,6 +1362,7 @@ endif() # Directory where plugins and Lua dissectors can be found. set(PLUGIN_VERSION_DIR "plugins/${CPACK_PACKAGE_VERSION}") set(PLUGIN_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR}/${CPACK_PACKAGE_NAME}/${PLUGIN_VERSION_DIR}") +# Used by the WiresharkConfig.cmake.in module if (WIN32) set(PLUGIN_INSTALL_DIR "${PLUGIN_VERSION_DIR}") else () diff --git a/cmakeconfig.h.in b/cmakeconfig.h.in index a8ab22fb90..628ea2c067 100644 --- a/cmakeconfig.h.in +++ b/cmakeconfig.h.in @@ -401,9 +401,6 @@ /* Support for pcap-ng */ #cmakedefine PCAP_NG_DEFAULT 1 -/* Plugin installation directory */ -#cmakedefine PLUGIN_INSTALL_DIR "${PLUGIN_INSTALL_DIR}" - /* Define if we are using version of of the Portaudio library API */ #cmakedefine PORTAUDIO_API_1 1 diff --git a/wsutil/CMakeLists.txt b/wsutil/CMakeLists.txt index 9bf2b6c30b..43a574d678 100644 --- a/wsutil/CMakeLists.txt +++ b/wsutil/CMakeLists.txt @@ -21,6 +21,10 @@ include(UseABICheck) +if(NOT WIN32) + add_definitions(-DPLUGIN_DIR=\"${CMAKE_INSTALL_FULL_LIBDIR}/wireshark/plugins\") +endif() + set(WSUTIL_PUBLIC_HEADERS adler32.h base32.h diff --git a/wsutil/Makefile.am b/wsutil/Makefile.am index 9f50e9b6c9..e6698ea4fb 100644 --- a/wsutil/Makefile.am +++ b/wsutil/Makefile.am @@ -24,7 +24,7 @@ AM_CPPFLAGS = $(INCLUDEDIRS) $(WS_CPPFLAGS) -DWS_BUILD_DLL \ -DTOP_SRCDIR=\"$(abs_top_srcdir)\" \ -DDATAFILE_DIR=\"$(pkgdatadir)\" \ -DEXTCAP_DIR=\"$(extcapdir)\" \ - -DPLUGIN_INSTALL_DIR=\"$(plugindir)\" \ + -DPLUGIN_DIR=\"$(pkglibdir)/plugins\" \ -DJSMN_STRICT \ $(GLIB_CFLAGS) $(LIBGCRYPT_CFLAGS) \ $(LIBGNUTLS_CFLAGS) diff --git a/wsutil/filesystem.c b/wsutil/filesystem.c index a4e5ff075f..4ab725377d 100644 --- a/wsutil/filesystem.c +++ b/wsutil/filesystem.c @@ -955,7 +955,7 @@ get_datafile_dir(void) * otherwise, if we're running from an app bundle in macOS, we * use the Contents/PlugIns/wireshark subdirectory of the app bundle; * - * otherwise, we use the PLUGIN_INSTALL_DIR value supplied by the + * otherwise, we use the PLUGIN_DIR value supplied by the * configure script. */ static char *plugin_dir = NULL; @@ -1028,7 +1028,7 @@ init_plugin_dir(void) } #endif else { - plugin_dir = g_strdup(PLUGIN_INSTALL_DIR); + plugin_dir = g_strdup(PLUGIN_DIR); } } #endif diff --git a/wsutil/plugins.c b/wsutil/plugins.c index 047a6cb721..f251966e31 100644 --- a/wsutil/plugins.c +++ b/wsutil/plugins.c @@ -340,7 +340,11 @@ scan_plugins(plugin_load_failure_mode mode) } } else - plugins_scan_dir(plugin_dir, mode); + { + plugin_dir_path = g_strdup_printf("%s" G_DIR_SEPARATOR_S "%s", get_plugin_dir(), VERSION); + plugins_scan_dir(plugin_dir_path, mode); + g_free(plugin_dir_path); + } /* * If the program wasn't started with special privileges, @@ -352,7 +356,9 @@ scan_plugins(plugin_load_failure_mode mode) */ if (!started_with_special_privs()) { - plugins_scan_dir(get_plugins_pers_dir(), mode); + plugin_dir_path = g_strdup_printf("%s" G_DIR_SEPARATOR_S "%s", get_plugins_pers_dir(), VERSION); + plugins_scan_dir(plugin_dir_path, mode); + g_free(plugin_dir_path); } } }