summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Kintel <marius@kintel.net>2011-12-24 21:02:37 (GMT)
committerMarius Kintel <marius@kintel.net>2011-12-24 21:02:37 (GMT)
commit0ab51d2d23045021aed225dec8d3c3003316a124 (patch)
tree56550f802d302e9ab4664e591581a273013c0934
parentdc4bc159251e8300fa51554f50008d8c59a50a02 (diff)
Extracted librarydir initialization to separate function
-rw-r--r--openscad.pro6
-rw-r--r--src/highlighter.cc2
-rw-r--r--src/lexer.l2
-rw-r--r--src/mainwin.cc1
-rw-r--r--src/openscad.cc21
-rw-r--r--src/openscad.h2
-rw-r--r--src/parsersettings.cc25
-rw-r--r--src/parsersettings.h11
-rw-r--r--tests/CMakeLists.txt1
-rw-r--r--tests/cgalpngtest.cc20
-rw-r--r--tests/cgaltest.cc21
-rw-r--r--tests/csgtermtest.cc21
-rw-r--r--tests/csgtestcore.cc21
-rw-r--r--tests/csgtexttest.cc21
-rw-r--r--tests/dumptest.cc21
-rw-r--r--tests/echotest.cc21
16 files changed, 58 insertions, 159 deletions
diff --git a/openscad.pro b/openscad.pro
index 50a419d..80e2b80 100644
--- a/openscad.pro
+++ b/openscad.pro
@@ -134,7 +134,8 @@ FORMS += src/MainWindow.ui \
src/Preferences.ui \
src/OpenCSGWarningDialog.ui
-HEADERS += src/renderer.h \
+HEADERS += src/parsersettings.h \
+ src/renderer.h \
src/rendersettings.h \
src/ThrownTogetherRenderer.h \
src/CGAL_renderer.h \
@@ -187,7 +188,8 @@ HEADERS += src/renderer.h \
src/system-gl.h \
src/stl-utils.h
-SOURCES += src/openscad.cc \
+SOURCES += src/parsersettings.cc \
+ src/openscad.cc \
src/mainwin.cc \
src/handle_dep.cc \
src/renderer.cc \
diff --git a/src/highlighter.cc b/src/highlighter.cc
index 759826c..64ea980 100644
--- a/src/highlighter.cc
+++ b/src/highlighter.cc
@@ -25,7 +25,7 @@
*/
#include "highlighter.h"
-#include "openscad.h" // extern int parser_error_pos;
+#include "parsersettings.h" // extern int parser_error_pos;
#ifdef _QCODE_EDIT_
Highlighter::Highlighter(QDocument *parent)
diff --git a/src/lexer.l b/src/lexer.l
index c799028..2102642 100644
--- a/src/lexer.l
+++ b/src/lexer.l
@@ -27,8 +27,8 @@
%{
#include "handle_dep.h"
-#include "openscad.h" // librarydir
#include "printutils.h"
+#include "parsersettings.h"
#include "parser_yacc.h"
#include <QStack>
#include <QFileInfo>
diff --git a/src/mainwin.cc b/src/mainwin.cc
index 3243847..6ef7777 100644
--- a/src/mainwin.cc
+++ b/src/mainwin.cc
@@ -27,6 +27,7 @@
#include "PolySetCache.h"
#include "MainWindow.h"
#include "openscad.h" // examplesdir
+#include "parsersettings.h"
#include "Preferences.h"
#include "printutils.h"
#include "node.h"
diff --git a/src/openscad.cc b/src/openscad.cc
index 0d5b25e..8b81f48 100644
--- a/src/openscad.cc
+++ b/src/openscad.cc
@@ -35,6 +35,7 @@
#include "nodedumper.h"
#include "printutils.h"
#include "handle_dep.h"
+#include "parsersettings.h"
#include <string>
#include <vector>
@@ -85,7 +86,6 @@ static void version()
std::string commandline_commands;
QString currentdir;
QString examplesdir;
-QString librarydir;
using std::string;
using std::vector;
@@ -221,24 +221,7 @@ int main(int argc, char **argv)
examplesdir = exdir.path();
}
- QDir libdir(QApplication::instance()->applicationDirPath());
-#ifdef Q_WS_MAC
- libdir.cd("../Resources"); // Libraries can be bundled
- if (!libdir.exists("libraries")) libdir.cd("../../..");
-#elif defined(Q_OS_UNIX)
- if (libdir.cd("../share/openscad/libraries")) {
- librarydir = libdir.path();
- } else
- if (libdir.cd("../../share/openscad/libraries")) {
- librarydir = libdir.path();
- } else
- if (libdir.cd("../../libraries")) {
- librarydir = libdir.path();
- } else
-#endif
- if (libdir.cd("libraries")) {
- librarydir = libdir.path();
- }
+ parser_init();
// Initialize global visitors
NodeCache nodecache;
diff --git a/src/openscad.h b/src/openscad.h
index 61aec0e..23ae4da 100644
--- a/src/openscad.h
+++ b/src/openscad.h
@@ -32,7 +32,6 @@ extern int get_fragments_from_r(double r, double fn, double fs, double fa);
#include <string>
extern std::string commandline_commands;
-extern int parser_error_pos;
#include <QString>
// The CWD when application started. We shouldn't change CWD, but until we stop
@@ -40,7 +39,6 @@ extern int parser_error_pos;
extern QString currentdir;
extern QString examplesdir;
-extern QString librarydir;
#endif
diff --git a/src/parsersettings.cc b/src/parsersettings.cc
new file mode 100644
index 0000000..bdd5eeb
--- /dev/null
+++ b/src/parsersettings.cc
@@ -0,0 +1,25 @@
+#include "parsersettings.h"
+#include <QApplication>
+#include <QDir>
+
+QString librarydir;
+
+void parser_init()
+{
+ QDir libdir(QApplication::instance()->applicationDirPath());
+#ifdef Q_WS_MAC
+ libdir.cd("../Resources"); // Libraries can be bundled
+ if (!libdir.exists("libraries")) libdir.cd("../../..");
+#elif defined(Q_OS_UNIX)
+ if (libdir.cd("../share/openscad/libraries")) {
+ librarydir = libdir.path();
+ } else if (libdir.cd("../../share/openscad/libraries")) {
+ librarydir = libdir.path();
+ } else if (libdir.cd("../../libraries")) {
+ librarydir = libdir.path();
+ } else
+#endif
+ if (libdir.cd("libraries")) {
+ librarydir = libdir.path();
+ }
+}
diff --git a/src/parsersettings.h b/src/parsersettings.h
new file mode 100644
index 0000000..7089df9
--- /dev/null
+++ b/src/parsersettings.h
@@ -0,0 +1,11 @@
+#ifndef PARSERSETTINGS_H_
+#define PARSERSETTINGS_H_
+
+#include <QString>
+
+extern QString librarydir;
+extern int parser_error_pos;
+
+void parser_init();
+
+#endif
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index c6db700..dd4e6a8 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -243,6 +243,7 @@ add_definitions(-DOPENSCAD_TESTING)
set(CORE_SOURCES
tests-common.cc
+ ../src/parsersettings.cc
../src/mathc99.cc
../src/linalg.cc
../src/handle_dep.cc
diff --git a/tests/cgalpngtest.cc b/tests/cgalpngtest.cc
index 800a829..59f0d53 100644
--- a/tests/cgalpngtest.cc
+++ b/tests/cgalpngtest.cc
@@ -57,7 +57,6 @@
std::string commandline_commands;
QString currentdir;
QString examplesdir;
-QString librarydir;
using std::string;
@@ -111,25 +110,6 @@ int main(int argc, char **argv)
currentdir = QDir::currentPath();
- QDir libdir(QApplication::instance()->applicationDirPath());
-#ifdef Q_WS_MAC
- libdir.cd("../Resources"); // Libraries can be bundled
- if (!libdir.exists("libraries")) libdir.cd("../../..");
-#elif defined(Q_OS_UNIX)
- if (libdir.cd("../share/openscad/libraries")) {
- librarydir = libdir.path();
- } else
- if (libdir.cd("../../share/openscad/libraries")) {
- librarydir = libdir.path();
- } else
- if (libdir.cd("../../libraries")) {
- librarydir = libdir.path();
- } else
-#endif
- if (libdir.cd("libraries")) {
- librarydir = libdir.path();
- }
-
Context root_ctx;
register_builtin(root_ctx);
diff --git a/tests/cgaltest.cc b/tests/cgaltest.cc
index 055e970..6412338 100644
--- a/tests/cgaltest.cc
+++ b/tests/cgaltest.cc
@@ -26,6 +26,7 @@
#include "tests-common.h"
#include "openscad.h"
+#include "parsersettings.h"
#include "node.h"
#include "module.h"
#include "context.h"
@@ -52,7 +53,6 @@
std::string commandline_commands;
QString currentdir;
QString examplesdir;
-QString librarydir;
using std::string;
@@ -90,24 +90,7 @@ int main(int argc, char **argv)
currentdir = QDir::currentPath();
- QDir libdir(QApplication::instance()->applicationDirPath());
-#ifdef Q_WS_MAC
- libdir.cd("../Resources"); // Libraries can be bundled
- if (!libdir.exists("libraries")) libdir.cd("../../..");
-#elif defined(Q_OS_UNIX)
- if (libdir.cd("../share/openscad/libraries")) {
- librarydir = libdir.path();
- } else
- if (libdir.cd("../../share/openscad/libraries")) {
- librarydir = libdir.path();
- } else
- if (libdir.cd("../../libraries")) {
- librarydir = libdir.path();
- } else
-#endif
- if (libdir.cd("libraries")) {
- librarydir = libdir.path();
- }
+ parser_init();
Context root_ctx;
register_builtin(root_ctx);
diff --git a/tests/csgtermtest.cc b/tests/csgtermtest.cc
index aabbc05..52e55c4 100644
--- a/tests/csgtermtest.cc
+++ b/tests/csgtermtest.cc
@@ -28,6 +28,7 @@
#include "PolySetEvaluator.h"
#include "CSGTermEvaluator.h"
#include "openscad.h"
+#include "parsersettings.h"
#include "node.h"
#include "module.h"
#include "context.h"
@@ -54,7 +55,6 @@ using std::cout;
std::string commandline_commands;
QString currentdir;
QString examplesdir;
-QString librarydir;
int main(int argc, char **argv)
{
@@ -75,24 +75,7 @@ int main(int argc, char **argv)
currentdir = QDir::currentPath();
- QDir libdir(QApplication::instance()->applicationDirPath());
-#ifdef Q_WS_MAC
- libdir.cd("../Resources"); // Libraries can be bundled
- if (!libdir.exists("libraries")) libdir.cd("../../..");
-#elif defined(Q_OS_UNIX)
- if (libdir.cd("../share/openscad/libraries")) {
- librarydir = libdir.path();
- } else
- if (libdir.cd("../../share/openscad/libraries")) {
- librarydir = libdir.path();
- } else
- if (libdir.cd("../../libraries")) {
- librarydir = libdir.path();
- } else
-#endif
- if (libdir.cd("libraries")) {
- librarydir = libdir.path();
- }
+ parser_init();
Context root_ctx;
register_builtin(root_ctx);
diff --git a/tests/csgtestcore.cc b/tests/csgtestcore.cc
index c2be326..7ad0a35 100644
--- a/tests/csgtestcore.cc
+++ b/tests/csgtestcore.cc
@@ -4,6 +4,7 @@
#include "tests-common.h"
#include "system-gl.h"
#include "openscad.h"
+#include "parsersettings.h"
#include "builtin.h"
#include "context.h"
#include "node.h"
@@ -39,7 +40,6 @@ using std::cerr;
using std::cout;
std::string commandline_commands;
-QString librarydir;
//#define DEBUG
@@ -255,24 +255,7 @@ int csgtestcore(int argc, char *argv[], test_type_e test_type)
QString currentdir = QDir::currentPath();
- QDir libdir(QApplication::instance()->applicationDirPath());
-#ifdef Q_WS_MAC
- libdir.cd("../Resources"); // Libraries can be bundled
- if (!libdir.exists("libraries")) libdir.cd("../../..");
-#elif defined(Q_OS_UNIX)
- if (libdir.cd("../share/openscad/libraries")) {
- librarydir = libdir.path();
- } else
- if (libdir.cd("../../share/openscad/libraries")) {
- librarydir = libdir.path();
- } else
- if (libdir.cd("../../libraries")) {
- librarydir = libdir.path();
- } else
-#endif
- if (libdir.cd("libraries")) {
- librarydir = libdir.path();
- }
+ parser_init();
Context root_ctx;
register_builtin(root_ctx);
diff --git a/tests/csgtexttest.cc b/tests/csgtexttest.cc
index d7f94f1..2c54ed4 100644
--- a/tests/csgtexttest.cc
+++ b/tests/csgtexttest.cc
@@ -28,6 +28,7 @@
#include "CSGTextRenderer.h"
#include "CSGTextCache.h"
#include "openscad.h"
+#include "parsersettings.h"
#include "node.h"
#include "module.h"
#include "context.h"
@@ -51,7 +52,6 @@
std::string commandline_commands;
QString currentdir;
QString examplesdir;
-QString librarydir;
void csgTree(CSGTextCache &cache, const AbstractNode &root)
{
@@ -79,24 +79,7 @@ int main(int argc, char **argv)
currentdir = QDir::currentPath();
- QDir libdir(QApplication::instance()->applicationDirPath());
-#ifdef Q_WS_MAC
- libdir.cd("../Resources"); // Libraries can be bundled
- if (!libdir.exists("libraries")) libdir.cd("../../..");
-#elif defined(Q_OS_UNIX)
- if (libdir.cd("../share/openscad/libraries")) {
- librarydir = libdir.path();
- } else
- if (libdir.cd("../../share/openscad/libraries")) {
- librarydir = libdir.path();
- } else
- if (libdir.cd("../../libraries")) {
- librarydir = libdir.path();
- } else
-#endif
- if (libdir.cd("libraries")) {
- librarydir = libdir.path();
- }
+ parser_init();
Context root_ctx;
register_builtin(root_ctx);
diff --git a/tests/dumptest.cc b/tests/dumptest.cc
index 22dd96c..4b1d907 100644
--- a/tests/dumptest.cc
+++ b/tests/dumptest.cc
@@ -26,6 +26,7 @@
#include "tests-common.h"
#include "openscad.h"
+#include "parsersettings.h"
#include "node.h"
#include "module.h"
#include "context.h"
@@ -51,7 +52,6 @@ using std::string;
std::string commandline_commands;
QString currentdir;
QString examplesdir;
-QString librarydir;
string dumptree(const Tree &tree, const AbstractNode &node)
{
@@ -86,24 +86,7 @@ int main(int argc, char **argv)
currentdir = QDir::currentPath();
- QDir libdir(QApplication::instance()->applicationDirPath());
-#ifdef Q_WS_MAC
- libdir.cd("../Resources"); // Libraries can be bundled
- if (!libdir.exists("libraries")) libdir.cd("../../..");
-#elif defined(Q_OS_UNIX)
- if (libdir.cd("../share/openscad/libraries")) {
- librarydir = libdir.path();
- } else
- if (libdir.cd("../../share/openscad/libraries")) {
- librarydir = libdir.path();
- } else
- if (libdir.cd("../../libraries")) {
- librarydir = libdir.path();
- } else
-#endif
- if (libdir.cd("libraries")) {
- librarydir = libdir.path();
- }
+ parser_init();
Context root_ctx;
register_builtin(root_ctx);
diff --git a/tests/echotest.cc b/tests/echotest.cc
index afa3d03..9569f09 100644
--- a/tests/echotest.cc
+++ b/tests/echotest.cc
@@ -26,6 +26,7 @@
#include "tests-common.h"
#include "openscad.h"
+#include "parsersettings.h"
#include "node.h"
#include "module.h"
#include "context.h"
@@ -50,7 +51,6 @@ using std::string;
std::string commandline_commands;
QString currentdir;
QString examplesdir;
-QString librarydir;
static void outfile_handler(const std::string &msg, void *userdata) {
std::ostream *str = static_cast<std::ostream*>(userdata);
@@ -87,24 +87,7 @@ int main(int argc, char **argv)
currentdir = QDir::currentPath();
- QDir libdir(QApplication::instance()->applicationDirPath());
-#ifdef Q_WS_MAC
- libdir.cd("../Resources"); // Libraries can be bundled
- if (!libdir.exists("libraries")) libdir.cd("../../..");
-#elif defined(Q_OS_UNIX)
- if (libdir.cd("../share/openscad/libraries")) {
- librarydir = libdir.path();
- } else
- if (libdir.cd("../../share/openscad/libraries")) {
- librarydir = libdir.path();
- } else
- if (libdir.cd("../../libraries")) {
- librarydir = libdir.path();
- } else
-#endif
- if (libdir.cd("libraries")) {
- librarydir = libdir.path();
- }
+ parser_init();
Context root_ctx;
register_builtin(root_ctx);
contact: Jan Huwald // Impressum