From 3f1f474f8ceab75acda7c1d0a36cc9c33c6124b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Br=C3=BCns?= Date: Tue, 9 Oct 2018 17:35:55 +0200 Subject: [PATCH] Use absolute path CMAKE_INSTALL_FULL_LIBDIR for 3d viewer PLUGINDIR Currently, the plugindir in the plugin manager is constructed as {CMAKE_INSTALL_PREFIX}/bin/../{CMAKE_INSTALL_LIBDIR}/kicad/..., while CMakes install uses {CMAKE_INSTALL_LIBDIR}/kicad/... In case CMAKE_INSTALL_LIBDIR is a relative path "install" prefixes it with CMAKE_INSTALL_PREFIX and both paths happen to match, otherwise the constructed path ends up as e.g. "/usr/bin/../usr/lib/kicad/...". For these cases where an absolute path is wanted CMake provides the CMAKE_INSTALL_FULL_ variants which works the same as CMAKE_INSTALL_ when used as DIRECTORY for install. --- 3d-viewer/3d_cache/3d_plugin_manager.cpp | 10 +++------- 3d-viewer/3d_plugin_dir.h.in | 2 +- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/3d-viewer/3d_cache/3d_plugin_manager.cpp b/3d-viewer/3d_cache/3d_plugin_manager.cpp index 52f2cef..fc561e7 100644 --- a/3d-viewer/3d_cache/3d_plugin_manager.cpp +++ b/3d-viewer/3d_cache/3d_plugin_manager.cpp @@ -149,14 +149,10 @@ void S3D_PLUGIN_MANAGER::loadPlugins( void ) #endif #ifndef _WIN32 - // multiarch friendly determination of the plugin directory: the executable dir - // is first determined via wxStandardPaths::Get().GetExecutablePath() and then - // the CMAKE_INSTALL_LIBDIR path is appended relative to the executable dir. + // PLUGINDIR = CMAKE_INSTALL_FULL_LIBDIR path is the absolute path + // corresponding to the install path used for constructing KICAD_USER_PLUGIN - fn.Assign( wxStandardPaths::Get().GetExecutablePath() ); - fn.RemoveLastDir(); - wxString tfname = fn.GetPathWithSep(); - tfname.Append( wxString::FromUTF8Unchecked( PLUGINDIR ) ); + wxString tfname = wxString::FromUTF8Unchecked( PLUGINDIR ); fn.Assign( tfname, ""); fn.AppendDir( "kicad" ); #else diff --git a/3d-viewer/3d_plugin_dir.h.in b/3d-viewer/3d_plugin_dir.h.in index 6cf6de2..fb923ec 100644 --- a/3d-viewer/3d_plugin_dir.h.in +++ b/3d-viewer/3d_plugin_dir.h.in @@ -1 +1 @@ -#define PLUGINDIR "@CMAKE_INSTALL_LIBDIR@" +#define PLUGINDIR "@CMAKE_INSTALL_FULL_LIBDIR@" -- 2.19.0