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;
|