summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkintel <kintel@b57f626f-c46c-0410-a088-ec61d464b74c>2009-12-13 00:22:07 (GMT)
committerkintel <kintel@b57f626f-c46c-0410-a088-ec61d464b74c>2009-12-13 00:22:07 (GMT)
commit0847ea818b20fdd9ab8eaa835ddcc454b5fd51db (patch)
tree40fc175cd9c160da133aac59a786573b8047e82c
parent6628f644d203733b281caac7cc52848908f2567b (diff)
Slowly getting the build system under control, added version number in app, added OpenSCAD to window title, note that VERSION needs to be set for deployment in the deployment scripts
git-svn-id: http://svn.clifford.at/openscad/trunk@168 b57f626f-c46c-0410-a088-ec61d464b74c
-rw-r--r--checklist-macosx.txt12
-rw-r--r--mainwin.cc53
-rw-r--r--openscad.pro69
-rw-r--r--release-linux.sh4
-rwxr-xr-xrelease-macosx.sh10
5 files changed, 85 insertions, 63 deletions
diff --git a/checklist-macosx.txt b/checklist-macosx.txt
index a6b5145..f863ccd 100644
--- a/checklist-macosx.txt
+++ b/checklist-macosx.txt
@@ -16,14 +16,10 @@ o Build OpenCSG
qmake -recursive
make
-o Build OpenSCAD
+o Build and Deploy OpenSCAD
-# If MDI: edit openscad.pro and set ENABLE_MDI=1
+# Update OPENSCAD_VERSION in release-macosx.sh
+# If MDI: edit openscad.pro and enable CONFIG += mdi
+# FIXME: Debug vs. release flags
cd openscad
- qmake
- make -j4
-
-
-o Deploy
-
./release-macosx.sh
diff --git a/mainwin.cc b/mainwin.cc
index 3361cc0..224bcfe 100644
--- a/mainwin.cc
+++ b/mainwin.cc
@@ -65,8 +65,14 @@
#endif
-static char helptext[] =
- "OpenSCAD (www.openscad.org)\n"
+#define QUOTE(x__) # x__
+#define QUOTED(x__) QUOTE(x__)
+
+static char helptitle[] =
+ "OpenSCAD "
+ QUOTED(OPENSCAD_VERSION)
+ " (www.openscad.org)\n";
+static char copyrighttext[] =
"Copyright (C) 2009 Clifford Wolf <clifford@clifford.at>\n"
"\n"
"This program is free software; you can redistribute it and/or modify"
@@ -162,7 +168,11 @@ MainWindow::MainWindow(const char *filename)
// Design menu
connect(this->designActionReloadAndCompile, SIGNAL(triggered()), this, SLOT(actionReloadCompile()));
connect(this->designActionCompile, SIGNAL(triggered()), this, SLOT(actionCompile()));
+#ifdef ENABLE_CGAL
connect(this->designActionCompileAndRender, SIGNAL(triggered()), this, SLOT(actionRenderCGAL()));
+#else
+ this->designActionCompileAndRender->setVisible(false);
+#endif
connect(this->designActionDisplayAST, SIGNAL(triggered()), this, SLOT(actionDisplayAST()));
connect(this->designActionDisplayCSGTree, SIGNAL(triggered()), this, SLOT(actionDisplayCSGTree()));
connect(this->designActionDisplayCSGProducts, SIGNAL(triggered()), this, SLOT(actionDisplayCSGProducts()));
@@ -170,17 +180,22 @@ MainWindow::MainWindow(const char *filename)
connect(this->designActionExportOFF, SIGNAL(triggered()), this, SLOT(actionExportOFF()));
// View menu
- connect(this->viewActionOpenCSG, SIGNAL(triggered()), this, SLOT(viewModeOpenCSG()));
#ifndef ENABLE_OPENCSG
this->viewActionOpenCSG->setVisible(false);
#else
+ connect(this->viewActionOpenCSG, SIGNAL(triggered()), this, SLOT(viewModeOpenCSG()));
if (!screen->opencsg_support) {
this->viewActionOpenCSG->setEnabled(false);
}
#endif
+#ifdef ENABLE_CGAL
connect(this->viewActionCGALSurfaces, SIGNAL(triggered()), this, SLOT(viewModeCGALSurface()));
connect(this->viewActionCGALGrid, SIGNAL(triggered()), this, SLOT(viewModeCGALGrid()));
+#else
+ this->viewActionCGALSurfaces->setVisible(false);
+ this->viewActionCGALGrid->setVisible(false);
+#endif
connect(this->viewActionThrownTogether, SIGNAL(triggered()), this, SLOT(viewModeThrownTogether()));
connect(this->viewActionShowEdges, SIGNAL(triggered()), this, SLOT(viewModeShowEdges()));
connect(this->viewActionShowAxes, SIGNAL(triggered()), this, SLOT(viewModeShowAxes()));
@@ -210,18 +225,16 @@ MainWindow::MainWindow(const char *filename)
console->setReadOnly(true);
current_win = this;
- PRINT(helptext);
+ PRINT(helptitle);
+ PRINT(copyrighttext);
PRINT("");
editor->setTabStopWidth(30);
if (filename) {
- this->filename = QString(filename);
- maybe_change_dir();
- setWindowTitle(this->filename);
- load();
+ openFile(filename);
} else {
- setWindowTitle("New Document");
+ setWindowTitle("OpenSCAD - New Document[*]");
}
connect(editor->document(), SIGNAL(contentsChanged()), this, SLOT(animateUpdateDocChanged()));
@@ -285,7 +298,7 @@ MainWindow::openFile(const QString &new_filename)
#endif
filename = new_filename;
maybe_change_dir();
- setWindowTitle(filename);
+ setWindowTitle("OpenSCAD - " + filename + "[*]");
load();
}
@@ -557,7 +570,7 @@ void MainWindow::actionNew()
new MainWindow;
#else
filename = QString();
- setWindowTitle("New Document");
+ setWindowTitle("OpenSCAD - New Document[*]");
editor->setPlainText("");
#endif
}
@@ -591,7 +604,7 @@ void MainWindow::actionSaveAs()
if (!new_filename.isEmpty()) {
filename = new_filename;
maybe_change_dir();
- setWindowTitle(filename);
+ setWindowTitle("OpenSCAD - " + filename + "[*]");
actionSave();
}
}
@@ -1316,18 +1329,7 @@ void MainWindow::dropEvent(QDropEvent *event)
for (int i = 0; i < urls.size(); i++) {
if (urls[i].scheme() != "file")
continue;
- QString fn = urls[i].path();
-#ifdef ENABLE_MDI
- if (!editor->toPlainText().isEmpty()) {
- new MainWindow(fn.toUtf8());
- break;
- }
-#endif
- filename = fn;
- setWindowTitle(filename);
- maybe_change_dir();
- load();
- break;
+ openFile(urls[i].path());
}
current_win = NULL;
}
@@ -1336,7 +1338,8 @@ void
MainWindow::helpAbout()
{
qApp->setWindowIcon(QApplication::windowIcon());
- QMessageBox::information(this, "About OpenSCAD", helptext);
+ QMessageBox::information(this, "About OpenSCAD",
+ QString(helptitle) + QString(copyrighttext));
}
void
diff --git a/openscad.pro b/openscad.pro
index 23e076e..7ba2580 100644
--- a/openscad.pro
+++ b/openscad.pro
@@ -1,42 +1,60 @@
+isEmpty(VERSION) VERSION = 9999.99
+DEFINES += OPENSCAD_VERSION=$$VERSION
+TEMPLATE = app
macx {
- TARGET = OpenSCAD
- ICON = OpenSCAD.icns
- QMAKE_INFO_PLIST = Info.plist
+ TARGET = OpenSCAD
+ ICON = OpenSCAD.icns
+ QMAKE_INFO_PLIST = Info.plist
+ #CONFIG += x86 ppc
}
else {
- TARGET = openscad
+ TARGET = openscad
}
CONFIG += qt
-TEMPLATE = app
+QT += opengl
+# Application configuration
CONFIG += debug
# CONFIG += release
-QMAKE_CXXFLAGS_RELEASE = -O3 -march=pentium
-QMAKE_CXXFLAGS_DEBUG = -O0 -ggdb
-
-# MDI needs an OpenCSG library that is compiled with OpenCSG-Reset-Hack.patch applied
-DEFINES += ENABLE_MDI
+#CONFIG += mdi
+CONFIG += cgal
+CONFIG += opencsg
-DEFINES += ENABLE_CGAL
-LIBS += -lCGAL
-
-macx {
- INCLUDEPATH += $(PWD)/../install/include $(PWD)/../OpenCSG-1.1.1/include /opt/local/include
- # The -L/usr/lib is to force the linker to use system libraries over MacPort libraries
- LIBS += -L/usr/lib -L$(PWD)/../install/lib -L$(PWD)/../OpenCSG-1.1.1/lib -L/opt/local/lib /opt/local/lib/libgmp.a /opt/local/lib/libmpfr.a /opt/local/lib/libboost_thread-mt.a
- QMAKE_CXXFLAGS += -frounding-math
+mdi {
+ # MDI needs an OpenCSG library that is compiled with OpenCSG-Reset-Hack.patch applied
+ DEFINES += ENABLE_MDI
}
-else {
- LIBS += -lmpfr
+
+cgal {
+ DEFINES += ENABLE_CGAL
+ LIBS += -lCGAL
+ macx {
+ INCLUDEPATH += $(PWD)/../install/include /opt/local/include
+ # The -L/usr/lib is to force the linker to use system libraries over MacPort libraries
+ LIBS += -L/usr/lib -L$(PWD)/../install/lib -L/opt/local/lib /opt/local/lib/libgmp.a /opt/local/lib/libmpfr.a /opt/local/lib/libboost_thread-mt.a
+ QMAKE_CXXFLAGS += -frounding-math
+ }
+ else {
+ LIBS += -lmpfr
+ }
+ win32:LIBS += -lboost_thread -lgmp
}
-DEFINES += ENABLE_OPENCSG
-LIBS += -lopencsg
+opencsg {
+ DEFINES += ENABLE_OPENCSG
+ LIBS += -L/opt/local/lib -lopencsg
+ unix:LIBS += -lGLEW
+ win32:LIBS += -lglew32
+ macx {
+ INCLUDEPATH += $(PWD)/../OpenCSG-1.1.1/include /opt/local/include
+ LIBS += -L$(PWD)/../OpenCSG-1.1.1/lib
+ }
+}
-unix:LIBS += -lGLEW
-win32:LIBS += -lglew32 -lboost_thread -lgmp
+QMAKE_CXXFLAGS_RELEASE = -O3 -march=pentium
+QMAKE_CXXFLAGS_DEBUG = -O0 -ggdb
LEXSOURCES += lexer.l
YACCSOURCES += parser.y
@@ -58,8 +76,5 @@ SOURCES += openscad.cc mainwin.cc glview.cc export.cc \
dxflinextrude.cc dxfrotextrude.cc highlighter.cc \
printutils.cc
-QT += opengl
-
target.path = /usr/local/bin/
INSTALLS += target
-
diff --git a/release-linux.sh b/release-linux.sh
index a097a0c..6294fbc 100644
--- a/release-linux.sh
+++ b/release-linux.sh
@@ -1,11 +1,13 @@
#!/bin/sh
# WARNING: This script might only work with the authors setup...
+VERSION=2010.01
+
set -ex
# svnclean
-qmake
+qmake VERSION=$VERSION
make
rm -rf release
diff --git a/release-macosx.sh b/release-macosx.sh
index 95223f9..f92e723 100755
--- a/release-macosx.sh
+++ b/release-macosx.sh
@@ -1,8 +1,12 @@
#!/bin/sh
# WARNING: This script might only work with the authors setup...
-VERSION=2009.11
+VERSION=2010.01
+echo "Building.."
+qmake VERSION=$VERSION
+make clean
+make -j2
echo "Preparing executable.."
mkdir OpenSCAD.app/Contents/Frameworks
cp ../OpenCSG-1.1.1/lib/libopencsg.dylib OpenSCAD.app/Contents/Frameworks
@@ -17,10 +21,12 @@ install_name_tool -change QtCore.framework/Versions/4/QtCore @executable_path/..
install_name_tool -change QtGui.framework/Versions/4/QtGui @executable_path/../Frameworks/QtGui OpenSCAD.app/Contents/Frameworks/QtOpenGL
install_name_tool -change QtCore.framework/Versions/4/QtCore @executable_path/../Frameworks/QtCore OpenSCAD.app/Contents/Frameworks/QtOpenGL
install_name_tool -change QtCore.framework/Versions/4/QtCore @executable_path/../Frameworks/QtCore OpenSCAD.app/Contents/Frameworks/QtGui
- install_name_tool -change /opt/local/lib/libGLEW.1.5.1.dylib @executable_path/../Frameworks/libGLEW.1.5.1.dylib OpenSCAD.app/Contents/MacOS/openscad
+install_name_tool -change /opt/local/lib/libGLEW.1.5.1.dylib @executable_path/../Frameworks/libGLEW.1.5.1.dylib OpenSCAD.app/Contents/MacOS/openscad
+install_name_tool -id libopencsg.dylib OpenSCAD.app/Contents/Frameworks/libopencsg.dylib
install_name_tool -change /opt/local/lib/libGLEW.1.5.1.dylib @executable_path/../Frameworks/libGLEW.1.5.1.dylib OpenSCAD.app/Contents/Frameworks/libopencsg.dylib
install_name_tool -change QtGui.framework/Versions/4/QtGui @executable_path/../Frameworks/QtGui OpenSCAD.app/Contents/Frameworks/libopencsg.dylib
install_name_tool -change QtCore.framework/Versions/4/QtCore @executable_path/../Frameworks/QtCore OpenSCAD.app/Contents/Frameworks/libopencsg.dylib
+install_name_tool -id libGLEW.1.5.1.dylib OpenSCAD.app/Contents/Frameworks/libGLEW.1.5.1.dylib
echo "Creating directory structure.."
rm -rf openscad-$VERSION
contact: Jan Huwald // Impressum