diff options
| -rw-r--r-- | openscad.pro | 6 | ||||
| -rw-r--r-- | src/highlighter.cc | 2 | ||||
| -rw-r--r-- | src/lexer.l | 2 | ||||
| -rw-r--r-- | src/mainwin.cc | 1 | ||||
| -rw-r--r-- | src/openscad.cc | 21 | ||||
| -rw-r--r-- | src/openscad.h | 2 | ||||
| -rw-r--r-- | src/parsersettings.cc | 25 | ||||
| -rw-r--r-- | src/parsersettings.h | 11 | ||||
| -rw-r--r-- | tests/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | tests/cgalpngtest.cc | 20 | ||||
| -rw-r--r-- | tests/cgaltest.cc | 21 | ||||
| -rw-r--r-- | tests/csgtermtest.cc | 21 | ||||
| -rw-r--r-- | tests/csgtestcore.cc | 21 | ||||
| -rw-r--r-- | tests/csgtexttest.cc | 21 | ||||
| -rw-r--r-- | tests/dumptest.cc | 21 | ||||
| -rw-r--r-- | tests/echotest.cc | 21 | 
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); | 
