summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md9
-rw-r--r--RELEASE_NOTES4
-rw-r--r--doc/TODO.txt1
-rw-r--r--doc/release-checklist.txt63
-rw-r--r--eigen.pri2
-rwxr-xr-x[-rw-r--r--]scripts/googlecode_upload.py1
-rwxr-xr-xscripts/macosx-build-dependencies.sh24
-rwxr-xr-xscripts/publish-macosx.sh15
-rw-r--r--setenv_mjau.sh3
-rw-r--r--src/AboutDialog.html6
-rw-r--r--src/OpenCSGWarningDialog.cc4
-rw-r--r--src/mainwin.cc10
-rw-r--r--src/openscad.cc15
-rw-r--r--src/version_check.h16
-rw-r--r--tests/regression/opencsgtest/difference-tests-expected.pngbin11223 -> 11900 bytes
-rw-r--r--tests/regression/throwntogethertest/difference-tests-expected.pngbin11463 -> 11762 bytes
16 files changed, 120 insertions, 53 deletions
diff --git a/README.md b/README.md
index f1d9925..ddad806 100644
--- a/README.md
+++ b/README.md
@@ -186,8 +186,9 @@ attempt an MSVC build on Windows, please see this site:
http://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Building_on_Windows
To cross-build, first make sure that you have development tools
-installed to get GCC. Then after you've cloned this git repository, run
-the script that sets up the environment variables.
+installed to get GCC. Then after you've cloned this git repository,
+start a new clean shell and run the script that sets up the environment
+variables.
source ./scripts/setenv-mingw-xbuild.sh
@@ -195,7 +196,9 @@ Then run the script to download & compile all the prerequisite libraries above:
./scripts/mingw-x-build-dependencies.sh
-Then, build OpenSCAD and package it to an installer:
+Note that this process can take several hours, as it uses the
+http://mxe.cc system to cross-build many libraries. After it is
+complete, build OpenSCAD and package it to an installer:
./scripts/release-common.sh mingw32
diff --git a/RELEASE_NOTES b/RELEASE_NOTES
index f629cd6..4448e89 100644
--- a/RELEASE_NOTES
+++ b/RELEASE_NOTES
@@ -1,4 +1,4 @@
-OpenSCAD 2012.11
+OpenSCAD 2013.01
================
Features:
@@ -26,6 +26,8 @@ o cmd-line overrides using -D now also work for USEd modules
o Modifier characters can now be used in front of if statements
o rotate() with a vector argument with less that 3 elements used uninitialized variables, ending up being non-deterministic.
o .csg files will now have relative filenames whenever possible
+o Don't just ignore geometric nodes having zero volume/area - when doing difference/intersection, they tend to turn negative objects into positive ones.
+o Always use utf-8 file encoding, also under Windows
o A lot of build script fixes
o Some other crash bugs fixes
diff --git a/doc/TODO.txt b/doc/TODO.txt
index 44b11ad..62db614 100644
--- a/doc/TODO.txt
+++ b/doc/TODO.txt
@@ -113,6 +113,7 @@ o Misc
for confirmation.
- Go through keyboard shortcuts and make them more conformant to platform standards
- Show design info/stats (sizes, caches etc.)
+ - Support Voice Over and related technologies for vision-impaired users
o Cmd-line
- Add verbose option (PRINT command from mainwin.cc and progress output)
diff --git a/doc/release-checklist.txt b/doc/release-checklist.txt
index e85e97c..6d53ad9 100644
--- a/doc/release-checklist.txt
+++ b/doc/release-checklist.txt
@@ -1,6 +1,8 @@
OpenSCAD Release Checklist
--------------------------
+(See bottom of this file for how to build release binaries)
+
o Update VERSION environment variable
export VERSION=2012.08
@@ -12,6 +14,7 @@ o Update VERSION environment variable
scripts/publish-mingw-x.sh
o Update RELEASE_NOTES
+o Update copyright year in AboutDialog.html and mainwin.cc
o Tag release
git tag "openscad-$VERSION"
@@ -19,33 +22,15 @@ o Tag release
o build source package
scripts/git-archive-all.py --prefix=openscad-$VERSION/ openscad-$VERSION.src.tar.gz
-o build binaries
- tar xzf openscad-$VERSION.src.tar.gz
- cd openscad-$VERSION
- Mac OS X
- (For Qt-4.7.3: Remove /Developers/Applications/Qt/plugins/qmltooling)
- ./scripts/publish-macosx.sh -> OpenSCAD-$VERSION.dmg
- Linux:
- 32-bit: run on a 32-bit machine or VM
- 64-bit: run on a 64-bit machine or VM
- ./scripts/release-common.sh -> openscad-$VERSION.x86-ARCH.tar.gz
- (where ARCH will be detected and set to 32 or 64)
- Windows mingw cross-build: FIXME 32 vs. 64 bit
- ./scripts/publish-mingw-x.sh -> mingw32/Openscad-$VERSION.zip
- -> mingw32/Openscad-$VERSION-Installer.exe
-
-o FIXME: Run some tests
-
-o Remove VERSION environment variable
-
- export VERSION=
+o Sanity check; build a binary or two and manually run some tests
o git push --tags
-o Upload
- - Github
- Upload manually here: https://github.com/openscad/openscad/downloads
- FIXME: Write a script
+o Upload Source package
+ $ ./scripts/googlecode_upload.py -s 'Source Code' -p openscad -l Featured,Type-Source openscad-$VERSION.src.tar.gz
+
+o Remove VERSION environment variable
+ $ unset VERSION
o Update web page
o Write email to mailing list
@@ -53,3 +38,33 @@ o Update external resources:
- http://en.wikipedia.org/wiki/OpenSCAD
o Notify package managers
- Ubuntu: https://launchpad.net/~chrysn
+ - MacPorts:
+
+
+Build and Upload Release Binaries
+---------------------------------
+
+$ export VERSION=<openscad version, e.g. 2013.01>
+$ tar xzf openscad-$VERSION.src.tar.gz
+$ cd openscad-$VERSION
+
+Mac OS X:
+
+ $ ./scripts/publish-macosx.sh -> OpenSCAD-$VERSION.dmg
+
+Linux:
+ 32-bit: run on a 32-bit machine or VM
+ 64-bit: run on a 64-bit machine or VM
+
+ $ ./scripts/release-common.sh -> openscad-$VERSION.x86-ARCH.tar.gz
+ (where ARCH will be detected and set to 32 or 64)
+ $ ./scripts/googlecode_upload.py -s 'Linux Binaries' -p openscad openscad-$VERSION.x86-ARCH.tar.gz -l Featured,OpSys-Linux,Type-Archive openscad-$VERSION.x86-ARCH.tar.gz
+ o Update web page with download links
+
+Windows mingw cross-build: FIXME 32 vs. 64 bit
+
+ $ ./scripts/publish-mingw-x.sh -> mingw32/Openscad-$VERSION.zip
+ -> mingw32/Openscad-$VERSION-Installer.exe
+ $ ./scripts/googlecode_upload.py -s 'Windows Binaries' -p openscad OpenSCAD-$VERSION.zip -l Featured,OpSys-Windows,Type-Archive OpenSCAD-$VERSION.zip
+ $ ./scripts/googlecode_upload.py -s 'Windows Installer' -p openscad OpenSCAD-$VERSION-Installer.exe -l Featured,OpSys-Windows,Type-Installer OpenSCAD-$VERSION-Installer.exe
+ o Update web page with download links
diff --git a/eigen.pri b/eigen.pri
index efb2d3c..0ee551c 100644
--- a/eigen.pri
+++ b/eigen.pri
@@ -51,7 +51,7 @@ isEmpty(EIGEN_INCLUDEPATH) {
netbsd*: EIGEN_INCLUDEPATH = /usr/pkg/include/eigen3
linux*|hurd*|unix: EIGEN_INCLUDEPATH = /usr/include/eigen3
macx: EIGEN_INCLUDEPATH = /opt/local/include/eigen3
- !exists(EIGEN_INCLUDEPATH) {
+ !exists($$EIGEN_INCLUDEPATH) {
freebsd-g++: EIGEN_INCLUDEPATH = /usr/local/include/eigen2
netbsd*: EIGEN_INCLUDEPATH = /usr/pkg/include/eigen2
linux*|hurd*|unix*: EIGEN_INCLUDEPATH = /usr/include/eigen2
diff --git a/scripts/googlecode_upload.py b/scripts/googlecode_upload.py
index 375d7aa..188dd6c 100644..100755
--- a/scripts/googlecode_upload.py
+++ b/scripts/googlecode_upload.py
@@ -1,3 +1,4 @@
+#!/usr/bin/env python
# Google Code binary package uploader
# with Insturctions for uploading packages for OpenSCAD
#
diff --git a/scripts/macosx-build-dependencies.sh b/scripts/macosx-build-dependencies.sh
index 6313b2b..bfe0ede 100755
--- a/scripts/macosx-build-dependencies.sh
+++ b/scripts/macosx-build-dependencies.sh
@@ -13,11 +13,9 @@
#
# Prerequisites:
# - MacPorts: curl, cmake
-# - Qt4
#
# FIXME:
# o Verbose option
-# o Port to other platforms?
#
BASEDIR=$PWD/../libraries
@@ -41,6 +39,25 @@ printUsage()
echo " -c Force use of clang compiler"
}
+# FIXME: Support gcc/llvm/clang flags. Use -platform <whatever> to make this work? kintel 20130117
+build_qt()
+{
+ version=$1
+ echo "Building Qt" $version "..."
+ cd $BASEDIR/src
+ rm -rf qt-everywhere-opensource-src-$version
+ if [ ! -f qt-everywhere-opensource-src-$version.tar.gz ]; then
+ curl -O http://releases.qt-project.org/qt4/source/qt-everywhere-opensource-src-$version.tar.gz
+ fi
+ tar xzf qt-everywhere-opensource-src-$version.tar.gz
+ cd qt-everywhere-opensource-src-$version
+ if $OPTION_32BIT; then
+ QT_32BIT="-arch x86"
+ fi
+ ./configure -prefix $DEPLOYDIR -release $QT_32BIT -arch x86_64 -opensource -confirm-license -fast -no-qt3support -no-svg -no-phonon -no-audio-backend -no-multimedia -no-javascript-jit -no-script -no-scripttools -no-declarative -no-xmlpatterns -nomake demos -nomake examples -nomake docs -nomake translations -no-webkit
+ make -j6 install
+}
+
# Hack warning: gmplib is built separately in 32-bit and 64-bit mode
# and then merged afterwards. gmplib's header files are dependent on
# the CPU architecture on which configure was run and will be patched accordingly.
@@ -365,8 +382,9 @@ fi
echo "Using basedir:" $BASEDIR
mkdir -p $SRCDIR $DEPLOYDIR
+build_qt 4.8.4
build_eigen 3.1.2
-build_gmp 5.0.5
+build_gmp 5.1.0
build_mpfr 3.1.1
build_boost 1.51.0
# NB! For CGAL, also update the actual download URL in the function
diff --git a/scripts/publish-macosx.sh b/scripts/publish-macosx.sh
index a2ded8a..e22e5bd 100755
--- a/scripts/publish-macosx.sh
+++ b/scripts/publish-macosx.sh
@@ -1,11 +1,12 @@
#!/bin/sh
-# Set this if we're doing a release build. Comment it out for development builds
-#VERSION=2011.12
+# NB! To build a release build, the VERSION environment variable needs to be set.
+# See doc/release-checklist.txt
if test -z "$VERSION"; then
VERSION=`date "+%Y.%m.%d"`
COMMIT=-c
+ SNAPSHOT=true
fi
# Turn off ccache, just for safety
@@ -14,6 +15,9 @@ PATH=${PATH//\/opt\/local\/libexec\/ccache:}
# This is the same location as DEPLOYDIR in macosx-build-dependencies.sh
export OPENSCAD_LIBRARIES=$PWD/../libraries/install
+# Make sure that the correct Qt tools are used
+export PATH=$OPENSCAD_LIBRARIES/bin:$PATH
+
`dirname $0`/release-common.sh -v $VERSION $COMMIT
if [[ $? != 0 ]]; then
exit 1
@@ -24,10 +28,11 @@ echo "Sanity check of the app bundle..."
if [[ $? != 0 ]]; then
exit 1
fi
-cp OpenSCAD-$VERSION.dmg ~/Dropbox/Public
-ln -sf OpenSCAD-$VERSION.dmg ~/Dropbox/Public/OpenSCAD-latest.dmg
-echo "Upload in progress..."
+echo "Uploading..."
+LABELS=OpSys-OSX,Type-Executable
+if ! $SNAPSHOT; then LABELS=$LABELS,Featured; fi
+`dirname $0`/googlecode_upload.py -s 'Mac OS X Snapshot' -p openscad OpenSCAD-$VERSION.dmg -l $LABELS
# Update snapshot filename on wab page
`dirname $0`/update-web.sh OpenSCAD-$VERSION.dmg
diff --git a/setenv_mjau.sh b/setenv_mjau.sh
index 3e27665..677a47a 100644
--- a/setenv_mjau.sh
+++ b/setenv_mjau.sh
@@ -6,6 +6,9 @@ export QMAKESPEC=macx-g++
#export CGALDIR=$PWD/../install/CGAL-3.6
#export DYLD_LIBRARY_PATH=$OPENCSGDIR/lib
+# Own own Qt
+export PATH=$OPENSCAD_LIBRARIES/bin:$PATH
+
# ccache:
export PATH=/opt/local/libexec/ccache:$PATH
export CCACHE_BASEDIR=$PWD/..
diff --git a/src/AboutDialog.html b/src/AboutDialog.html
index 0eee1cb..34e8127 100644
--- a/src/AboutDialog.html
+++ b/src/AboutDialog.html
@@ -84,7 +84,7 @@ Please visit this link for a copy of the license: <a href="http://www.gnu.org/li
<p>
<b><a href="http://www.debian.org">Debian</a> maintainer:</b>
- <a href="http://christian.amsuess.com/">Christian M. Amsuess</a>
+ <a href="http://christian.amsuess.com/">chrysn</a>
</p>
<p>
@@ -136,6 +136,10 @@ benhowes ... and many others
</p>
<p>
+Trademarks are property of their owners and do not imply affiliation with OpenSCAD
+</p>
+
+<p>
Apologies to anyone left out. Please file an issue on OpenSCAD's github if you know of someone who belongs here.
</p>
diff --git a/src/OpenCSGWarningDialog.cc b/src/OpenCSGWarningDialog.cc
index 5648576..926a55b 100644
--- a/src/OpenCSGWarningDialog.cc
+++ b/src/OpenCSGWarningDialog.cc
@@ -8,12 +8,12 @@ OpenCSGWarningDialog::OpenCSGWarningDialog(QWidget*)
connect(this->showBox, SIGNAL(toggled(bool)),
Preferences::inst()->openCSGWarningBox, SLOT(setChecked(bool)));
connect(this->showBox, SIGNAL(toggled(bool)),
- Preferences::inst(), SLOT(openCSGWarningChanged(bool)));
+ Preferences::inst(), SLOT(on_openCSGWarningBox_toggled(bool)));
connect(this->enableOpenCSGBox, SIGNAL(toggled(bool)),
Preferences::inst()->enableOpenCSGBox, SLOT(setChecked(bool)));
connect(this->enableOpenCSGBox, SIGNAL(toggled(bool)),
- Preferences::inst(), SLOT(enableOpenCSGChanged(bool)));
+ Preferences::inst(), SLOT(on_enableOpenCSGBox_toggled(bool)));
}
void OpenCSGWarningDialog::setText(const QString &text)
diff --git a/src/mainwin.cc b/src/mainwin.cc
index 6bb43e6..251c6e1 100644
--- a/src/mainwin.cc
+++ b/src/mainwin.cc
@@ -110,7 +110,7 @@ static char helptitle[] =
#endif
"\nhttp://www.openscad.org\n\n";
static char copyrighttext[] =
- "Copyright (C) 2009-2012 Marius Kintel <marius@kintel.net> and Clifford Wolf <clifford@clifford.at>\n"
+ "Copyright (C) 2009-2013 Marius Kintel <marius@kintel.net> and Clifford Wolf <clifford@clifford.at>\n"
"\n"
"This program is free software; you can redistribute it and/or modify "
"it under the terms of the GNU General Public License as published by "
@@ -444,6 +444,7 @@ void MainWindow::report_func(const class AbstractNode*, void *vp, int mark)
QApplication::processEvents();
}
+ // FIXME: Check if cancel was requested by e.g. Application quit
if (thisp->progresswidget->wasCanceled()) throw ProgressCancelException();
}
@@ -1729,11 +1730,13 @@ void MainWindow::helpLibrary()
libinfo.sprintf("Boost version: %s\n"
"Eigen version: %d.%d.%d\n"
"CGAL version: %s\n"
- "OpenCSG version: %s\n\n",
+ "OpenCSG version: %s\n"
+ "Qt version: %s\n\n",
BOOST_LIB_VERSION,
EIGEN_WORLD_VERSION, EIGEN_MAJOR_VERSION, EIGEN_MINOR_VERSION,
TOSTRING(CGAL_VERSION),
- OPENCSG_VERSION_STRING);
+ OPENCSG_VERSION_STRING,
+ qVersion());
if (!this->openglbox) {
this->openglbox = new QMessageBox(QMessageBox::Information,
@@ -1806,6 +1809,7 @@ void MainWindow::quit()
QCloseEvent ev;
QApplication::sendEvent(QApplication::instance(), &ev);
if (ev.isAccepted()) QApplication::instance()->quit();
+ // FIXME: Cancel any CGAL calculations
}
void MainWindow::consoleOutput(const std::string &msg, void *userdata)
diff --git a/src/openscad.cc b/src/openscad.cc
index df7adb3..472b5d4 100644
--- a/src/openscad.cc
+++ b/src/openscad.cc
@@ -304,8 +304,19 @@ int main(int argc, char **argv)
fs::current_path(original_path);
if (deps_output_file) {
- if (!write_deps(deps_output_file,
- stl_output_file ? stl_output_file : off_output_file)) {
+ std::string deps_out( deps_output_file );
+ std::string geom_out;
+ if ( stl_output_file ) geom_out = std::string(stl_output_file);
+ else if ( off_output_file ) geom_out = std::string(off_output_file);
+ else if ( dxf_output_file ) geom_out = std::string(dxf_output_file);
+ else {
+ PRINTB("Output file:%s\n",output_file);
+ PRINT("Sorry, don't know how to write deps for that file type. Exiting\n");
+ exit(1);
+ }
+ int result = write_deps( deps_out, geom_out );
+ if ( !result ) {
+ PRINT("error writing deps");
exit(1);
}
}
diff --git a/src/version_check.h b/src/version_check.h
index b6a63ab..db17962 100644
--- a/src/version_check.h
+++ b/src/version_check.h
@@ -24,26 +24,26 @@ a time, to avoid confusion.
#define GMPPATCH 0
#define SYS_GMP_VER (__GNU_MP_VERSION * 10000 + __GNU_MP_VERSION_MINOR * 100 + __GNU_MP_VERSION_PATCHLEVEL * 1)
#if SYS_GMP_VER < GMPMAJOR * 10000 + GMPMINOR * 100 + GMPPATCH * 1
-#error GNU GMP library missing or version too old. See README.md. To force compile, run qmake CONFIG=skip-version-check
+#error GNU GMP library missing or version too old. See README.md. To force compile, run qmake CONFIG+=skip-version-check
#else
#include <mpfr.h>
#if MPFR_VERSION < MPFR_VERSION_NUM( 3,0,0 )
-#error GNU MPFR library missing or version too old. See README.md. To force compile, run qmake CONFIG=skip-version-check
+#error GNU MPFR library missing or version too old. See README.md. To force compile, run qmake CONFIG+=skip-version-check
#else
#include <Eigen/Core>
#if not EIGEN_VERSION_AT_LEAST( 2,0,13 )
-#error eigen2 library missing or version too old. See README.md. To force compile, run qmake CONFIG=skip-version-check
+#error eigen2 library missing or version too old. See README.md. To force compile, run qmake CONFIG+=skip-version-check
#else
#include <boost/version.hpp>
// boost 1.3.5 = 103500
#if BOOST_VERSION < 103500
-#error boost library missing or version too old. See README.md. To force compile, run qmake CONFIG=skip-version-check
+#error boost library missing or version too old. See README.md. To force compile, run qmake CONFIG+=skip-version-check
#else
@@ -51,7 +51,7 @@ a time, to avoid confusion.
#include <CGAL/version.h>
#if CGAL_VERSION_NR < 1030601000
-#error CGAL library missing or version too old. See README.md. To force compile, run qmake CONFIG=skip-version-check
+#error CGAL library missing or version too old. See README.md. To force compile, run qmake CONFIG+=skip-version-check
#else
#if CGAL_VERSION_NR < 1040021000
@@ -76,20 +76,20 @@ a time, to avoid confusion.
#include <GL/glew.h>
// kludge - GLEW doesnt have compiler-accessible version numbering
#ifndef GLEW_ARB_occlusion_query2
-#error GLEW library missing or version too old. See README.md. To force compile, run qmake CONFIG=skip-version-check
+#error GLEW library missing or version too old. See README.md. To force compile, run qmake CONFIG+=skip-version-check
#else
#include <opencsg.h>
// 1.3.2 -> 0x0132
#if OPENCSG_VERSION < 0x0132
-#error OPENCSG library missing or version too old. See README.md. To force compile, run qmake CONFIG=skip-version-check
+#error OPENCSG library missing or version too old. See README.md. To force compile, run qmake CONFIG+=skip-version-check
#else
#endif // ENABLE_OPENCSG
#include <QtCore/qglobal.h>
#if QT_VERSION < 0x040400
-#error QT library missing or version too old. See README.md. To force compile, run qmake CONFIG=skip-version-check
+#error QT library missing or version too old. See README.md. To force compile, run qmake CONFIG+=skip-version-check
#endif // QT
diff --git a/tests/regression/opencsgtest/difference-tests-expected.png b/tests/regression/opencsgtest/difference-tests-expected.png
index 794104a..a6d863a 100644
--- a/tests/regression/opencsgtest/difference-tests-expected.png
+++ b/tests/regression/opencsgtest/difference-tests-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/difference-tests-expected.png b/tests/regression/throwntogethertest/difference-tests-expected.png
index 183700c..0a27c90 100644
--- a/tests/regression/throwntogethertest/difference-tests-expected.png
+++ b/tests/regression/throwntogethertest/difference-tests-expected.png
Binary files differ
contact: Jan Huwald // Impressum