merge branch to get windows "library path" working. tweak build system,

eliminate several compiler warnings.
felipesanches-svg
Don Bright 2013-05-25 22:37:26 -05:00
parent 164902fa76
commit 31c88a434b
11 changed files with 59 additions and 26 deletions

View File

@ -3,7 +3,7 @@
bison.input = BISONSOURCES
bison.output = ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}_yacc.cpp
bison.commands = bison -d -p ${QMAKE_FILE_BASE} -o ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}_yacc.cpp ${QMAKE_FILE_IN}
bison.commands += && mv ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}_yacc.hpp ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}_yacc.h
bison.commands += && if [ -e ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}_yacc.hpp ]; then mv ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}_yacc.hpp ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}_yacc.h ; fi
bison.CONFIG += target_predeps
bison.variable_out = GENERATED_SOURCES
silent:bison.commands = @echo Bison ${QMAKE_FILE_IN} && $$bison.commands
@ -11,7 +11,7 @@
bison_header.input = BISONSOURCES
bison_header.output = ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}_yacc.h
bison_header.commands = bison -d -p ${QMAKE_FILE_BASE} -o ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}_yacc.cpp ${QMAKE_FILE_IN}
bison_header.commands += && mv ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}_yacc.hpp ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}_yacc.h
bison_header.commands += && if [ -e ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}_yacc.hpp ]; then mv ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}_yacc.hpp ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}_yacc.h ; fi
bison_header.CONFIG += target_predeps no_link
silent:bison_header.commands = @echo Bison ${QMAKE_FILE_IN} && $$bison.commands
QMAKE_EXTRA_COMPILERS += bison_header

View File

@ -31,7 +31,7 @@ isEmpty(QT_VERSION) {
include(version.pri)
# for debugging link problems (use nmake -f Makefile.Release > log.txt)
win32 {
win* {
# QMAKE_LFLAGS += -VERBOSE
}
debug: DEFINES += DEBUG
@ -88,7 +88,7 @@ else {
TARGET = openscad
}
win32 {
win* {
RC_FILE = openscad_win32.rc
}
@ -171,7 +171,7 @@ CONFIG(mingw-cross-env) {
include(mingw-cross-env.pri)
}
win32 {
win* {
FLEXSOURCES = src/lexer.l
BISONSOURCES = src/parser.y
} else {
@ -348,7 +348,7 @@ macx {
SOURCES += src/imageutils-macosx.cc
OBJECTIVE_SOURCES += src/OffscreenContextCGL.mm
}
win32* {
win* {
SOURCES += src/imageutils-lodepng.cc
SOURCES += src/OffscreenContextWGL.cc
}
@ -391,8 +391,8 @@ macx {
unix:!macx {
SOURCES += src/PlatformUtils-posix.cc
}
win32* {
SOURCES += src/PlatformUtils-win32.cc
win* {
SOURCES += src/PlatformUtils-win.cc
}
isEmpty(PREFIX):PREFIX = /usr/local

View File

@ -52,13 +52,13 @@ elif [[ $OSTYPE == "linux-gnu" ]]; then
fi
if [ "`echo $* | grep mingw32`" ]; then
OS=LINXWIN
OS=UNIX_CROSS_WIN
ARCH=32
echo Mingw-cross build using ARCH=32
fi
if [ "`echo $* | grep mingw64`" ]; then
OS=LINXWIN
OS=UNIX_CROSS_WIN
ARCH=64
echo Mingw-cross build using ARCH=64
fi
@ -90,7 +90,7 @@ fi
echo "Checking pre-requisites..."
case $OS in
LINXWIN)
UNIX_CROSS_WIN)
MAKENSIS=
if [ "`command -v makensis`" ]; then
MAKENSIS=makensis
@ -120,10 +120,9 @@ echo "Building openscad-$VERSION ($VERSIONDATE) $CONFIGURATION..."
if [ ! $NUMCPU ]; then
echo "note: you can 'export NUMCPU=x' for multi-core compiles (x=number)";
NUMCPU=2
else
echo "NUMCPU: " $NUMCPU
NUMCPU=1
fi
echo "NUMCPU: " $NUMCPU
CONFIG=deploy
case $OS in
@ -138,7 +137,7 @@ case $OS in
ZIPARGS="a -tzip"
TARGET=release
;;
LINXWIN)
UNIX_CROSS_WIN)
. ./scripts/setenv-mingw-xbuild.sh $ARCH
TARGET=release
ZIP="zip"
@ -148,7 +147,7 @@ esac
case $OS in
LINXWIN)
UNIX_CROSS_WIN)
cd $DEPLOYDIR && qmake VERSION=$VERSION OPENSCAD_COMMIT=$OPENSCAD_COMMIT CONFIG+=$CONFIG CONFIG+=mingw-cross-env CONFIG-=debug ../openscad.pro
cd $OPENSCADDIR
;;
@ -158,7 +157,7 @@ case $OS in
esac
case $OS in
LINXWIN)
UNIX_CROSS_WIN)
cd $DEPLOYDIR
make clean ## comment out for test-run
cd $OPENSCADDIR
@ -176,10 +175,17 @@ case $OS in
#if the following files are missing their tried removal stops the build process on msys
touch -t 200012121010 parser_yacc.h parser_yacc.cpp lexer_lex.cpp
;;
UNIX_CROSS_WIN)
# kludge to enable paralell make
touch -t 200012121010 $OPENSCADDIR/src/parser_yacc.h
touch -t 200012121010 $OPENSCADDIR/src/parser_yacc.cpp
touch -t 200012121010 $OPENSCADDIR/src/parser_yacc.hpp
touch -t 200012121010 $OPENSCADDIR/src/lexer_lex.cpp
;;
esac
case $OS in
LINXWIN)
UNIX_CROSS_WIN)
# make main openscad.exe
cd $DEPLOYDIR
make $TARGET -j$NUMCPU ## comment 4 test
@ -214,12 +220,12 @@ case $OS in
EXAMPLESDIR=OpenSCAD.app/Contents/Resources/examples
LIBRARYDIR=OpenSCAD.app/Contents/Resources/libraries
;;
LINXWIN)
UNIX_CROSS_WIN)
EXAMPLESDIR=$DEPLOYDIR/openscad-$VERSION/examples/
LIBRARYDIR=$DEPLOYDIR/openscad-$VERSION/libraries/
rm -rf $DEPLOYDIR/openscad-$VERSION
mkdir $DEPLOYDIR/openscad-$VERSION
;;
;;
*)
EXAMPLESDIR=openscad-$VERSION/examples/
LIBRARYDIR=openscad-$VERSION/libraries/
@ -267,7 +273,7 @@ case $OS in
rm -rf openscad-$VERSION
echo "Binary created: openscad-$VERSION.zip"
;;
LINXWIN)
UNIX_CROSS_WIN)
BINFILE=$DEPLOYDIR/OpenSCAD-$VERSION-x86-$ARCH.zip
INSTFILE=$DEPLOYDIR/OpenSCAD-$VERSION-x86-$ARCH-Installer.exe

View File

@ -291,6 +291,7 @@ Response CGALEvaluator::visit(State &state, const CsgNode &node)
op = CGE_INTERSECTION;
break;
default:
op = -1;
assert(false);
}
N = applyToChildren(node, op);

View File

@ -3,5 +3,26 @@
std::string PlatformUtils::libraryPath()
{
return boosty::stringy(fs::path(PlatformUtils::documentsPath()) / "OpenSCAD" / "libraries");
fs::path path;
bool OK = true;
try {
path = boosty::canonical(fs::path(PlatformUtils::documentsPath()));
if (path.empty()) return "";
PRINTB("path size %i",boosty::stringy(path).size());
path /= "OpenSCAD";
path /= "libraries";
PRINTB("Appended path %s", path );
PRINTB("Exists: %i", fs::exists(path) );
if (!fs::exists(path)) {
PRINTB("Creating library folder %s", boosty::stringy(path) );
OK &= fs::create_directories( path );
}
if (!OK) {
PRINTB("ERROR: Cannot find nor create %s", boosty::stringy(path) );
path = fs::path("");
}
} catch (const fs::filesystem_error& ex) {
PRINTB("ERROR: %s",ex.what());
}
return boosty::stringy( path );
}

View File

@ -142,6 +142,7 @@ std::string CgaladvNode::name() const
default:
assert(false);
}
return "internal_error";
}
std::string CgaladvNode::toString() const

View File

@ -114,7 +114,7 @@ AbstractNode *ControlModule::instantiate(const Context *ctx, const ModuleInstant
// assert(filectx->evalctx);
if (filectx->evalctx) {
if (n < filectx->evalctx->numChildren()) {
if (n < (int)filectx->evalctx->numChildren()) {
node = filectx->evalctx->getChild(n)->evaluate(filectx->evalctx);
}
else {

View File

@ -69,6 +69,7 @@ std::string CsgNode::name() const
default:
assert(false);
}
return "internal_error";
}
void register_builtin_csgops()

View File

@ -204,7 +204,7 @@ PolySet *ImportNode::evaluate_polyset(class PolySetEvaluator *) const
boost::regex ex_vertices("\\s*vertex\\s+([^\\s]+)\\s+([^\\s]+)\\s+([^\\s]+)");
bool binary = false;
int file_size = f.tellg();
std::streampos file_size = f.tellg();
f.seekg(80);
if (!f.eof()) {
uint32_t facenum = 0;

View File

@ -955,7 +955,9 @@ void MainWindow::actionSaveAs()
void MainWindow::actionShowLibraryFolder()
{
QDesktopServices::openUrl(QUrl::fromLocalFile(QString::fromStdString(PlatformUtils::libraryPath())));
QString url = QString::fromStdString(PlatformUtils::libraryPath());
PRINTB("Opening file browser for %s", url.toStdString() );
QDesktopServices::openUrl(QUrl::fromLocalFile( url ));
}
void MainWindow::actionReload()

View File

@ -46,7 +46,8 @@ string glew_extensions_dump()
sort( extensions.begin(), extensions.end() );
stringstream out;
out << "GL Extensions:";
for ( int i=0;i<extensions.size();i++ ) out << extensions[i] << "\n";
for ( unsigned int i=0;i<extensions.size();i++ )
out << extensions[i] << "\n";
return out.str();
}