You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/sci-electronics/kicad/files/kicad-5.1.5-help.patch

118 lines
4.6 KiB

diff -Naur kicad-5.1.5-orig/CMakeLists.txt kicad-5.1.5/CMakeLists.txt
--- kicad-5.1.5-orig/CMakeLists.txt 2019-11-14 09:09:45.000000000 -0800
+++ kicad-5.1.5/CMakeLists.txt 2019-12-15 03:41:57.574995996 -0800
@@ -442,6 +442,10 @@
set( KIFACE_PREFIX "_" )
#message( STATUS "KIFACE_SUFFIX:${KIFACE_SUFFIX} KIFACE_PREFIX:${KIFACE_PREFIX}" )
+# KICAD_HELP is the location of the help files accessed from the UI
+# (usually provided via kicad-doc package)
+set ( KICAD_HELP share/doc/kicad
+ CACHE PATH "Alternative location of KiCad help files.")
#================================================
# Locations for install targets.
diff -Naur kicad-5.1.5-orig/CMakeModules/config.h.cmake kicad-5.1.5/CMakeModules/config.h.cmake
--- kicad-5.1.5-orig/CMakeModules/config.h.cmake 2019-11-14 09:09:45.000000000 -0800
+++ kicad-5.1.5/CMakeModules/config.h.cmake 2019-12-15 03:42:00.368013375 -0800
@@ -59,6 +59,10 @@
/// The install prefix defined during CMake configuration or fall back to CMAKE_INSTALL_PREFIX.
#define DEFAULT_INSTALL_PATH "@DEFAULT_INSTALL_PATH@"
+/// KiCad help files path can be different on some systems allow adding alternative,
+/// search path for them. Defaults to CMAKE_INSTALL_PREFIX/share/doc/kicad
+#define KICAD_HELP "@KICAD_HELP@"
+
/// The wxPython version found during configuration.
#if defined( KICAD_SCRIPTING_WXPYTHON )
#define WXPYTHON_VERSION "@WXPYTHON_VERSION@"
diff -Naur kicad-5.1.5-orig/common/searchhelpfilefullpath.cpp kicad-5.1.5/common/searchhelpfilefullpath.cpp
--- kicad-5.1.5-orig/common/searchhelpfilefullpath.cpp 2019-11-14 09:09:45.000000000 -0800
+++ kicad-5.1.5/common/searchhelpfilefullpath.cpp 2019-12-15 03:42:03.168030796 -0800
@@ -25,7 +25,7 @@
#include <pgm_base.h>
#include <common.h>
-#include <config.h> // to define DEFAULT_INSTALL_PATH
+#include <config.h> // to define DEFAULT_INSTALL_PATH and KICAD_HELP
#include <macros.h>
#include <trace_helpers.h>
@@ -69,6 +69,10 @@
wxArrayString subdirs;
wxArrayString altsubdirs;
SEARCH_STACK ss = aSStack;
+#if ! defined(__WXMAC__) // && defined(__linux__)
+ SEARCH_STACK altss;
+ wxArrayString moresubdirs;
+#endif
// It might already be in aSStack, but why depend on other code
// far away when it's so easy to add it again (to our copy) as the first place to look.
@@ -76,6 +80,7 @@
// This is CMAKE_INSTALL_PREFIX unless DEFAULT_INSTALL_PATH was defined during
// build configuration:
ss.AddPaths( wxT( DEFAULT_INSTALL_PATH ), 0 );
+ altss.AddPaths( wxT( KICAD_HELP ), 0 );
#if defined(__WXMAC__)
ss.AddPaths( GetOSXKicadMachineDataDir() );
@@ -104,16 +109,17 @@
// Based on kicad-doc.bzr/CMakeLists.txt, line 20, the help files are
// installed into "<CMAKE_INSTALL_PREFIX>/share/doc/kicad/help" for linux.
- // This is ${KICAD_HELP} var in that CMakeLists.txt file.
// Below we account for an international subdirectory.
subdirs.Add( "share" );
subdirs.Add( "doc" );
subdirs.Add( "kicad" );
subdirs.Add( "help" );
+ // For custom help path installations via ${KICAD_HELP}
+ moresubdirs.Add( "help" );
+
// Based on kicad-doc.bzr/CMakeLists.txt, line 35, the help files are
// installed into "<CMAKE_INSTALL_PREFIX>/doc/help" for Windows.
- // This is ${KICAD_HELP} var in that CMakeLists.txt file.
// Below we account for an international subdirectory.
altsubdirs.Add( "doc" );
altsubdirs.Add( "help" );
@@ -159,6 +165,9 @@
{
subdirs.Add( locale_name_dirs[ii] );
altsubdirs.Add( locale_name_dirs[ii] );
+#if ! defined(__WXMAC__) // && defined(__linux__)
+ moresubdirs.Add( locale_name_dirs[ii] );
+#endif
fn = FindFileInSearchPaths( ss, aBaseName + wxT( ".html" ), &altsubdirs );
@@ -188,8 +197,27 @@
if( !fn.IsEmpty() )
break;
+#if ! defined(__WXMAC__) // && defined(__linux__)
+ fn = FindFileInSearchPaths( altss, aBaseName + wxT( ".html" ), &moresubdirs );
+
+ if( !fn.IsEmpty() )
+ {
+ // Prepend URI protocol since we will open in a browser
+ fn = wxT( "file://" ) + fn;
+ break;
+ }
+
+ fn = FindFileInSearchPaths( altss, aBaseName + wxT( ".pdf" ), &moresubdirs );
+
+ if( !fn.IsEmpty() )
+ break;
+#endif
+
subdirs.RemoveAt( subdirs.GetCount() - 1 );
altsubdirs.RemoveAt( altsubdirs.GetCount() - 1 );
+#if ! defined(__WXMAC__) // && defined(__linux__)
+ moresubdirs.RemoveAt( altsubdirs.GetCount() - 1 );
+#endif
}
return fn;