Kick the osx specific path helpers into PATHS
This commit is contained in:
parent
ba6aa3e034
commit
b609c7dcd6
|
@ -163,10 +163,10 @@ void S3D_PLUGIN_MANAGER::loadPlugins( void )
|
|||
|
||||
// Search path on OS X is
|
||||
// (1) User ~/Library/Application Support/kicad/PlugIns/3d
|
||||
checkPluginPath( GetOSXKicadUserDataDir() + wxT( "/PlugIns/3d" ), searchpaths );
|
||||
checkPluginPath( PATHS::GetOSXKicadUserDataDir() + wxT( "/PlugIns/3d" ), searchpaths );
|
||||
|
||||
// (2) Machine /Library/Application Support/kicad/PlugIns/3d
|
||||
checkPluginPath( GetOSXKicadMachineDataDir() + wxT( "/PlugIns/3d" ), searchpaths );
|
||||
checkPluginPath( PATHS::GetOSXKicadMachineDataDir() + wxT( "/PlugIns/3d" ), searchpaths );
|
||||
|
||||
// (3) Bundle kicad.app/Contents/PlugIns/3d
|
||||
fn.AssignDir( PATHS::GetStockPlugins3DPath() );
|
||||
|
|
|
@ -347,54 +347,6 @@ bool EnsureFileDirectoryExists( wxFileName* aTargetFullFileName,
|
|||
}
|
||||
|
||||
|
||||
#ifdef __WXMAC__
|
||||
wxString GetOSXKicadUserDataDir()
|
||||
{
|
||||
// According to wxWidgets documentation for GetUserDataDir:
|
||||
// Mac: ~/Library/Application Support/appname
|
||||
wxFileName udir( wxStandardPaths::Get().GetUserDataDir(), wxEmptyString );
|
||||
|
||||
// Since appname is different if started via launcher or standalone binary
|
||||
// map all to "kicad" here
|
||||
udir.RemoveLastDir();
|
||||
udir.AppendDir( "kicad" );
|
||||
|
||||
return udir.GetPath();
|
||||
}
|
||||
|
||||
|
||||
wxString GetOSXKicadMachineDataDir()
|
||||
{
|
||||
return wxT( "/Library/Application Support/kicad" );
|
||||
}
|
||||
|
||||
|
||||
wxString GetOSXKicadDataDir()
|
||||
{
|
||||
// According to wxWidgets documentation for GetDataDir:
|
||||
// Mac: appname.app/Contents/SharedSupport bundle subdirectory
|
||||
wxFileName ddir( wxStandardPaths::Get().GetDataDir(), wxEmptyString );
|
||||
|
||||
// This must be mapped to main bundle for everything but kicad.app
|
||||
const wxArrayString dirs = ddir.GetDirs();
|
||||
if( dirs[dirs.GetCount() - 3] != wxT( "kicad.app" ) )
|
||||
{
|
||||
// Bundle structure resp. current path is
|
||||
// kicad.app/Contents/Applications/<standalone>.app/Contents/SharedSupport
|
||||
// and will be mapped to
|
||||
// kicad.app/Contents/SharedSupprt
|
||||
ddir.RemoveLastDir();
|
||||
ddir.RemoveLastDir();
|
||||
ddir.RemoveLastDir();
|
||||
ddir.RemoveLastDir();
|
||||
ddir.AppendDir( wxT( "SharedSupport" ) );
|
||||
}
|
||||
|
||||
return ddir.GetPath();
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
// add this only if it is not in wxWidgets (for instance before 3.1.0)
|
||||
#ifdef USE_KICAD_WXSTRING_HASH
|
||||
size_t std::hash<wxString>::operator()( const wxString& s ) const
|
||||
|
|
|
@ -239,3 +239,51 @@ void PATHS::EnsureUserPathsExist()
|
|||
EnsurePathExists( GetDefaultUserFootprintsPath() );
|
||||
EnsurePathExists( GetDefaultUser3DModelsPath() );
|
||||
}
|
||||
|
||||
|
||||
#ifdef __WXMAC__
|
||||
wxString PATHS::GetOSXKicadUserDataDir()
|
||||
{
|
||||
// According to wxWidgets documentation for GetUserDataDir:
|
||||
// Mac: ~/Library/Application Support/appname
|
||||
wxFileName udir( wxStandardPaths::Get().GetUserDataDir(), wxEmptyString );
|
||||
|
||||
// Since appname is different if started via launcher or standalone binary
|
||||
// map all to "kicad" here
|
||||
udir.RemoveLastDir();
|
||||
udir.AppendDir( "kicad" );
|
||||
|
||||
return udir.GetPath();
|
||||
}
|
||||
|
||||
|
||||
wxString PATHS::GetOSXKicadMachineDataDir()
|
||||
{
|
||||
return wxT( "/Library/Application Support/kicad" );
|
||||
}
|
||||
|
||||
|
||||
wxString PATHS::GetOSXKicadDataDir()
|
||||
{
|
||||
// According to wxWidgets documentation for GetDataDir:
|
||||
// Mac: appname.app/Contents/SharedSupport bundle subdirectory
|
||||
wxFileName ddir( wxStandardPaths::Get().GetDataDir(), wxEmptyString );
|
||||
|
||||
// This must be mapped to main bundle for everything but kicad.app
|
||||
const wxArrayString dirs = ddir.GetDirs();
|
||||
if( dirs[dirs.GetCount() - 3] != wxT( "kicad.app" ) )
|
||||
{
|
||||
// Bundle structure resp. current path is
|
||||
// kicad.app/Contents/Applications/<standalone>.app/Contents/SharedSupport
|
||||
// and will be mapped to
|
||||
// kicad.app/Contents/SharedSupprt
|
||||
ddir.RemoveLastDir();
|
||||
ddir.RemoveLastDir();
|
||||
ddir.RemoveLastDir();
|
||||
ddir.RemoveLastDir();
|
||||
ddir.AppendDir( wxT( "SharedSupport" ) );
|
||||
}
|
||||
|
||||
return ddir.GetPath();
|
||||
}
|
||||
#endif
|
|
@ -29,6 +29,7 @@
|
|||
#include <macros.h>
|
||||
#include <wx/log.h>
|
||||
#include <trace_helpers.h>
|
||||
#include <paths.h>
|
||||
|
||||
|
||||
/**
|
||||
|
@ -79,7 +80,7 @@ wxString SearchHelpFileFullPath( const SEARCH_STACK& aSStack, const wxString& aB
|
|||
ss.AddPaths( wxT( DEFAULT_INSTALL_PATH ), 0 );
|
||||
|
||||
#if defined(__WXMAC__)
|
||||
ss.AddPaths( GetOSXKicadMachineDataDir() );
|
||||
ss.AddPaths( PATHS::GetOSXKicadMachineDataDir() );
|
||||
ss.AddPaths( Pgm().GetExecutablePath(), 0 );
|
||||
|
||||
// OS X packages can have the help files in
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
#include <search_stack.h>
|
||||
#include <pgm_base.h>
|
||||
#include <config.h> // to define DEFAULT_INSTALL_PATH
|
||||
|
||||
#include <paths.h>
|
||||
|
||||
// put your best guesses in here, send the computer on a wild goose chase, its
|
||||
// got nothing else to do.
|
||||
|
@ -53,13 +53,13 @@ void SystemDirsAppend( SEARCH_STACK* aSearchStack )
|
|||
|
||||
#ifdef __WXMAC__
|
||||
// Add the directory for the user-dependent, program specific data files.
|
||||
maybe.AddPaths( GetOSXKicadUserDataDir() );
|
||||
maybe.AddPaths( PATHS::GetOSXKicadUserDataDir() );
|
||||
|
||||
// Global machine specific application data
|
||||
maybe.AddPaths( GetOSXKicadMachineDataDir() );
|
||||
maybe.AddPaths( PATHS::GetOSXKicadMachineDataDir() );
|
||||
|
||||
// Global application specific data files inside bundle
|
||||
maybe.AddPaths( GetOSXKicadDataDir() );
|
||||
maybe.AddPaths( PATHS::GetOSXKicadDataDir() );
|
||||
#else
|
||||
// This is from CMAKE_INSTALL_PREFIX.
|
||||
// Useful when KiCad is installed by `make install`.
|
||||
|
|
|
@ -44,6 +44,7 @@
|
|||
#include <reporter.h>
|
||||
#include <sch_edit_frame.h>
|
||||
#include <schematic.h>
|
||||
#include <paths.h>
|
||||
|
||||
#include <dialogs/dialog_bom_cfg_lexer.h>
|
||||
|
||||
|
@ -352,7 +353,7 @@ void DIALOG_BOM::installGeneratorsList()
|
|||
#elif defined(__WXMSW__)
|
||||
wxString::Format( "%s\\scripting\\plugins", Pgm().GetExecutablePath() ),
|
||||
#elif defined(__WXMAC__)
|
||||
wxString::Format( "%s/plugins", GetOSXKicadDataDir() ),
|
||||
wxString::Format( "%s/plugins", PATHS::GetOSXKicadDataDir() ),
|
||||
#endif
|
||||
};
|
||||
|
||||
|
@ -562,7 +563,7 @@ wxString DIALOG_BOM::chooseGenerator()
|
|||
#ifndef __WXMAC__
|
||||
lastPath = Pgm().GetExecutablePath();
|
||||
#else
|
||||
lastPath = GetOSXKicadDataDir() + "/plugins";
|
||||
lastPath = PATHS::GetOSXKicadDataDir() + "/plugins";
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
@ -45,6 +45,7 @@
|
|||
#include <netlist_exporters/netlist_exporter_pspice.h>
|
||||
#include <eeschema_settings.h>
|
||||
#include <schematic.h>
|
||||
#include <paths.h>
|
||||
|
||||
#include <eeschema_id.h>
|
||||
#include <wx/regex.h>
|
||||
|
@ -748,7 +749,7 @@ void NETLIST_DIALOG_ADD_GENERATOR::OnBrowseGenerators( wxCommandEvent& event )
|
|||
#ifndef __WXMAC__
|
||||
Path = Pgm().GetExecutablePath();
|
||||
#else
|
||||
Path = GetOSXKicadDataDir() + wxT( "/plugins" );
|
||||
Path = PATHS::GetOSXKicadDataDir() + wxT( "/plugins" );
|
||||
#endif
|
||||
FullFileName = EDA_FILE_SELECTOR( _( "Generator files:" ), Path, FullFileName,
|
||||
wxEmptyString, wxFileSelectorDefaultWildcardStr,
|
||||
|
|
|
@ -34,6 +34,8 @@
|
|||
#include <common.h>
|
||||
#include <locale_io.h>
|
||||
|
||||
#include <paths.h>
|
||||
|
||||
#include <wx/stdpaths.h>
|
||||
#include <wx/dir.h>
|
||||
|
||||
|
@ -344,8 +346,8 @@ void NGSPICE::init_dll()
|
|||
#endif
|
||||
#elif defined(__WXMAC__)
|
||||
const vector<string> dllPaths = {
|
||||
GetOSXKicadUserDataDir().ToStdString() + "/PlugIns/ngspice",
|
||||
GetOSXKicadMachineDataDir().ToStdString() + "/PlugIns/ngspice",
|
||||
PATHS::GetOSXKicadUserDataDir().ToStdString() + "/PlugIns/ngspice",
|
||||
PATHS::GetOSXKicadMachineDataDir().ToStdString() + "/PlugIns/ngspice",
|
||||
// when running kicad.app
|
||||
stdPaths.GetPluginsDir().ToStdString() + "/sim",
|
||||
// when running eeschema.app
|
||||
|
|
|
@ -124,26 +124,6 @@ wxString ExpandTextVars( const wxString& aSource, const PROJECT* aProject );
|
|||
*/
|
||||
const wxString ResolveUriByEnvVars( const wxString& aUri, PROJECT* aProject );
|
||||
|
||||
|
||||
#ifdef __WXMAC__
|
||||
/**
|
||||
* OSX specific function GetOSXKicadUserDataDir
|
||||
*
|
||||
* @return The macOS specific user data directory for KiCad.
|
||||
*/
|
||||
wxString GetOSXKicadUserDataDir();
|
||||
|
||||
/**
|
||||
* @return The macOS specific machine data directory for KiCad
|
||||
*/
|
||||
wxString GetOSXKicadMachineDataDir();
|
||||
|
||||
/**
|
||||
* @return The macOS specific bundle data directory for KiCad
|
||||
*/
|
||||
wxString GetOSXKicadDataDir();
|
||||
#endif
|
||||
|
||||
// Some wxWidgets versions (for instance before 3.1.0) do not include
|
||||
// this function, so add it if missing
|
||||
#if !wxCHECK_VERSION( 3, 1, 0 )
|
||||
|
|
|
@ -97,6 +97,25 @@ public:
|
|||
*/
|
||||
static void EnsureUserPathsExist();
|
||||
|
||||
#ifdef __WXMAC__
|
||||
/**
|
||||
* OSX specific function GetOSXKicadUserDataDir
|
||||
*
|
||||
* @return The macOS specific user data directory for KiCad.
|
||||
*/
|
||||
static wxString GetOSXKicadUserDataDir();
|
||||
|
||||
/**
|
||||
* @return The macOS specific machine data directory for KiCad
|
||||
*/
|
||||
static wxString GetOSXKicadMachineDataDir();
|
||||
|
||||
/**
|
||||
* @return The macOS specific bundle data directory for KiCad
|
||||
*/
|
||||
static wxString GetOSXKicadDataDir();
|
||||
#endif
|
||||
|
||||
private:
|
||||
// we are a static helper
|
||||
PATHS() {}
|
||||
|
|
|
@ -54,6 +54,7 @@
|
|||
#include <footprint_preview_panel.h>
|
||||
#include <footprint_info_impl.h>
|
||||
#include <dialogs/dialog_configure_paths.h>
|
||||
#include <paths.h>
|
||||
#include "invoke_pcb_dialog.h"
|
||||
#include "dialog_global_fp_lib_table_config.h"
|
||||
|
||||
|
@ -246,7 +247,7 @@ static bool scriptingSetup()
|
|||
wxString pypath;
|
||||
|
||||
// Bundle scripting folder (<kicad.app>/Contents/SharedSupport/scripting)
|
||||
pypath += GetOSXKicadDataDir() + wxT( "/scripting" );
|
||||
pypath += PATHS::GetOSXKicadDataDir() + wxT( "/scripting" );
|
||||
|
||||
// $(KICAD_PATH)/scripting/plugins is always added in kicadplugins.i
|
||||
if( wxGetenv("KICAD_PATH") != NULL )
|
||||
|
|
Loading…
Reference in New Issue