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
|
From 3724a283c88a5ed964ec6f23beddbb273ddbdda0 Mon Sep 17 00:00:00 2001
From: Chris Mayo <aklhfex@gmail.com>
Date: Sun, 3 Jul 2016 17:52:24 +0100
Subject: [PATCH 1/3] don't scan filesystem for application directory if
installed
Look for application files in the order:
~/.local/share/fritzing - user override
/usr/local/share/fritzing - adminstrator override
PKGDATADIR - default installation (PKGDATADIR could be
/usr/local/share/fritzing)
Use the definition of PKGDATADIR as an indicator that Fritzing will be
installed.
---
src/utils/folderutils.cpp | 17 ++++++++++-------
tools/deploy_fritzing_mac.sh | 3 +++
tools/linux_release_script/release.sh | 3 +++
3 files changed, 16 insertions(+), 7 deletions(-)
diff --git a/src/utils/folderutils.cpp b/src/utils/folderutils.cpp
index 6afce9a2..567b5cf4 100644
--- a/src/utils/folderutils.cpp
+++ b/src/utils/folderutils.cpp
@@ -74,6 +74,7 @@ QDir FolderUtils::getApplicationSubFolder(QString search) {
path += "/" + search;
//DebugDialog::debug(QString("path %1").arg(path) );
QDir dir(path);
+#ifndef PKGDATADIR
while (!dir.exists()) {
// if we're running from the debug or release folder, try go up one to find things
dir.cdUp();
@@ -85,7 +86,7 @@ QDir FolderUtils::getApplicationSubFolder(QString search) {
dir.setPath(dir.absolutePath() + "/" + search);
}
-
+#endif
return dir;
}
@@ -215,8 +216,15 @@ const QString FolderUtils::applicationDirPath() {
#ifdef Q_OS_WIN
m_appPath = QCoreApplication::applicationDirPath();
#else
- // look in standard Fritzing location (applicationDirPath and parent folders) then in standard linux locations
QStringList candidates;
+ // Look in standard Linux user and local administrator locations
+ candidates.append(QDir::homePath() + "/.local/share/fritzing");
+ candidates.append("/usr/local/share/fritzing");
+#ifdef PKGDATADIR
+ // look in installed location
+ candidates.append(QLatin1String(PKGDATADIR));
+#else
+ // look in standard Fritzing location (applicationDirPath and parent folders)
candidates.append(QCoreApplication::applicationDirPath());
QDir dir(QCoreApplication::applicationDirPath());
if (dir.cdUp()) {
@@ -229,13 +237,8 @@ const QString FolderUtils::applicationDirPath() {
}
}
-#ifdef PKGDATADIR
- candidates.append(QLatin1String(PKGDATADIR));
-#else
candidates.append("/usr/share/fritzing");
- candidates.append("/usr/local/share/fritzing");
#endif
- candidates.append(QDir::homePath() + "/.local/share/fritzing");
foreach (QString candidate, candidates) {
//DebugDialog::debug(QString("candidate:%1").arg(candidate));
QDir dir(candidate);
diff --git a/tools/deploy_fritzing_mac.sh b/tools/deploy_fritzing_mac.sh
index ead7e8e4..5eb2de8e 100755
--- a/tools/deploy_fritzing_mac.sh
+++ b/tools/deploy_fritzing_mac.sh
@@ -19,6 +19,9 @@ builddir=$workingdir/../release64 # this is pre-defined by Qt
echo ">> build directory"
echo "$builddir"
+# not building for installation into filesystem
+sed -i 's:PKGDATADIR=\\\\\\"\$\$PKGDATADIR\\\\\\"::' phoenix.pro || exit 1
+
echo ">> building fritzing from working directory"
$QTBIN/qmake -o Makefile phoenix.pro
make "-j$(sysctl -n machdep.cpu.thread_count)" release # release is the type of build
diff --git a/tools/linux_release_script/release.sh b/tools/linux_release_script/release.sh
index a383c8d9..8c40c5aa 100755
--- a/tools/linux_release_script/release.sh
+++ b/tools/linux_release_script/release.sh
@@ -54,6 +54,9 @@ else
arch='i386'
fi
+# not building for installation into filesystem
+sed -i 's:PKGDATADIR=\\\\\\"\$\$PKGDATADIR\\\\\\"::' phoenix.pro || exit 1
+
quazip='QUAZIP_LIB'
echo "using src/lib/quazip"
--
2.24.0
|