Merge remote-tracking branch 'origin/master' into c++11
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 64 KiB |
After Width: | Height: | Size: 64 KiB |
|
@ -88,6 +88,7 @@ are build scripts that download and compile the libraries from source.
|
|||
Follow the instructions for the platform you're compiling on below.
|
||||
|
||||
* [Qt4 (4.4 - 5.3)](http://www.qt.nokia.com/)
|
||||
* [QScintilla2 (2.7)](http://www.riverbankcomputing.co.uk/software/qscintilla/)
|
||||
* [CGAL (3.6 - 4.4)](http://www.cgal.org/)
|
||||
* [GMP (5.x)](http://www.gmplib.org/)
|
||||
* [MPFR (3.x)](http://www.mpfr.org/)
|
||||
|
|
After Width: | Height: | Size: 64 KiB |
|
@ -16,3 +16,4 @@ include(sparkle.pri)
|
|||
include(harfbuzz.pri)
|
||||
include(freetype.pri)
|
||||
include(fontconfig.pri)
|
||||
include(scintilla.pri)
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||
<fontconfig>
|
||||
<alias>
|
||||
<alias binding="strong">
|
||||
<family>sans-serif</family>
|
||||
<prefer>
|
||||
<family>Liberation Sans</family>
|
||||
</prefer>
|
||||
</alias>
|
||||
<alias>
|
||||
<alias binding="strong">
|
||||
<family>serif</family>
|
||||
<prefer>
|
||||
<family>Liberation Serif</family>
|
||||
</prefer>
|
||||
</alias>
|
||||
<alias>
|
||||
<alias binding="strong">
|
||||
<family>monospace</family>
|
||||
<prefer>
|
||||
<family>Liberation Mono</family>
|
||||
|
|
|
@ -0,0 +1,98 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.5 r10040"
|
||||
sodipodi:docname="background.png"
|
||||
width="4096"
|
||||
height="2048">
|
||||
<defs
|
||||
id="defs4">
|
||||
<linearGradient
|
||||
id="linearGradient3866">
|
||||
<stop
|
||||
style="stop-color:#eeeeee;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3868" />
|
||||
<stop
|
||||
style="stop-color:#fafafa;stop-opacity:0.98039216;"
|
||||
offset="1"
|
||||
id="stop3870" />
|
||||
</linearGradient>
|
||||
<inkscape:path-effect
|
||||
effect="spiro"
|
||||
id="path-effect3864"
|
||||
is_visible="true" />
|
||||
<inkscape:path-effect
|
||||
effect="spiro"
|
||||
id="path-effect3092"
|
||||
is_visible="true" />
|
||||
<inkscape:path-effect
|
||||
effect="spiro"
|
||||
id="path-effect3088"
|
||||
is_visible="true" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3866"
|
||||
id="linearGradient3872"
|
||||
x1="498.51535"
|
||||
y1="-132.61803"
|
||||
x2="485.61191"
|
||||
y2="1079.5651"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
spreadMethod="pad"
|
||||
gradientTransform="matrix(1.6433895,0,0,1.7222108,0,-757.44619)" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#fcfcfc"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="1"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.27395613"
|
||||
inkscape:cx="821.95355"
|
||||
inkscape:cy="1254.6882"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="2085"
|
||||
inkscape:window-height="944"
|
||||
inkscape:window-x="41"
|
||||
inkscape:window-y="426"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,995.63782)">
|
||||
<path
|
||||
style="fill:url(#linearGradient3872);fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 0,-607.63782 c 573.64466,-587.12628 1686.5916,-78.13811 4095,1318.13894 l 0,341.86108 -4095,0 z"
|
||||
id="path3090"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.9 KiB |
After Width: | Height: | Size: 50 KiB |
After Width: | Height: | Size: 12 KiB |
|
@ -5,4 +5,4 @@ Name=OpenSCAD
|
|||
Icon=openscad
|
||||
Exec=openscad %f
|
||||
MimeType=application/x-openscad;
|
||||
Categories=Graphics;3DGraphics;Engineering;Development;
|
||||
Categories=Graphics;3DGraphics;Engineering;
|
||||
|
|
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 64 KiB |
After Width: | Height: | Size: 64 KiB |
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 64 KiB |
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 773 B |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 463 B |
After Width: | Height: | Size: 955 B |
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 942 B |
After Width: | Height: | Size: 939 B |
After Width: | Height: | Size: 920 B |
After Width: | Height: | Size: 909 B |
After Width: | Height: | Size: 942 B |
After Width: | Height: | Size: 200 B |
After Width: | Height: | Size: 889 B |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 864 B |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 885 B |
After Width: | Height: | Size: 317 B |
After Width: | Height: | Size: 325 B |
After Width: | Height: | Size: 425 B |
After Width: | Height: | Size: 500 B |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 641 B |
After Width: | Height: | Size: 910 B |
After Width: | Height: | Size: 884 B |
After Width: | Height: | Size: 570 B |
After Width: | Height: | Size: 518 B |
After Width: | Height: | Size: 368 B |
After Width: | Height: | Size: 361 B |
After Width: | Height: | Size: 882 B |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 884 B |
After Width: | Height: | Size: 922 B |
After Width: | Height: | Size: 710 B |
After Width: | Height: | Size: 927 B |
After Width: | Height: | Size: 934 B |
After Width: | Height: | Size: 945 B |
After Width: | Height: | Size: 938 B |
After Width: | Height: | Size: 884 B |
56
openscad.pro
|
@ -1,14 +1,14 @@
|
|||
# Environment variables which can be set to specify library locations:
|
||||
# MPIRDIR
|
||||
# MPFRDIR
|
||||
# BOOSTDIR
|
||||
# CGALDIR
|
||||
# EIGENDIR
|
||||
# GLEWDIR
|
||||
# OPENCSGDIR
|
||||
# OPENSCAD_LIBRARIES
|
||||
# MPIRDIR
|
||||
# MPFRDIR
|
||||
# BOOSTDIR
|
||||
# CGALDIR
|
||||
# EIGENDIR
|
||||
# GLEWDIR
|
||||
# OPENCSGDIR
|
||||
# OPENSCAD_LIBRARIES
|
||||
#
|
||||
# Please see the 'Building' sections of the OpenSCAD user manual
|
||||
# Please see the 'Building' sections of the OpenSCAD user manual
|
||||
# for updated tips & workarounds.
|
||||
#
|
||||
# http://en.wikibooks.org/wiki/OpenSCAD_User_Manual
|
||||
|
@ -151,13 +151,13 @@ netbsd* {
|
|||
}
|
||||
|
||||
# Prevent LD_LIBRARY_PATH problems when running the openscad binary
|
||||
# on systems where uni-build-dependencies.sh was used.
|
||||
# on systems where uni-build-dependencies.sh was used.
|
||||
# Will not affect 'normal' builds.
|
||||
!isEmpty(OPENSCAD_LIBDIR) {
|
||||
unix:!macx {
|
||||
QMAKE_LFLAGS = -Wl,-R$$OPENSCAD_LIBDIR/lib $$QMAKE_LFLAGS
|
||||
# need /lib64 beause GLEW installs itself there on 64 bit machines
|
||||
QMAKE_LFLAGS = -Wl,-R$$OPENSCAD_LIBDIR/lib64 $$QMAKE_LFLAGS
|
||||
QMAKE_LFLAGS = -Wl,-R$$OPENSCAD_LIBDIR/lib64 $$QMAKE_LFLAGS
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -195,8 +195,8 @@ CONFIG += harfbuzz
|
|||
CONFIG += freetype
|
||||
CONFIG += fontconfig
|
||||
|
||||
#Uncomment the following line to enable QCodeEdit
|
||||
#CONFIG += qcodeedit
|
||||
#Uncomment the following line to enable the QScintilla editor
|
||||
CONFIG += scintilla
|
||||
|
||||
# Make experimental features available
|
||||
experimental {
|
||||
|
@ -224,12 +224,14 @@ win* {
|
|||
|
||||
RESOURCES = openscad.qrc
|
||||
|
||||
FORMS += src/MainWindow.ui \
|
||||
FORMS += src/MainWindow.ui \
|
||||
src/Preferences.ui \
|
||||
src/OpenCSGWarningDialog.ui \
|
||||
src/AboutDialog.ui \
|
||||
src/FontListDialog.ui \
|
||||
src/ProgressWidget.ui
|
||||
src/ProgressWidget.ui \
|
||||
src/launchingscreen.ui \
|
||||
src/LibraryInfoDialog.ui
|
||||
|
||||
HEADERS += src/typedefs.h \
|
||||
src/version_check.h \
|
||||
|
@ -299,9 +301,9 @@ HEADERS += src/typedefs.h \
|
|||
src/GeometryEvaluator.h \
|
||||
src/CSGTermEvaluator.h \
|
||||
src/Tree.h \
|
||||
src/DrawingCallback.h \
|
||||
src/FreetypeRenderer.h \
|
||||
src/FontCache.h \
|
||||
src/DrawingCallback.h \
|
||||
src/FreetypeRenderer.h \
|
||||
src/FontCache.h \
|
||||
src/mathc99.h \
|
||||
src/memory.h \
|
||||
src/linalg.h \
|
||||
|
@ -321,7 +323,11 @@ HEADERS += src/typedefs.h \
|
|||
src/system-gl.h \
|
||||
src/CsgInfo.h \
|
||||
\
|
||||
src/AutoUpdater.h
|
||||
src/Dock.h \
|
||||
src/AutoUpdater.h \
|
||||
src/launchingscreen.h \
|
||||
src/legacyeditor.h \
|
||||
src/LibraryInfoDialog.h
|
||||
|
||||
SOURCES += src/version_check.cc \
|
||||
src/ProgressWidget.cc \
|
||||
|
@ -407,7 +413,12 @@ SOURCES += src/version_check.cc \
|
|||
\
|
||||
src/openscad.cc \
|
||||
src/mainwin.cc \
|
||||
src/FontListDialog.cc
|
||||
src/UIUtils.cc \
|
||||
src/Dock.cc \
|
||||
src/FontListDialog.cc \
|
||||
src/launchingscreen.cc \
|
||||
src/legacyeditor.cc \
|
||||
src/LibraryInfoDialog.cc
|
||||
|
||||
# ClipperLib
|
||||
SOURCES += src/polyclipping/clipper.cpp
|
||||
|
@ -481,6 +492,10 @@ libraries.path = $$PREFIX/share/openscad/libraries/
|
|||
libraries.files = libraries/*
|
||||
INSTALLS += libraries
|
||||
|
||||
fonts.path = $$PREFIX/share/openscad/fonts/
|
||||
fonts.files = fonts/*
|
||||
INSTALLS += fonts
|
||||
|
||||
applications.path = $$PREFIX/share/applications
|
||||
applications.files = icons/openscad.desktop
|
||||
INSTALLS += applications
|
||||
|
@ -504,4 +519,3 @@ INSTALLS += man
|
|||
CONFIG(winconsole) {
|
||||
include(winconsole.pri)
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE QtCreatorProject>
|
||||
<!-- Written by Qt Creator 2.4.1, 2012-02-15T08:41:23. -->
|
||||
<!-- Written by QtCreator 3.0.1, 2014-08-11T22:59:13. -->
|
||||
<qtcreator>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.ActiveTarget</variable>
|
||||
|
@ -11,22 +11,24 @@
|
|||
<valuemap type="QVariantMap">
|
||||
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
|
||||
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
|
||||
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
|
||||
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
|
||||
<value type="QString" key="language">Cpp</value>
|
||||
<valuemap type="QVariantMap" key="value">
|
||||
<value type="QString" key="CurrentPreferences">CppGlobal</value>
|
||||
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
|
||||
</valuemap>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
|
||||
<value type="QString" key="language">QmlJS</value>
|
||||
<valuemap type="QVariantMap" key="value">
|
||||
<value type="QString" key="CurrentPreferences">QmlJSGlobal</value>
|
||||
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
|
||||
</valuemap>
|
||||
</valuemap>
|
||||
<value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
|
||||
<value type="QByteArray" key="EditorConfiguration.Codec">System</value>
|
||||
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
|
||||
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
|
||||
<value type="int" key="EditorConfiguration.IndentSize">4</value>
|
||||
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
|
||||
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
|
||||
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
|
||||
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
|
||||
|
@ -49,135 +51,34 @@
|
|||
<data>
|
||||
<variable>ProjectExplorer.Project.Target.0</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Target.DesktopTarget</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.8.6 (qt4)</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Qt 4.8.6 (qt4)</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{90222843-28c9-4a66-ac82-99bd31ae7263}</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
||||
<value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">INVALID</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory"></value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
|
||||
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges">
|
||||
<value type="QString">OPENSCAD_LIBRARIES=$$PWD/../libraries/install</value>
|
||||
</valuelist>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">MacPorts QT4 Release</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">$$PWD/../openscad-build-desktop</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">-1</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
|
||||
<value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">ProjectExplorer.ToolChain.Gcc:/usr/bin/g++.x86-macos-generic-mach_o-64bit./usr/bin/gdb</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
|
||||
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments">-spec macx-g++</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">-j4</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges">
|
||||
<value type="QString">OPENSCAD_LIBRARIES=$$PWD/../libraries/install</value>
|
||||
<value type="QString">CCACHE_BASEDIR=$$PWD/..</value>
|
||||
<value type="QString">PATH=/opt/local/libexec/ccache:/usr/bin:$QTDIR/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/local/bin</value>
|
||||
<value type="QString">EIGEN2DIR=$$PWD/../libraries/install/include/eigen2</value>
|
||||
</valuelist>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 4.7.4 for GCC (Qt SDK) Debug</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">$$PWD</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">3</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
|
||||
<value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">INVALID</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
|
||||
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
|
||||
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments">CONFIG+=experimental</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
|
||||
<value type="QString">-w</value>
|
||||
<value type="QString">-r</value>
|
||||
</valuelist>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
|
@ -189,9 +90,14 @@
|
|||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
|
||||
<value type="QString">-w</value>
|
||||
<value type="QString">-r</value>
|
||||
</valuelist>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
|
@ -204,117 +110,13 @@
|
|||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">4.7.4 Debug</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">$$PWD/../openscad-build-desktop</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">-1</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.3">
|
||||
<value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">INVALID</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
|
||||
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">4.7.4 Release</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">$$PWD/../openscad-build-desktop</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">-1</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.4">
|
||||
<value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">ProjectExplorer.ToolChain.Gcc:/usr/bin/g++.x86-macos-generic-mach_o-64bit./usr/bin/gdb</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clone of qmake</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
|
||||
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments">-spec macx-g++</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clone of Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clone of Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clone of Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clone of Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges">
|
||||
<value type="QString">OPENSCAD_LIBRARIES=$$PWD/../libraries/install</value>
|
||||
</valuelist>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 4.7.4 for GCC (Qt SDK) Debug</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 4.7.4 for GCC (Qt SDK)</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">$$PWD/../openscad-release-desktop</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">3</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">5</value>
|
||||
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">1</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
|
||||
|
@ -323,39 +125,29 @@
|
|||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">No deployment</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy locally</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
|
||||
<value type="bool" key="Analyzer.Project.UseGlobal">true</value>
|
||||
<value type="bool" key="Analyzer.Project.UseGlobal">true</value>
|
||||
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
|
||||
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
|
||||
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
|
||||
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
|
||||
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
|
||||
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
|
||||
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
|
||||
<value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
|
||||
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
|
||||
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
|
||||
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
|
||||
<value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
|
||||
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
|
||||
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
|
||||
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
|
||||
<value type="int">0</value>
|
||||
|
@ -374,37 +166,22 @@
|
|||
<value type="int">13</value>
|
||||
<value type="int">14</value>
|
||||
</valuelist>
|
||||
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
|
||||
<value type="int">0</value>
|
||||
<value type="int">1</value>
|
||||
<value type="int">2</value>
|
||||
<value type="int">3</value>
|
||||
<value type="int">4</value>
|
||||
<value type="int">5</value>
|
||||
<value type="int">6</value>
|
||||
<value type="int">7</value>
|
||||
<value type="int">8</value>
|
||||
<value type="int">9</value>
|
||||
<value type="int">10</value>
|
||||
<value type="int">11</value>
|
||||
<value type="int">12</value>
|
||||
<value type="int">13</value>
|
||||
<value type="int">14</value>
|
||||
</valuelist>
|
||||
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
|
||||
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">openscad</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4RunConfiguration.BaseEnvironmentBase">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/home/shaina/openscad/openscad.pro</value>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">openscad.pro</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal">false</value>
|
||||
<valuelist type="QVariantList" key="Qt4ProjectManager.Qt4RunConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
|
||||
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
|
||||
<value type="bool" key="RunConfiguration.UseCppDebugger">true</value>
|
||||
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
||||
</valuemap>
|
||||
|
@ -415,10 +192,10 @@
|
|||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
|
||||
<value type="QString">{b7a15081-01e1-47e4-b2e5-20f6404deb62}</value>
|
||||
<value type="QByteArray">{56f57d1a-fe9b-42b2-a96b-3ac76cf7565f}</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
|
||||
<value type="int">10</value>
|
||||
<value type="int">15</value>
|
||||
</data>
|
||||
</qtcreator>
|
||||
|
|
51
openscad.qrc
|
@ -1,5 +1,8 @@
|
|||
<RCC>
|
||||
<qresource prefix="/">
|
||||
<file>icons/openscad.png</file>
|
||||
<file>icons/button.png</file>
|
||||
<file>icons/background-welcome-screen.svg</file>
|
||||
<file>icons/prefsFeatures.png</file>
|
||||
<file>icons/stopbutton.png</file>
|
||||
<file>icons/prefsAdvanced.png</file>
|
||||
|
@ -8,5 +11,53 @@
|
|||
<file>icons/prefsUpdate.png</file>
|
||||
<file>icons/flattr.png</file>
|
||||
<file>src/AboutDialog.html</file>
|
||||
<file>images/Arrowhead-Right-32.png</file>
|
||||
<file>images/export.png</file>
|
||||
<file>images/axes.png</file>
|
||||
<file>images/export-white.png</file>
|
||||
<file>images/back.png</file>
|
||||
<file>images/Document-New-128.png</file>
|
||||
<file>images/front.png</file>
|
||||
<file>images/grid.png</file>
|
||||
<file>images/Open-128.png</file>
|
||||
<file>images/openscad.png</file>
|
||||
<file>images/right.png</file>
|
||||
<file>images/Save-128.png</file>
|
||||
<file>images/up.png</file>
|
||||
<file>images/bottom.png</file>
|
||||
<file>images/left.png</file>
|
||||
<file>images/blackUp.png</file>
|
||||
<file>images/blackNew.png</file>
|
||||
<file>images/blackRender.png</file>
|
||||
<file>images/Rotation-32.png</file>
|
||||
<file>images/Shape-Cube-32.png</file>
|
||||
<file>images/Open-32.png</file>
|
||||
<file>images/Save-32.png</file>
|
||||
<file>images/blackbottom.png</file>
|
||||
<file>images/blackleft (copy).png</file>
|
||||
<file>images/rightright.png</file>
|
||||
<file>images/blackfront.png</file>
|
||||
<file>images/blackback.png</file>
|
||||
<file>images/blackaxes.png</file>
|
||||
<file>images/zoomin.png</file>
|
||||
<file>images/zoomout.png</file>
|
||||
<file>images/wireframe1.png</file>
|
||||
<file>images/surface.png</file>
|
||||
<file>images/Zoom-In-32.png</file>
|
||||
<file>images/Zoom-Out-32.png</file>
|
||||
<file>images/zoom-all.png</file>
|
||||
<file>images/zoom-all-white.png</file>
|
||||
<file>images/surfaceWhite.png</file>
|
||||
<file>images/wireframeWhite.png</file>
|
||||
<file>images/orthogonal.png</file>
|
||||
<file>images/cross.png</file>
|
||||
<file>images/perspective1.png</file>
|
||||
<file>images/Preview-32.png</file>
|
||||
<file>images/animate.png</file>
|
||||
<file>images/Preview-32 (1).png</file>
|
||||
<file>images/orthogonalwhite.png</file>
|
||||
<file>images/perspective1white.png</file>
|
||||
<file>images/crosswhite.png</file>
|
||||
<file>icons/background.png</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
diff --git a/opencsg.pro b/opencsg.pro
|
||||
index b56e622..5cf2d6d 100644
|
||||
--- a/opencsg.pro
|
||||
+++ b/opencsg.pro
|
||||
@@ -1,2 +1,2 @@
|
||||
TEMPLATE = subdirs
|
||||
-SUBDIRS = src example
|
||||
+SUBDIRS = src
|
||||
diff --git a/src/src.pro b/src/src.pro
|
||||
index 9091251..598112a 100644
|
||||
--- a/src/src.pro
|
||||
+++ b/src/src.pro
|
||||
@@ -3,15 +3,14 @@ TARGET = opencsg
|
||||
VERSION = 1.4.0
|
||||
|
||||
CONFIG += opengl warn_on release
|
||||
+CONFIG += absolute_library_soname
|
||||
INCLUDEPATH += ../include ../
|
||||
CONFIG -= qt
|
||||
LIBS += -lGLEW
|
||||
|
||||
-DESTDIR = ../lib
|
||||
-INSTALLDIR = /usr/local
|
||||
headers.files = ../include/opencsg.h
|
||||
-headers.path = $$INSTALLDIR/include
|
||||
-target.path = /usr/local/lib
|
||||
+headers.path = $$DESTDIR/include
|
||||
+target.path = $$DESTDIR/lib
|
||||
INSTALLS += target headers
|
||||
|
||||
HEADERS = ../include/opencsg.h \
|
|
@ -0,0 +1,18 @@
|
|||
greaterThan(QT_MAJOR_VERSION, 4) {
|
||||
QT += widgets printsupport
|
||||
|
||||
greaterThan(QT_MINOR_VERSION, 1) {
|
||||
macx:QT += macextras
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDEPATH += $$[QT_INSTALL_HEADERS]
|
||||
|
||||
LIBS += -L$$[QT_INSTALL_LIBS]
|
||||
|
||||
greaterThan(QT_MAJOR_VERSION, 4) {
|
||||
win32|macx:LIBS += -lqscintilla2
|
||||
else:LIBS += -lqt5scintilla2
|
||||
} else {
|
||||
LIBS += -lqscintilla2
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
scintilla {
|
||||
HEADERS += src/scintillaeditor.h src/scadlexer.h
|
||||
SOURCES += src/scintillaeditor.cpp src/scadlexer.cpp
|
||||
|
||||
DEFINES += USE_SCINTILLA_EDITOR
|
||||
|
||||
# The qscintilla2.prf which ships with QScintilla is broken for Mac/Windows
|
||||
# debug builds, so we supply our own
|
||||
win32|macx: {
|
||||
include(qscintilla2.prf)
|
||||
}
|
||||
else: {
|
||||
load(qscintilla2) {
|
||||
# All good, found installed *.prf file.
|
||||
} else {
|
||||
# Older scintilla libs (e.g. 2.7.2 on fedora20) do not provide the
|
||||
# prf file.
|
||||
#
|
||||
# In addition Ubuntu (and maybe other distributions) have the Qt5
|
||||
# prf file in the wrong location so it's not picked up by qmake
|
||||
#
|
||||
message("Using local copy of qscintilla2.prf instead.")
|
||||
include(qscintilla2.prf)
|
||||
}
|
||||
}
|
||||
}
|
|
@ -83,6 +83,9 @@ glib2_sysver()
|
|||
if [ ! -e $glib2path ]; then
|
||||
glib2path=$1/lib/glib-2.0/include/glibconfig.h
|
||||
fi
|
||||
if [ ! -e $glib2path ]; then
|
||||
glib2path=$1/lib64/glib-2.0/include/glibconfig.h
|
||||
fi
|
||||
if [ ! -e $glib2path ]; then
|
||||
return
|
||||
fi
|
||||
|
@ -157,20 +160,67 @@ gmp_sysver()
|
|||
gmp_sysver_result="$gmpmaj.$gmpmin.$gmppat"
|
||||
}
|
||||
|
||||
qt4_sysver()
|
||||
qt_sysver()
|
||||
{
|
||||
qt4path=$1/include/qt4/QtCore/qglobal.h
|
||||
if [ ! -e $qt4path ]; then
|
||||
qt4path=$1/include/QtCore/qglobal.h
|
||||
if [ "`command -v qtchooser`" ]; then
|
||||
if qtchooser -run-tool=qmake -qt=5 -v >/dev/null 2>&1 ; then
|
||||
export QT_SELECT=5
|
||||
qtpath="`qtchooser -run-tool=qmake -qt=5 -query QT_INSTALL_HEADERS`"/QtCore/qglobal.h
|
||||
fi
|
||||
if [ ! -e $qtpath ]; then
|
||||
if qtchooser -run-tool=qmake -qt=4 -v >/dev/null 2>&1 ; then
|
||||
export QT_SELECT=4
|
||||
qtpath="`qtchooser -run-tool=qmake -qt=4 -query QT_INSTALL_HEADERS`"/QtCore/qglobal.h
|
||||
fi
|
||||
fi
|
||||
else
|
||||
export QT_SELECT=5
|
||||
qtpath=$1/include/qt5/QtCore/qglobal.h
|
||||
if [ ! -e $qtpath ]; then
|
||||
qtpath=$1/include/i686-linux-gnu/qt5/QtCore/qglobal.h
|
||||
fi
|
||||
if [ ! -e $qtpath ]; then
|
||||
qtpath=$1/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h
|
||||
fi
|
||||
if [ ! -e $qtpath ]; then
|
||||
export QT_SELECT=4
|
||||
qtpath=$1/include/qt4/QtCore/qglobal.h
|
||||
fi
|
||||
if [ ! -e $qtpath ]; then
|
||||
qtpath=$1/include/QtCore/qglobal.h
|
||||
fi
|
||||
if [ ! -e $qtpath ]; then
|
||||
# netbsd
|
||||
qtpath=$1/qt4/include/QtCore/qglobal.h
|
||||
fi
|
||||
if [ ! -e $qtpath ]; then
|
||||
unset QT_SELECT
|
||||
return
|
||||
fi
|
||||
fi
|
||||
if [ ! -e $qt4path ]; then
|
||||
# netbsd
|
||||
qt4path=$1/qt4/include/QtCore/qglobal.h
|
||||
qtver=`grep 'define *QT_VERSION_STR *' $qtpath | awk '{print $3}'`
|
||||
qtver=`echo $qtver | sed s/'"'//g`
|
||||
qt_sysver_result=$qtver
|
||||
}
|
||||
|
||||
qscintilla2_sysver()
|
||||
{
|
||||
# expecting the QT_SELECT already set in case we found qtchooser
|
||||
if qmake -v >/dev/null 2>&1 ; then
|
||||
QMAKE=qmake
|
||||
elif [ "`command -v qmake-qt4`" ]; then
|
||||
QMAKE=qmake-qt4
|
||||
fi
|
||||
if [ ! -e $qt4path ]; then return; fi
|
||||
qt4ver=`grep 'define *QT_VERSION_STR *' $qt4path | awk '{print $3}'`
|
||||
qt4ver=`echo $qt4ver | sed s/'"'//g`
|
||||
qt4_sysver_result=$qt4ver
|
||||
|
||||
qtincdir="`$QMAKE -query QT_INSTALL_HEADERS`"
|
||||
qscipath="$qtincdir/Qsci/qsciglobal.h"
|
||||
if [ ! -e $qscipath ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
qsciver=`grep define.*QSCINTILLA_VERSION_STR "$qscipath" | awk '{print $3}'`
|
||||
qsciver=`echo $qsciver | sed s/'"'//g`
|
||||
qscintilla2_sysver_result="$qsciver"
|
||||
}
|
||||
|
||||
glew_sysver()
|
||||
|
@ -586,7 +636,7 @@ checkargs()
|
|||
|
||||
main()
|
||||
{
|
||||
deps="qt4 cgal gmp mpfr boost opencsg glew eigen glib2 fontconfig freetype2 harfbuzz gcc bison flex make"
|
||||
deps="qt qscintilla2 cgal gmp mpfr boost opencsg glew eigen glib2 fontconfig freetype2 harfbuzz gcc bison flex make"
|
||||
#deps="$deps curl git" # not technically necessary for build
|
||||
#deps="$deps python cmake imagemagick" # only needed for tests
|
||||
#deps="cgal"
|
||||
|
|
|
@ -55,6 +55,7 @@ build_libxml2()
|
|||
build_fontconfig()
|
||||
{
|
||||
version=$1
|
||||
extra_config_flags="$2"
|
||||
|
||||
if [ -e $DEPLOYDIR/include/fontconfig ]; then
|
||||
echo "fontconfig already installed. not building"
|
||||
|
@ -70,10 +71,10 @@ build_fontconfig()
|
|||
tar xzf "fontconfig-$version.tar.gz"
|
||||
cd "fontconfig-$version"
|
||||
export PKG_CONFIG_PATH="$DEPLOYDIR/lib/pkgconfig"
|
||||
./configure --prefix="$DEPLOYDIR" --enable-libxml2 --disable-docs
|
||||
./configure --prefix=/ --enable-libxml2 --disable-docs $extra_config_flags
|
||||
unset PKG_CONFIG_PATH
|
||||
make -j$NUMCPU
|
||||
make install
|
||||
DESTDIR="$DEPLOYDIR" make -j$NUMCPU
|
||||
DESTDIR="$DEPLOYDIR" make install
|
||||
}
|
||||
|
||||
build_libffi()
|
||||
|
|
|
@ -133,6 +133,22 @@ build_qt5()
|
|||
make -j"$NUMCPU" install
|
||||
}
|
||||
|
||||
build_qscintilla()
|
||||
{
|
||||
version=$1
|
||||
echo "Building QScintilla" $version "..."
|
||||
cd $BASEDIR/src
|
||||
rm -rf QScintilla-gpl-$version
|
||||
if [ ! -f QScintilla-gpl-$version.tar.gz ]; then
|
||||
curl -LO http://downloads.sourceforge.net/project/pyqt/QScintilla2/QScintilla-$version/QScintilla-gpl-$version.tar.gz
|
||||
fi
|
||||
tar xzf QScintilla-gpl-$version.tar.gz
|
||||
cd QScintilla-gpl-$version/Qt4Qt5
|
||||
qmake qscintilla.pro
|
||||
make -j6 install
|
||||
install_name_tool -id $DEPLOYDIR/lib/libqscintilla2.dylib $DEPLOYDIR/lib/libqscintilla2.dylib
|
||||
}
|
||||
|
||||
# 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.
|
||||
|
@ -340,8 +356,9 @@ build_cgal()
|
|||
cd $BASEDIR/src
|
||||
rm -rf CGAL-$version
|
||||
if [ ! -f CGAL-$version.tar.gz ]; then
|
||||
# 4.4
|
||||
curl -O https://gforge.inria.fr/frs/download.php/file/33525/CGAL-$version.tar.gz
|
||||
# 4.5
|
||||
curl -O https://gforge.inria.fr/frs/download.php/file/34149/CGAL-$version.tar.gz
|
||||
# 4.4 curl -O https://gforge.inria.fr/frs/download.php/file/33525/CGAL-$version.tar.gz
|
||||
# 4.3 curl -O https://gforge.inria.fr/frs/download.php/32994/CGAL-$version.tar.gz
|
||||
# 4.2 curl -O https://gforge.inria.fr/frs/download.php/32359/CGAL-$version.tar.gz
|
||||
# 4.1 curl -O https://gforge.inria.fr/frs/download.php/31641/CGAL-$version.tar.gz
|
||||
|
@ -410,7 +427,7 @@ build_opencsg()
|
|||
if $OPTION_32BIT; then
|
||||
OPENCSG_EXTRA_FLAGS="x86"
|
||||
fi
|
||||
OPENSCAD_LIBRARIES=$DEPLOYDIR qmake -r CONFIG+="x86_64 $OPENCSG_EXTRA_FLAGS"
|
||||
qmake -r QMAKE_CXXFLAGS+="-I$DEPLOYDIR/include" QMAKE_LFLAGS+="-L$DEPLOYDIR/lib" CONFIG+="x86_64 $OPENCSG_EXTRA_FLAGS" DESTDIR=$DEPLOYDIR
|
||||
make install
|
||||
}
|
||||
|
||||
|
@ -638,7 +655,7 @@ build_ragel()
|
|||
cd "$BASEDIR"/src
|
||||
rm -rf "ragel-$version"
|
||||
if [ ! -f "ragel-$version.tar.gz" ]; then
|
||||
curl --insecure -LO "http://www.complang.org/ragel/ragel-$version.tar.gz"
|
||||
curl --insecure -LO "http://www.colm.net/wp-content/uploads/2014/10/ragel-$version.tar.gz"
|
||||
fi
|
||||
tar xzf "ragel-$version.tar.gz"
|
||||
cd "ragel-$version"
|
||||
|
@ -754,21 +771,22 @@ fi
|
|||
echo "Using basedir:" $BASEDIR
|
||||
mkdir -p $SRCDIR $DEPLOYDIR
|
||||
build_qt5 5.3.1
|
||||
build_qscintilla 2.8.3
|
||||
# NB! For eigen, also update the path in the function
|
||||
build_eigen 3.2.1
|
||||
build_gmp 5.1.3
|
||||
build_mpfr 3.1.2
|
||||
build_boost 1.54.0
|
||||
# NB! For CGAL, also update the actual download URL in the function
|
||||
build_cgal 4.4
|
||||
build_cgal 4.5
|
||||
build_glew 1.10.0
|
||||
build_gettext 0.18.3.2
|
||||
build_libffi 3.1
|
||||
build_glib2 2.40.0
|
||||
build_opencsg 1.3.2
|
||||
build_opencsg 1.4.0
|
||||
build_freetype 2.5.3 --without-png
|
||||
build_ragel 6.8
|
||||
build_harfbuzz 0.9.28 "--with-coretext=auto --with-glib=no"
|
||||
build_ragel 6.9
|
||||
build_harfbuzz 0.9.35 "--with-coretext=auto --with-glib=no"
|
||||
export FREETYPE_CFLAGS="-I$DEPLOYDIR/include -I$DEPLOYDIR/include/freetype2"
|
||||
export FREETYPE_LIBS="-L$DEPLOYDIR/lib -lfreetype"
|
||||
build_libxml2 2.9.1
|
||||
|
|
|
@ -58,21 +58,21 @@ fi
|
|||
|
||||
echo "entering" $MXEDIR
|
||||
cd $MXEDIR
|
||||
echo 'checkout stable branch'
|
||||
git checkout stable
|
||||
echo 'checkout master branch'
|
||||
git checkout master
|
||||
if [ "`echo $* | grep 64`" ]; then
|
||||
MXE_TARGETS='x86_64-w64-mingw32'
|
||||
MXE_TARGETS='x86_64-w64-mingw32.static'
|
||||
if [ "`echo $* | grep download`" ]; then
|
||||
PACKAGES='download-mpfr download-eigen download-opencsg download-cgal download-qt download-qt5 download-glib download-freetype download-fontconfig download-harfbuzz'
|
||||
PACKAGES='download-mpfr download-eigen download-opencsg download-cgal download-qtbase download-glib download-freetype download-fontconfig download-harfbuzz'
|
||||
else
|
||||
PACKAGES='qt qt5 mpfr eigen opencsg cgal glib freetype fontconfig harfbuzz'
|
||||
PACKAGES='qtbase qscintilla2 mpfr eigen opencsg cgal glib freetype fontconfig harfbuzz'
|
||||
fi
|
||||
else
|
||||
MXE_TARGETS='i686-pc-mingw32'
|
||||
MXE_TARGETS='i686-w64-mingw32.static'
|
||||
if [ "`echo $* | grep download`" ]; then
|
||||
PACKAGES='download-mpfr download-eigen download-opencsg download-cgal download-qt download-qt5 download-nsis download-glib download-freetype download-fontconfig download-harfbuzz'
|
||||
PACKAGES='download-mpfr download-eigen download-opencsg download-cgal download-qtbase download-nsis download-glib download-freetype download-fontconfig download-harfbuzz'
|
||||
else
|
||||
PACKAGES='qt qt5 mpfr eigen opencsg cgal nsis glib freetype fontconfig harfbuzz'
|
||||
PACKAGES='qtbase qscintilla2 mpfr eigen opencsg cgal nsis glib freetype fontconfig harfbuzz'
|
||||
fi
|
||||
fi
|
||||
echo make $PACKAGES MXE_TARGETS=$MXE_TARGETS -j $NUMCPU JOBS=$NUMJOBS
|
||||
|
|
|
@ -4,5 +4,6 @@ cd "$( dirname "$( type -p $0 )" )"
|
|||
libdir=$PWD/../lib/openscad/
|
||||
cd "$OLDPWD"
|
||||
|
||||
export LIBGL_DRIVERS_PATH="$libdir"/dri
|
||||
export LD_LIBRARY_PATH="$libdir${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
|
||||
exec $libdir/openscad "$@"
|
||||
|
|
|
@ -361,6 +361,9 @@ if [ -n $FONTDIR ]; then
|
|||
MACOSX)
|
||||
cp -a fonts-osx/* $FONTDIR
|
||||
;;
|
||||
UNIX_CROSS_WIN)
|
||||
cp -a "$DEPLOYDIR"/mingw-cross-env/etc/fonts/. "$FONTDIR"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if [ -n $LIBRARYDIR ]; then
|
||||
|
@ -452,12 +455,26 @@ case $OS in
|
|||
gcc -o chrpath_linux -DSIZEOF_VOID_P=4 scripts/chrpath_linux.c
|
||||
fi
|
||||
./chrpath_linux -d openscad-$VERSION/lib/openscad/openscad
|
||||
ldd openscad | sed -re 's,.* => ,,; s,[\t ].*,,;' -e '/Qt|boost/ { p; d; };' \
|
||||
-e '/lib(icu.*|stdc.*|audio|CGAL|GLEW|opencsg|png|gmp|gmpxx|mpfr)\.so/ { p; d; };' \
|
||||
-e 'd;' | xargs cp -vt openscad-$VERSION/lib/openscad/
|
||||
|
||||
QTLIBDIR=$(dirname $(ldd openscad | grep Qt5Gui | head -n 1 | awk '{print $3;}'))
|
||||
( ldd openscad ; ldd "$QTLIBDIR"/qt5/plugins/platforms/libqxcb.so ) \
|
||||
| sed -re 's,.* => ,,; s,[\t ].*,,;' -e '/^$/d' -e '/libc\.so|libm\.so|libdl\.so|libgcc_|libpthread\.so/d' \
|
||||
| sort -u \
|
||||
| xargs cp -vt "openscad-$VERSION/lib/openscad/"
|
||||
PLATFORMDIR="openscad-$VERSION/lib/openscad/platforms/"
|
||||
mkdir -p "$PLATFORMDIR"
|
||||
cp -av "$QTLIBDIR"/qt5/plugins/platforms/libqxcb.so "$PLATFORMDIR"
|
||||
DRIDRIVERDIR=$(find /usr/lib -xdev -type d -name dri)
|
||||
if [ -d "$DRIDRIVERDIR" ]
|
||||
then
|
||||
DRILIB="openscad-$VERSION/lib/openscad/dri/"
|
||||
mkdir -p "$DRILIB"
|
||||
cp -av "$DRIDRIVERDIR"/swrast_dri.so "$DRILIB"
|
||||
fi
|
||||
|
||||
strip openscad-$VERSION/lib/openscad/*
|
||||
mkdir -p openscad-$VERSION/share/appdata
|
||||
cp openscad.appdata.xml openscad-$VERSION/share/appdata
|
||||
cp icons/openscad.{desktop,png,xml} openscad-$VERSION/share/appdata
|
||||
cp scripts/installer-linux.sh openscad-$VERSION/install.sh
|
||||
chmod 755 -R openscad-$VERSION/
|
||||
PACKAGEFILE=openscad-$VERSION.x86-$ARCH.tar.gz
|
||||
|
|
|
@ -56,9 +56,9 @@ if [ ! -e $DEPLOYDIR ]; then
|
|||
fi
|
||||
|
||||
if [ "`echo $* | grep 64 `" ]; then
|
||||
MXETARGETDIR=$MXEDIR/usr/x86_64-w64-mingw32
|
||||
MXETARGETDIR=$MXEDIR/usr/x86_64-w64-mingw32.static
|
||||
else
|
||||
MXETARGETDIR=$MXEDIR/usr/i686-pc-mingw32
|
||||
MXETARGETDIR=$MXEDIR/usr/i686-w64-mingw32.static
|
||||
fi
|
||||
|
||||
if [ ! $MINGWX_SAVED_ORIGINAL_PATH ]; then
|
||||
|
|
|
@ -13,7 +13,7 @@ if [[ $? != 0 ]]; then
|
|||
fi
|
||||
# Exclude tests known the cause issues on Travis
|
||||
# opencsgtest_rotate_extrude-tests - Fails on Ubuntu 12.04 using Gallium 0.4 drivers
|
||||
ctest -j8 -E "opencsgtest_rotate_extrude-tests|opencsgtest_render-tests"
|
||||
ctest -j8 -E "opencsgtest_rotate_extrude-tests|opencsgtest_render-tests|opencsgtest_rotate_extrude-hole|opencsgtest_internal-cavity|opencsgtest_internal-cavity-polyhedron|opencsgtest_minkowski3-erosion"
|
||||
if [[ $? != 0 ]]; then
|
||||
echo "Test failure"
|
||||
exit 1
|
||||
|
|
|
@ -131,6 +131,56 @@ build_qt4()
|
|||
echo "----------"
|
||||
}
|
||||
|
||||
build_qt5()
|
||||
{
|
||||
version=$1
|
||||
|
||||
if [ -f $DEPLOYDIR/lib/libQt5Core.a ]; then
|
||||
echo "Qt5 already installed. not building"
|
||||
return
|
||||
fi
|
||||
|
||||
echo "Building Qt" $version "..."
|
||||
cd $BASEDIR/src
|
||||
rm -rf qt-everywhere-opensource-src-$version
|
||||
v=`echo "$version" | sed -e 's/\.[0-9]$//'`
|
||||
if [ ! -f qt-everywhere-opensource-src-$version.tar.gz ]; then
|
||||
curl -O -L http://download.qt-project.org/official_releases/qt/$v/$version/single/qt-everywhere-opensource-src-$version.tar.gz
|
||||
fi
|
||||
tar xzf qt-everywhere-opensource-src-$version.tar.gz
|
||||
cd qt-everywhere-opensource-src-$version
|
||||
./configure -prefix $DEPLOYDIR -release -static -opensource -confirm-license \
|
||||
-nomake examples -nomake tests \
|
||||
-qt-xcb -no-c++11 -no-glib -no-harfbuzz -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc \
|
||||
-no-sql-psql -no-sql-sqlite2 -no-sql-tds -no-cups -no-qml-debug \
|
||||
-skip activeqt -skip connectivity -skip declarative -skip doc \
|
||||
-skip enginio -skip graphicaleffects -skip location -skip multimedia \
|
||||
-skip quick1 -skip quickcontrols -skip script -skip sensors -skip serialport \
|
||||
-skip svg -skip webkit -skip webkit-examples -skip websockets -skip xmlpatterns
|
||||
make -j"$NUMCPU" install
|
||||
}
|
||||
|
||||
build_qt5scintilla2()
|
||||
{
|
||||
version=$1
|
||||
|
||||
if [ -d $DEPLOYDIR/lib/libqt5scintilla2.a ]; then
|
||||
echo "Qt5Scintilla2 already installed. not building"
|
||||
return
|
||||
fi
|
||||
|
||||
echo "Building Qt5Scintilla2" $version "..."
|
||||
cd $BASEDIR/src
|
||||
#rm -rf QScintilla-gpl-$version.tar.gz
|
||||
if [ ! -f QScintilla-gpl-$version.tar.gz ]; then
|
||||
curl -L -o "QScintilla-gpl-$version.tar.gz" "http://downloads.sourceforge.net/project/pyqt/QScintilla2/QScintilla-$version/QScintilla-gpl-$version.tar.gz?use_mirror=switch"
|
||||
fi
|
||||
tar xzf QScintilla-gpl-$version.tar.gz
|
||||
cd QScintilla-gpl-$version/Qt4Qt5/
|
||||
qmake CONFIG+=staticlib
|
||||
make -j"$NUMCPU" install
|
||||
}
|
||||
|
||||
build_bison()
|
||||
{
|
||||
version=$1
|
||||
|
@ -210,7 +260,7 @@ build_gmp()
|
|||
cd $BASEDIR/src
|
||||
rm -rf gmp-$version
|
||||
if [ ! -f gmp-$version.tar.bz2 ]; then
|
||||
curl --insecure -O ftp://ftp.gmplib.org/pub/gmp-$version/gmp-$version.tar.bz2
|
||||
curl --insecure -O https://gmplib.org/download/gmp/gmp-$version.tar.bz2
|
||||
fi
|
||||
tar xjf gmp-$version.tar.bz2
|
||||
cd gmp-$version
|
||||
|
@ -315,6 +365,7 @@ build_cgal()
|
|||
echo "Building CGAL" $version "..."
|
||||
cd $BASEDIR/src
|
||||
rm -rf CGAL-$version
|
||||
ver4_4="curl --insecure -O https://gforge.inria.fr/frs/download.php/file/33524/CGAL-4.4.tar.bz2"
|
||||
ver4_2="curl --insecure -O https://gforge.inria.fr/frs/download.php/32360/CGAL-4.2.tar.bz2"
|
||||
ver4_1="curl --insecure -O https://gforge.inria.fr/frs/download.php/31640/CGAL-4.1.tar.bz2"
|
||||
ver4_0_2="curl --insecure -O https://gforge.inria.fr/frs/download.php/31174/CGAL-4.0.2.tar.bz2"
|
||||
|
@ -509,6 +560,7 @@ build_eigen()
|
|||
cd $BASEDIR/src
|
||||
rm -rf eigen-$version
|
||||
EIGENDIR="none"
|
||||
if [ $version = "3.2.2" ]; then EIGENDIR=eigen-eigen-1306d75b4a21; fi
|
||||
if [ $version = "3.1.1" ]; then EIGENDIR=eigen-eigen-43d9075b23ef; fi
|
||||
if [ $EIGENDIR = "none" ]; then
|
||||
echo Unknown eigen version. Please edit script.
|
||||
|
@ -697,7 +749,7 @@ if [ $1 ]; then
|
|||
exit $?
|
||||
fi
|
||||
if [ $1 = "cgal" ]; then
|
||||
build_cgal 4.0.2 use-sys-libs
|
||||
build_cgal 4.4 use-sys-libs
|
||||
exit $?
|
||||
fi
|
||||
if [ $1 = "opencsg" ]; then
|
||||
|
@ -709,6 +761,11 @@ if [ $1 ]; then
|
|||
build_qt4 4.8.4
|
||||
exit $?
|
||||
fi
|
||||
if [ $1 = "qt5" ]; then
|
||||
build_qt5 5.3.1
|
||||
build_qt5scintilla2 2.8.3
|
||||
exit $?
|
||||
fi
|
||||
if [ $1 = "glu" ]; then
|
||||
# Mesa and GLU split in late 2012, so it's not on some systems
|
||||
build_glu 9.0.0
|
||||
|
@ -741,21 +798,21 @@ fi
|
|||
#
|
||||
# Some of these are defined in scripts/common-build-dependencies.sh
|
||||
|
||||
build_eigen 3.1.1
|
||||
build_eigen 3.2.2
|
||||
build_gmp 5.0.5
|
||||
build_mpfr 3.1.1
|
||||
build_boost 1.53.0
|
||||
build_boost 1.56.0
|
||||
# NB! For CGAL, also update the actual download URL in the function
|
||||
build_cgal 4.0.2
|
||||
build_cgal 4.4
|
||||
build_glew 1.9.0
|
||||
build_opencsg 1.3.2
|
||||
build_gettext 0.18.3.1
|
||||
build_glib2 2.38.2
|
||||
|
||||
# the following are only needed for text()
|
||||
build_freetype 2.5.0.1
|
||||
build_freetype 2.5.0.1 --without-png
|
||||
build_libxml2 2.9.1
|
||||
build_fontconfig 2.11.0
|
||||
build_fontconfig 2.11.0 --with-add-fonts=/usr/X11R6/lib/X11/fonts,/usr/local/share/fonts
|
||||
build_ragel 6.8
|
||||
build_harfbuzz 0.9.23 --with-glib=yes
|
||||
|
||||
|
|
|
@ -57,14 +57,13 @@ get_mageia_deps()
|
|||
|
||||
get_debian_deps()
|
||||
{
|
||||
for pkg in build-essential libqt4-dev libqt4-opengl-dev \
|
||||
apt-get -y install \
|
||||
build-essential curl libffi-dev qtbase5-dev libqt5scintilla2-dev \
|
||||
libxmu-dev cmake bison flex git-core libboost-all-dev \
|
||||
libXi-dev libmpfr-dev libboost-dev libglew-dev \
|
||||
libeigen3-dev libcgal-dev libopencsg-dev libgmp3-dev libgmp-dev \
|
||||
imagemagick libfontconfig-dev libfreetype6-dev \
|
||||
libharfbuzz-dev gtk-doc-tools libglib2.0-dev gettext; do
|
||||
sudo apt-get -y install $pkg;
|
||||
done
|
||||
libharfbuzz-dev gtk-doc-tools libglib2.0-dev gettext
|
||||
}
|
||||
|
||||
unknown()
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
export OPENSCAD_LIBRARIES=$PWD/../libraries/install
|
||||
export OPENSCAD_LIBRARIES=$PWD/../libraries/install-qt4
|
||||
export DYLD_LIBRARY_PATH=$OPENSCAD_LIBRARIES/lib
|
||||
export DYLD_FRAMEWORK_PATH=$OPENSCAD_LIBRARIES/lib
|
||||
export QMAKESPEC=unsupported/macx-clang
|
||||
|
|
|
@ -113,8 +113,10 @@ Response CSGTermEvaluator::visit(State &state, const AbstractPolyNode &node)
|
|||
shared_ptr<CSGTerm> t1;
|
||||
if (this->geomevaluator) {
|
||||
shared_ptr<const Geometry> geom = this->geomevaluator->evaluateGeometry(node, false);
|
||||
t1 = evaluate_csg_term_from_geometry(state, this->highlights, this->background,
|
||||
geom, node.modinst, node);
|
||||
if (geom) {
|
||||
t1 = evaluate_csg_term_from_geometry(state, this->highlights, this->background,
|
||||
geom, node.modinst, node);
|
||||
}
|
||||
node.progress_report();
|
||||
}
|
||||
this->stored_term[node.index()] = t1;
|
||||
|
@ -178,8 +180,10 @@ Response CSGTermEvaluator::visit(State &state, const RenderNode &node)
|
|||
shared_ptr<const Geometry> geom;
|
||||
if (this->geomevaluator) {
|
||||
geom = this->geomevaluator->evaluateGeometry(node, false);
|
||||
t1 = evaluate_csg_term_from_geometry(state, this->highlights, this->background,
|
||||
geom, node.modinst, node);
|
||||
if (geom) {
|
||||
t1 = evaluate_csg_term_from_geometry(state, this->highlights, this->background,
|
||||
geom, node.modinst, node);
|
||||
}
|
||||
node.progress_report();
|
||||
}
|
||||
this->stored_term[node.index()] = t1;
|
||||
|
@ -196,8 +200,10 @@ Response CSGTermEvaluator::visit(State &state, const CgaladvNode &node)
|
|||
shared_ptr<const Geometry> geom;
|
||||
if (this->geomevaluator) {
|
||||
geom = this->geomevaluator->evaluateGeometry(node, false);
|
||||
t1 = evaluate_csg_term_from_geometry(state, this->highlights, this->background,
|
||||
geom, node.modinst, node);
|
||||
if (geom) {
|
||||
t1 = evaluate_csg_term_from_geometry(state, this->highlights, this->background,
|
||||
geom, node.modinst, node);
|
||||
}
|
||||
node.progress_report();
|
||||
}
|
||||
this->stored_term[node.index()] = t1;
|
||||
|
|
|
@ -43,8 +43,8 @@ public:
|
|||
CSGTermEvaluator evaluator(tree, &geomevaluator);
|
||||
boost::shared_ptr<CSGTerm> root_raw_term = evaluator.evaluateCSGTerm( *root_node, this->highlight_terms, this->background_terms );
|
||||
|
||||
if (!root_raw_term) {
|
||||
PRINT("Error: CSG generation failed! (no top level object found)");
|
||||
if (!root_raw_term && this->background_terms.empty()) {
|
||||
PRINT("Error: CSG generation failed! (no objects found)");
|
||||
call_progress_function();
|
||||
return false;
|
||||
}
|
||||
|
@ -52,16 +52,18 @@ public:
|
|||
PRINT("Compiling design (CSG Products normalization)...");
|
||||
call_progress_function();
|
||||
CSGTermNormalizer normalizer( normalizelimit );
|
||||
this->root_norm_term = normalizer.normalize(root_raw_term);
|
||||
if (this->root_norm_term) {
|
||||
this->root_chain = new CSGChain();
|
||||
this->root_chain->import(this->root_norm_term);
|
||||
PRINTB("Normalized CSG tree has %d elements", int(this->root_chain->objects.size()));
|
||||
}
|
||||
else {
|
||||
this->root_chain = NULL;
|
||||
PRINT("WARNING: CSG normalization resulted in an empty tree");
|
||||
call_progress_function();
|
||||
if (root_raw_term) {
|
||||
this->root_norm_term = normalizer.normalize(root_raw_term);
|
||||
if (this->root_norm_term) {
|
||||
this->root_chain = new CSGChain();
|
||||
this->root_chain->import(this->root_norm_term);
|
||||
PRINTB("Normalized CSG tree has %d elements", int(this->root_chain->objects.size()));
|
||||
}
|
||||
else {
|
||||
this->root_chain = NULL;
|
||||
PRINT("WARNING: CSG normalization resulted in an empty tree");
|
||||
call_progress_function();
|
||||
}
|
||||
}
|
||||
|
||||
if (this->highlight_terms.size() > 0) {
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
#include <iostream>
|
||||
#include <QSettings>
|
||||
|
||||
#include "Dock.h"
|
||||
|
||||
Dock::Dock(QWidget *parent) : QDockWidget(parent), action(NULL)
|
||||
{
|
||||
}
|
||||
|
||||
Dock::~Dock()
|
||||
{
|
||||
}
|
||||
|
||||
void Dock::setVisible(bool visible)
|
||||
{
|
||||
QSettings settings;
|
||||
settings.setValue(configKey, !visible);
|
||||
if (action != NULL) {
|
||||
action->setChecked(!visible);
|
||||
}
|
||||
QDockWidget::setVisible(visible);
|
||||
}
|
||||
|
||||
void Dock::setConfigKey(const QString configKey)
|
||||
{
|
||||
this->configKey = configKey;
|
||||
}
|
||||
|
||||
void Dock::setAction(QAction *action)
|
||||
{
|
||||
this->action = action;
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
#pragma once
|
||||
|
||||
#include <QString>
|
||||
#include <QAction>
|
||||
#include <QDockWidget>
|
||||
|
||||
class Dock : public QDockWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
Dock(QWidget *parent = NULL);
|
||||
virtual ~Dock();
|
||||
void setConfigKey(const QString configKey);
|
||||
void setAction(QAction *action);
|
||||
|
||||
public slots:
|
||||
void setVisible(bool visible);
|
||||
|
||||
private:
|
||||
QString configKey;
|
||||
QAction *action;
|
||||
};
|
|
@ -3,6 +3,7 @@
|
|||
#include <QObject>
|
||||
#include <QFileOpenEvent>
|
||||
#include "MainWindow.h"
|
||||
#include "launchingscreen.h"
|
||||
|
||||
class EventFilter : public QObject
|
||||
{
|
||||
|
@ -15,7 +16,16 @@ protected:
|
|||
// Handle Apple event for opening files
|
||||
if (event->type() == QEvent::FileOpen) {
|
||||
QFileOpenEvent *foe = static_cast<QFileOpenEvent *>(event);
|
||||
MainWindow::requestOpenFile(foe->file());
|
||||
const QString &filename = foe->file();
|
||||
if (LaunchingScreen *ls = LaunchingScreen::getDialog()) {
|
||||
// We need to invoke the method since, apparently, we receive
|
||||
// this event in another thread.
|
||||
QMetaObject::invokeMethod(ls, "openFile", Qt::QueuedConnection,
|
||||
Q_ARG(QString, filename));
|
||||
}
|
||||
else {
|
||||
MainWindow::requestOpenFile(filename);
|
||||
}
|
||||
return true;
|
||||
} else {
|
||||
// standard event processing
|
||||
|
|
|
@ -45,7 +45,7 @@ static bool FontInfoSortPredicate(const FontInfo& fi1, const FontInfo& fi2)
|
|||
return (fi1 < fi2);
|
||||
}
|
||||
|
||||
FontInfo::FontInfo(std::string family, std::string style, std::string file) : family(family), style(style), file(file)
|
||||
FontInfo::FontInfo(const std::string &family, const std::string &style, const std::string &file) : family(family), style(style), file(file)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -64,39 +64,39 @@ bool FontInfo::operator<(const FontInfo &rhs) const
|
|||
return file < rhs.file;
|
||||
}
|
||||
|
||||
std::string FontInfo::get_family() const
|
||||
const std::string &FontInfo::get_family() const
|
||||
{
|
||||
return family;
|
||||
}
|
||||
|
||||
std::string FontInfo::get_style() const
|
||||
const std::string &FontInfo::get_style() const
|
||||
{
|
||||
return style;
|
||||
}
|
||||
|
||||
std::string FontInfo::get_file() const
|
||||
const std::string &FontInfo::get_file() const
|
||||
{
|
||||
return file;
|
||||
}
|
||||
|
||||
FontCache * FontCache::self = NULL;
|
||||
const std::string FontCache::DEFAULT_FONT("Liberation Sans:style=Regular");
|
||||
const std::string FontCache::DEFAULT_FONT("XXX");
|
||||
|
||||
FontCache::FontCache()
|
||||
{
|
||||
init_ok = false;
|
||||
this->init_ok = false;
|
||||
|
||||
// If we've got a bundled fonts.conf, initialize fontconfig with our own config
|
||||
// by overriding the built-in fontconfig path.
|
||||
// For system installs and dev environments, we leave this alone
|
||||
fs::path fontdir(fs::path(PlatformUtils::resourcesPath()) / "fonts");
|
||||
if (fs::is_regular_file(fontdir / "fonts.conf")) {
|
||||
setenv("FONTCONFIG_PATH", boosty::stringy(boosty::absolute(fontdir)).c_str(), 0);
|
||||
PlatformUtils::setenv("FONTCONFIG_PATH", boosty::stringy(boosty::absolute(fontdir)).c_str(), 0);
|
||||
}
|
||||
|
||||
// Just load the configs. We'll build the fonts once all configs are loaded
|
||||
config = FcInitLoadConfig();
|
||||
if (!config) {
|
||||
this->config = FcInitLoadConfig();
|
||||
if (!this->config) {
|
||||
PRINT("Can't initialize fontconfig library, text() objects will not be rendered");
|
||||
return;
|
||||
}
|
||||
|
@ -104,20 +104,12 @@ FontCache::FontCache()
|
|||
// Add the built-in fonts & config
|
||||
fs::path builtinfontpath = fs::path(PlatformUtils::resourcesPath()) / "fonts";
|
||||
if (fs::is_directory(builtinfontpath)) {
|
||||
FcConfigParseAndLoad(this->config, reinterpret_cast<const FcChar8 *>(boosty::stringy(builtinfontpath).c_str()), false);
|
||||
add_font_dir(boosty::stringy(boosty::canonical(builtinfontpath)));
|
||||
FcConfigParseAndLoad(config, reinterpret_cast<const FcChar8 *>(boosty::stringy(builtinfontpath).c_str()), false);
|
||||
}
|
||||
|
||||
const char *home = getenv("HOME");
|
||||
|
||||
#ifdef WIN32
|
||||
// Add Window font folders.
|
||||
const char *windir = getenv("WinDir");
|
||||
if (windir) {
|
||||
add_font_dir(std::string(windir) + "\\Fonts");
|
||||
}
|
||||
#endif
|
||||
|
||||
// Add Linux font folders, the system folders are expected to be
|
||||
// configured by the system configuration for fontconfig.
|
||||
if (home) {
|
||||
|
@ -139,22 +131,22 @@ FontCache::FontCache()
|
|||
}
|
||||
|
||||
// FIXME: Caching happens here. This would be a good place to notify the user
|
||||
FcConfigBuildFonts(config);
|
||||
FcConfigBuildFonts(this->config);
|
||||
|
||||
// For use by LibraryInfo
|
||||
FcStrList *dirs = FcConfigGetFontDirs(config);
|
||||
FcStrList *dirs = FcConfigGetFontDirs(this->config);
|
||||
while (FcChar8 *dir = FcStrListNext(dirs)) {
|
||||
fontpath.push_back(std::string((const char *)dir));
|
||||
}
|
||||
FcStrListDone(dirs);
|
||||
|
||||
const FT_Error error = FT_Init_FreeType(&library);
|
||||
const FT_Error error = FT_Init_FreeType(&this->library);
|
||||
if (error) {
|
||||
PRINT("Can't initialize freetype library, text() objects will not be rendered");
|
||||
return;
|
||||
}
|
||||
|
||||
init_ok = true;
|
||||
this->init_ok = true;
|
||||
}
|
||||
|
||||
FontCache::~FontCache()
|
||||
|
@ -169,29 +161,29 @@ FontCache * FontCache::instance()
|
|||
return self;
|
||||
}
|
||||
|
||||
void FontCache::register_font_file(const std::string path)
|
||||
void FontCache::register_font_file(const std::string &path)
|
||||
{
|
||||
if (!FcConfigAppFontAddFile(config, reinterpret_cast<const FcChar8 *> (path.c_str()))) {
|
||||
if (!FcConfigAppFontAddFile(this->config, reinterpret_cast<const FcChar8 *> (path.c_str()))) {
|
||||
PRINTB("Can't register font '%s'", path);
|
||||
}
|
||||
}
|
||||
|
||||
void FontCache::add_font_dir(const std::string path)
|
||||
void FontCache::add_font_dir(const std::string &path)
|
||||
{
|
||||
if (!fs::is_directory(path)) {
|
||||
return;
|
||||
}
|
||||
if (!FcConfigAppFontAddDir(config, reinterpret_cast<const FcChar8 *> (path.c_str()))) {
|
||||
if (!FcConfigAppFontAddDir(this->config, reinterpret_cast<const FcChar8 *> (path.c_str()))) {
|
||||
PRINTB("Can't register font directory '%s'", path);
|
||||
}
|
||||
}
|
||||
|
||||
FontInfoList * FontCache::list_fonts()
|
||||
FontInfoList *FontCache::list_fonts() const
|
||||
{
|
||||
FcObjectSet *object_set = FcObjectSetBuild(FC_FAMILY, FC_STYLE, FC_FILE, (char *) 0);
|
||||
FcPattern *pattern = FcPatternCreate();
|
||||
init_pattern(pattern);
|
||||
FcFontSet *font_set = FcFontList(config, pattern, object_set);
|
||||
FcFontSet *font_set = FcFontList(this->config, pattern, object_set);
|
||||
FcObjectSetDestroy(object_set);
|
||||
FcPatternDestroy(pattern);
|
||||
|
||||
|
@ -217,20 +209,20 @@ FontInfoList * FontCache::list_fonts()
|
|||
return list;
|
||||
}
|
||||
|
||||
bool FontCache::is_init_ok()
|
||||
bool FontCache::is_init_ok() const
|
||||
{
|
||||
return init_ok;
|
||||
return this->init_ok;
|
||||
}
|
||||
|
||||
void FontCache::clear()
|
||||
{
|
||||
cache.clear();
|
||||
this->cache.clear();
|
||||
}
|
||||
|
||||
void FontCache::dump_cache(const std::string info)
|
||||
void FontCache::dump_cache(const std::string &info)
|
||||
{
|
||||
std::cout << info << ":";
|
||||
for (cache_t::iterator it = cache.begin(); it != cache.end(); it++) {
|
||||
for (cache_t::iterator it = this->cache.begin(); it != this->cache.end(); it++) {
|
||||
std::cout << " " << (*it).first << " (" << (*it).second.second << ")";
|
||||
}
|
||||
std::cout << std::endl;
|
||||
|
@ -238,25 +230,25 @@ void FontCache::dump_cache(const std::string info)
|
|||
|
||||
void FontCache::check_cleanup()
|
||||
{
|
||||
if (cache.size() < MAX_NR_OF_CACHE_ENTRIES) {
|
||||
if (this->cache.size() < MAX_NR_OF_CACHE_ENTRIES) {
|
||||
return;
|
||||
}
|
||||
|
||||
cache_t::iterator pos = cache.begin()++;
|
||||
for (cache_t::iterator it = cache.begin(); it != cache.end(); it++) {
|
||||
cache_t::iterator pos = this->cache.begin()++;
|
||||
for (cache_t::iterator it = this->cache.begin(); it != this->cache.end(); it++) {
|
||||
if ((*pos).second.second > (*it).second.second) {
|
||||
pos = it;
|
||||
}
|
||||
}
|
||||
FT_Done_Face((*pos).second.first);
|
||||
cache.erase(pos);
|
||||
this->cache.erase(pos);
|
||||
}
|
||||
|
||||
FT_Face FontCache::get_font(const std::string font)
|
||||
FT_Face FontCache::get_font(const std::string &font)
|
||||
{
|
||||
FT_Face face;
|
||||
cache_t::iterator it = cache.find(font);
|
||||
if (it == cache.end()) {
|
||||
cache_t::iterator it = this->cache.find(font);
|
||||
if (it == this->cache.end()) {
|
||||
face = find_face(font);
|
||||
if (!face) {
|
||||
return NULL;
|
||||
|
@ -265,11 +257,11 @@ FT_Face FontCache::get_font(const std::string font)
|
|||
} else {
|
||||
face = (*it).second.first;
|
||||
}
|
||||
cache[font] = cache_entry_t(face, time(NULL));
|
||||
this->cache[font] = cache_entry_t(face, time(NULL));
|
||||
return face;
|
||||
}
|
||||
|
||||
FT_Face FontCache::find_face(const std::string font)
|
||||
FT_Face FontCache::find_face(const std::string &font) const
|
||||
{
|
||||
std::string trimmed(font);
|
||||
boost::algorithm::trim(trimmed);
|
||||
|
@ -281,7 +273,7 @@ FT_Face FontCache::find_face(const std::string font)
|
|||
return face;
|
||||
}
|
||||
|
||||
void FontCache::init_pattern(FcPattern *pattern)
|
||||
void FontCache::init_pattern(FcPattern *pattern) const
|
||||
{
|
||||
FcValue true_value;
|
||||
true_value.type = FcTypeBool;
|
||||
|
@ -291,16 +283,17 @@ void FontCache::init_pattern(FcPattern *pattern)
|
|||
FcPatternAdd(pattern, FC_SCALABLE, true_value, true);
|
||||
}
|
||||
|
||||
FT_Face FontCache::find_face_fontconfig(const std::string font)
|
||||
FT_Face FontCache::find_face_fontconfig(const std::string &font) const
|
||||
{
|
||||
FcResult result;
|
||||
|
||||
FcPattern *pattern = FcNameParse((unsigned char *) font.c_str());
|
||||
FcPattern *pattern = FcNameParse((unsigned char *)font.c_str());
|
||||
init_pattern(pattern);
|
||||
|
||||
FcConfigSubstitute(this->config, pattern, FcMatchPattern);
|
||||
FcDefaultSubstitute(pattern);
|
||||
FcConfigSubstitute(config, pattern, FcMatchFont);
|
||||
FcPattern *match = FcFontMatch(config, pattern, &result);
|
||||
|
||||
FcPattern *match = FcFontMatch(this->config, pattern, &result);
|
||||
|
||||
FcValue file_value;
|
||||
if (FcPatternGet(match, FC_FILE, 0, &file_value) != FcResultMatch) {
|
||||
|
@ -313,7 +306,7 @@ FT_Face FontCache::find_face_fontconfig(const std::string font)
|
|||
}
|
||||
|
||||
FT_Face face;
|
||||
FT_Error error = FT_New_Face(library, (const char *) file_value.u.s, font_index.u.i, &face);
|
||||
FT_Error error = FT_New_Face(this->library, (const char *) file_value.u.s, font_index.u.i, &face);
|
||||
|
||||
FcPatternDestroy(pattern);
|
||||
FcPatternDestroy(match);
|
||||
|
@ -348,7 +341,7 @@ FT_Face FontCache::find_face_fontconfig(const std::string font)
|
|||
return error ? NULL : face;
|
||||
}
|
||||
|
||||
bool FontCache::try_charmap(FT_Face face, int platform_id, int encoding_id)
|
||||
bool FontCache::try_charmap(FT_Face face, int platform_id, int encoding_id) const
|
||||
{
|
||||
for (int idx = 0; idx < face->num_charmaps; idx++) {
|
||||
FT_CharMap charmap = face->charmaps[idx];
|
||||
|
@ -365,7 +358,7 @@ bool FontCache::try_charmap(FT_Face face, int platform_id, int encoding_id)
|
|||
return false;
|
||||
}
|
||||
|
||||
bool FontCache::is_windows_symbol_font(FT_Face face)
|
||||
bool FontCache::is_windows_symbol_font(const FT_Face &face) const
|
||||
{
|
||||
if (face->charmap->platform_id != TT_PLATFORM_MICROSOFT) {
|
||||
return false;
|
||||
|
|
|
@ -44,12 +44,12 @@
|
|||
|
||||
class FontInfo {
|
||||
public:
|
||||
FontInfo(std::string family, std::string style, std::string file);
|
||||
FontInfo(const std::string &family, const std::string &style, const std::string &file);
|
||||
virtual ~FontInfo();
|
||||
|
||||
std::string get_family() const;
|
||||
std::string get_style() const;
|
||||
std::string get_file() const;
|
||||
const std::string &get_family() const;
|
||||
const std::string &get_style() const;
|
||||
const std::string &get_file() const;
|
||||
bool operator<(const FontInfo &rhs) const;
|
||||
private:
|
||||
std::string family;
|
||||
|
@ -67,14 +67,14 @@ public:
|
|||
FontCache();
|
||||
virtual ~FontCache();
|
||||
|
||||
bool is_init_ok();
|
||||
FT_Face get_font(std::string font);
|
||||
bool is_windows_symbol_font(FT_Face face);
|
||||
void register_font_file(std::string path);
|
||||
bool is_init_ok() const;
|
||||
FT_Face get_font(const std::string &font);
|
||||
bool is_windows_symbol_font(const FT_Face &face) const;
|
||||
void register_font_file(const std::string &path);
|
||||
void clear();
|
||||
FontInfoList * list_fonts();
|
||||
FontInfoList *list_fonts() const;
|
||||
|
||||
static FontCache * instance();
|
||||
static FontCache *instance();
|
||||
private:
|
||||
typedef std::pair<FT_Face, time_t> cache_entry_t;
|
||||
typedef std::map<std::string, cache_entry_t> cache_t;
|
||||
|
@ -87,13 +87,13 @@ private:
|
|||
FT_Library library;
|
||||
|
||||
void check_cleanup();
|
||||
void dump_cache(const std::string info);
|
||||
void dump_cache(const std::string &info);
|
||||
|
||||
void add_font_dir(const std::string path);
|
||||
void init_pattern(FcPattern *pattern);
|
||||
void add_font_dir(const std::string &path);
|
||||
void init_pattern(FcPattern *pattern) const;
|
||||
|
||||
FT_Face find_face(const std::string font);
|
||||
FT_Face find_face_fontconfig(const std::string font);
|
||||
bool try_charmap(FT_Face face, int platform_id, int encoding_id);
|
||||
FT_Face find_face(const std::string &font) const;
|
||||
FT_Face find_face_fontconfig(const std::string &font) const;
|
||||
bool try_charmap(FT_Face face, int platform_id, int encoding_id) const;
|
||||
};
|
||||
|
||||
|
|
|
@ -80,7 +80,7 @@ GeometryEvaluator::ResultObject GeometryEvaluator::applyToChildren(const Abstrac
|
|||
{
|
||||
unsigned int dim = 0;
|
||||
BOOST_FOREACH(const Geometry::ChildItem &item, this->visitedchildren[node.index()]) {
|
||||
if (item.second) {
|
||||
if (!item.first->modinst->isBackground() && item.second) {
|
||||
if (!dim) dim = item.second->getDimension();
|
||||
else if (dim != item.second->getDimension()) {
|
||||
PRINT("WARNING: Mixing 2D and 3D objects is not supported.");
|
||||
|
@ -633,7 +633,8 @@ static void add_slice(PolySet *ps, const Polygon2d &poly,
|
|||
*/
|
||||
static Geometry *extrudePolygon(const LinearExtrudeNode &node, const Polygon2d &poly)
|
||||
{
|
||||
PolySet *ps = new PolySet(3);
|
||||
bool cvx = poly.is_convex();
|
||||
PolySet *ps = new PolySet(3, !cvx ? boost::tribool(false) : node.twist == 0 ? boost::tribool(true) : unknown);
|
||||
ps->setConvexity(node.convexity);
|
||||
if (node.height <= 0) return ps;
|
||||
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
#include "LibraryInfo.h"
|
||||
#include <glib.h>
|
||||
#include <vector>
|
||||
#ifdef USE_SCINTILLA_EDITOR
|
||||
#include <Qsci/qsciglobal.h>
|
||||
#endif
|
||||
|
||||
#include "version_check.h"
|
||||
#define STRINGIFY(x) #x
|
||||
|
@ -82,6 +85,9 @@ std::string LibraryInfo::info()
|
|||
<< "\nCGAL version, kernels: " << TOSTRING(CGAL_VERSION) << ", " << cgal_3d_kernel << ", " << cgal_2d_kernel << ", " << cgal_2d_kernelEx
|
||||
<< "\nOpenCSG version: " << OPENCSG_VERSION_STRING
|
||||
<< "\nQt version: " << qtVersion
|
||||
#ifdef USE_SCINTILLA_EDITOR
|
||||
<< "\nQScintilla version: " << QSCINTILLA_VERSION_STR
|
||||
#endif
|
||||
<< "\nMingW build: " << mingwstatus
|
||||
<< "\nGLib version: " << GLIB_MAJOR_VERSION << "." << GLIB_MINOR_VERSION << "." << GLIB_MICRO_VERSION
|
||||
<< "\nOPENSCADPATH: " << (env_path == NULL ? "<not set>" : env_path)
|
||||
|
|
|
@ -0,0 +1,59 @@
|
|||
|
||||
#include "LibraryInfoDialog.h"
|
||||
|
||||
#include <QString>
|
||||
#include <QStringRef>
|
||||
#include <QTextEdit>
|
||||
#include "LibraryInfo.h"
|
||||
|
||||
LibraryInfoDialog::LibraryInfoDialog(const QString& rendererInfo)
|
||||
{
|
||||
setupUi(this);
|
||||
connect(this->okButton, SIGNAL(clicked()), this, SLOT(accept()));
|
||||
update_library_info(rendererInfo);
|
||||
}
|
||||
|
||||
LibraryInfoDialog::~LibraryInfoDialog()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void LibraryInfoDialog::update_library_info(const QString& rendererInfo)
|
||||
{
|
||||
//Get library infos
|
||||
QString info(LibraryInfo::info().c_str());
|
||||
info += rendererInfo;
|
||||
|
||||
//Parse infos and make it html
|
||||
info = info.replace("\n", "<br/>");
|
||||
|
||||
bool end = false;
|
||||
int startIndex = 0;
|
||||
while(!end)
|
||||
{
|
||||
int endIndex = info.indexOf(":", startIndex);
|
||||
if(endIndex != -1)
|
||||
{
|
||||
//add bold to property name
|
||||
info = info.insert(startIndex, "<b>");
|
||||
endIndex += 3;
|
||||
info = info.replace(endIndex, 1, ":</b>");
|
||||
startIndex = info.indexOf("<br/>", endIndex);
|
||||
|
||||
//handle property with multiple lines
|
||||
int endInd = info.indexOf(":", startIndex);
|
||||
if(endInd != -1)
|
||||
{
|
||||
QStringRef lines(&info, startIndex, endInd - startIndex);
|
||||
int lastIndex = lines.lastIndexOf("<br/>");
|
||||
startIndex = lastIndex != -1 ? lastIndex+startIndex : startIndex;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
end = true;
|
||||
}
|
||||
}
|
||||
|
||||
this->infoTextBox->setHtml(info);
|
||||
}
|