summaryrefslogtreecommitdiff
blob: 0fb43c3550ce31876571efde8340f9702c18c4aa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
diff -Naur kicad-5.0.1-orig/CMakeLists.txt kicad-5.0.1/CMakeLists.txt
--- kicad-5.0.1-orig/CMakeLists.txt	2018-10-08 14:14:38.000000000 -0700
+++ kicad-5.0.1/CMakeLists.txt	2018-12-25 00:04:50.423849671 -0800
@@ -418,6 +418,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.0.1-orig/CMakeModules/config.h.cmake kicad-5.0.1/CMakeModules/config.h.cmake
--- kicad-5.0.1-orig/CMakeModules/config.h.cmake	2018-10-08 14:14:38.000000000 -0700
+++ kicad-5.0.1/CMakeModules/config.h.cmake	2018-12-25 00:04:39.215828924 -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.0.1-orig/common/searchhelpfilefullpath.cpp kicad-5.0.1/common/searchhelpfilefullpath.cpp
--- kicad-5.0.1-orig/common/searchhelpfilefullpath.cpp	2018-10-08 14:14:38.000000000 -0700
+++ kicad-5.0.1/common/searchhelpfilefullpath.cpp	2018-12-25 00:04:05.576771741 -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>
 
 
@@ -68,6 +68,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.
@@ -75,6 +79,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() );
@@ -103,16 +108,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( wxT( "share" ) );
     subdirs.Add( wxT( "doc" ) );
     subdirs.Add( wxT( "kicad" ) );
     subdirs.Add( wxT( "help" ) );
 
+    // For custom help path installations via ${KICAD_HELP}
+    moresubdirs.Add( wxT( "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( wxT( "doc" ) );
     altsubdirs.Add( wxT( "help" ) );
@@ -158,6 +164,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 );
 
@@ -187,8 +196,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;