#include #include #include #include /** * Function FindKicadHelpPath * finds the absolute path for KiCad "help" (or "help/<language>") * Find path kicad/doc/help/xx/ or kicad/doc/help/: * from BinDir * else from environment variable KICAD * else from one of s_HelpPathList * typically c:/kicad/doc/help or /usr/share/kicad/help * or /usr/local/share/kicad/help * (must have kicad in path name) * * xx = iso639-1 language id (2 letters (generic) or 4 letters): * fr = french (or fr_FR) * en = English (or en_GB or en_US ...) * de = deutch * es = spanish * pt = portuguese (or pt_BR ...) * * default = en (if not found = fr) */ wxString FindKicadHelpPath() { bool found = false; wxString bin_dir = Pgm().GetExecutablePath(); if( bin_dir.Last() == '/' ) bin_dir.RemoveLast(); wxString fullPath = bin_dir.BeforeLast( '/' ); // cd .. fullPath += wxT( "/doc/help/" ); wxString localeString = Pgm().GetLocale()->GetCanonicalName(); wxString path_tmp = fullPath; #ifdef __WINDOWS__ path_tmp.MakeLower(); #endif if( path_tmp.Contains( wxT( "kicad" ) ) ) { if( wxDirExists( fullPath ) ) found = true; } // find kicad/help/ from environment variable KICAD if( !found && Pgm().IsKicadEnvVariableDefined() ) { fullPath = Pgm().GetKicadEnvVariable() + wxT( "/doc/help/" ); if( wxDirExists( fullPath ) ) found = true; } if( !found ) { // Possibilities online help const static wxChar* possibilities[] = { #ifdef __WINDOWS__ wxT( "c:/kicad/doc/help/" ), wxT( "d:/kicad/doc/help/" ), wxT( "c:/Program Files/kicad/doc/help/" ), wxT( "d:/Program Files/kicad/doc/help/" ), #else wxT( "/usr/share/doc/kicad/help/" ), wxT( "/usr/local/share/doc/kicad/help/" ), wxT( "/usr/local/kicad/doc/help/" ), // default install for "universal // tarballs" and build for a server // (new) wxT( "/usr/local/kicad/help/" ), // default install for "universal // tarballs" and build for a server // (old) #endif }; for( unsigned i=0; i