diff options
-rw-r--r-- | README.md | 9 | ||||
-rw-r--r-- | RELEASE_NOTES | 4 | ||||
-rw-r--r-- | doc/TODO.txt | 1 | ||||
-rw-r--r-- | doc/release-checklist.txt | 63 | ||||
-rw-r--r-- | eigen.pri | 2 | ||||
-rwxr-xr-x[-rw-r--r--] | scripts/googlecode_upload.py | 1 | ||||
-rwxr-xr-x | scripts/macosx-build-dependencies.sh | 24 | ||||
-rwxr-xr-x | scripts/publish-macosx.sh | 15 | ||||
-rw-r--r-- | setenv_mjau.sh | 3 | ||||
-rw-r--r-- | src/AboutDialog.html | 6 | ||||
-rw-r--r-- | src/OpenCSGWarningDialog.cc | 4 | ||||
-rw-r--r-- | src/mainwin.cc | 10 | ||||
-rw-r--r-- | src/openscad.cc | 15 | ||||
-rw-r--r-- | src/version_check.h | 16 | ||||
-rw-r--r-- | tests/regression/opencsgtest/difference-tests-expected.png | bin | 11223 -> 11900 bytes | |||
-rw-r--r-- | tests/regression/throwntogethertest/difference-tests-expected.png | bin | 11463 -> 11762 bytes |
16 files changed, 120 insertions, 53 deletions
@@ -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 @@ -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 Binary files differindex 794104a..a6d863a 100644 --- a/tests/regression/opencsgtest/difference-tests-expected.png +++ b/tests/regression/opencsgtest/difference-tests-expected.png diff --git a/tests/regression/throwntogethertest/difference-tests-expected.png b/tests/regression/throwntogethertest/difference-tests-expected.png Binary files differindex 183700c..0a27c90 100644 --- a/tests/regression/throwntogethertest/difference-tests-expected.png +++ b/tests/regression/throwntogethertest/difference-tests-expected.png |