summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cgal.pri4
-rw-r--r--openscad.pro10
-rwxr-xr-xscripts/linux-build-dependencies.sh59
-rw-r--r--scripts/setenv-linbuild-clang.sh12
4 files changed, 71 insertions, 14 deletions
diff --git a/cgal.pri b/cgal.pri
index 7cd5389..ae532f0 100644
--- a/cgal.pri
+++ b/cgal.pri
@@ -25,4 +25,8 @@ cgal {
QMAKE_CXXFLAGS += -frounding-math
}
}
+
+ *clang* {
+ QMAKE_CXXFLAGS -= -frounding-math
+ }
}
diff --git a/openscad.pro b/openscad.pro
index 68aa1cc..3dfd1c5 100644
--- a/openscad.pro
+++ b/openscad.pro
@@ -103,6 +103,16 @@ netbsd* {
QMAKE_CXXFLAGS *= -fno-strict-aliasing
}
+*clang* {
+ # disable enormous amount of warnings about CGAL
+ QMAKE_CXXFLAGS_WARN_ON += -Wno-unused-parameter
+ QMAKE_CXXFLAGS_WARN_ON += -Wno-unused-variable
+ QMAKE_CXXFLAGS_WARN_ON += -Wno-unused-function
+ QMAKE_CXXFLAGS_WARN_ON += -Wno-c++11-extensions
+ # might want to actually turn this on once in a while
+ QMAKE_CXXFLAGS_WARN_ON += -Wno-sign-compare
+}
+
CONFIG(skip-version-check) {
# force the use of outdated libraries
DEFINES += OPENSCAD_SKIP_VERSION_CHECK
diff --git a/scripts/linux-build-dependencies.sh b/scripts/linux-build-dependencies.sh
index 7d47c66..be27d2a 100755
--- a/scripts/linux-build-dependencies.sh
+++ b/scripts/linux-build-dependencies.sh
@@ -118,8 +118,15 @@ build_boost()
cd boost_$bversion
# We only need certain portions of boost
./bootstrap.sh --prefix=$DEPLOYDIR --with-libraries=thread,program_options,filesystem,system,regex
- ./bjam -j$NUMCPU
- ./bjam install
+ if [ $CXX ]; then
+ if [ $CXX = "clang" ]; then
+ ./b2 -j$NUMCPU toolset=clang install
+ # ./b2 -j$NUMCPU toolset=clang cxxflags="-stdlib=libc++" linkflags="-stdlib=libc++" install
+ fi
+ else
+ ./b2 -j$NUMCPU
+ ./b2 install
+ fi
}
build_cgal()
@@ -138,7 +145,7 @@ build_cgal()
fi
tar jxf CGAL-$version.tar.bz2
cd CGAL-$version
- if [ $2 = use-sys-libs ]; then
+ if [ $2 = use-sys-libs ]; then
cmake -DCMAKE_INSTALL_PREFIX=$DEPLOYDIR -DWITH_CGAL_Qt3=OFF -DWITH_CGAL_Qt4=OFF -DWITH_CGAL_ImageIO=OFF -DCMAKE_BUILD_TYPE=Debug
else
cmake -DCMAKE_INSTALL_PREFIX=$DEPLOYDIR -DGMP_INCLUDE_DIR=$DEPLOYDIR/include -DGMP_LIBRARIES=$DEPLOYDIR/lib/libgmp.so -DGMPXX_LIBRARIES=$DEPLOYDIR/lib/libgmpxx.so -DGMPXX_INCLUDE_DIR=$DEPLOYDIR/include -DMPFR_INCLUDE_DIR=$DEPLOYDIR/include -DMPFR_LIBRARIES=$DEPLOYDIR/lib/libmpfr.so -DWITH_CGAL_Qt3=OFF -DWITH_CGAL_Qt4=OFF -DWITH_CGAL_ImageIO=OFF -DBOOST_ROOT=$DEPLOYDIR -DCMAKE_BUILD_TYPE=Debug
@@ -161,12 +168,21 @@ build_glew()
mkdir -p $DEPLOYDIR/lib/pkgconfig
# Fedora 64-bit
- if [ "`ls /usr/lib64 | grep Xmu`" ]; then
- echo "modifying glew makefile for 64 bit machine"
- sed -ibak s/"\-lXmu"/"\-L\/usr\/lib64\/libXmu.so.6"/ config/Makefile.linux
- fi
+ if [ -e /usr/lib64 ]; then
+ if [ "`ls /usr/lib64 | grep Xmu`" ]; then
+ echo "modifying glew makefile for 64 bit machine"
+ sed -ibak s/"\-lXmu"/"\-L\/usr\/lib64\/libXmu.so.6"/ config/Makefile.linux
+ fi
+ fi
+
+ if [ $CC ]; then
+ if [ $CC = "clang" ]; then
+ echo "modifying glew makefile for clang"
+ sed -i s/\$\(CC\)/clang/ Makefile
+ fi
+ fi
- GLEW_DEST=$DEPLOYDIR make -j$NUMCPU
+ GLEW_DEST=$DEPLOYDIR make -j$NUMCPU
GLEW_DEST=$DEPLOYDIR make install
}
@@ -184,19 +200,34 @@ build_opencsg()
sed -ibak s/example// opencsg.pro # examples might be broken without GLUT
# Fedora 64-bit
- if [ "`ls /usr/lib64 | grep Xmu`" ]; then
- echo "modifying opencsg makefile for 64 bit machine"
- sed -ibak s/"\-lXmu"/"\-L\/usr\/lib64\/libXmu.so.6"/ src/Makefile
- fi
+ if [ -e /usr/lib64 ]; then
+ if [ "`ls /usr/lib64 | grep Xmu`" ]; then
+ echo "modifying opencsg makefile for 64 bit machine"
+ sed -ibak s/"\-lXmu"/"\-L\/usr\/lib64\/libXmu.so.6"/ src/Makefile
+ fi
+ fi
if [ "`command -v qmake-qt4`" ]; then
- qmake-qt4
+ OPENCSG_QMAKE=qmake-qt4
else
- qmake
+ OPENCSG_QMAKE=qmake
fi
+
+ if [ $CXX ]; then
+ if [ $CXX = "clang++" ]; then
+ cd $BASEDIR/src/OpenCSG-$version/src
+ $OPENCSG_QMAKE
+ cd $BASEDIR/src/OpenCSG-$version
+ $OPENCSG_QMAKE
+ fi
+ else
+ $OPENCSG_QMAKE
+ fi
+
make
cp -av lib/* $DEPLOYDIR/lib
cp -av include/* $DEPLOYDIR/include
+ cd $OPENSCADDIR
}
build_eigen()
diff --git a/scripts/setenv-linbuild-clang.sh b/scripts/setenv-linbuild-clang.sh
new file mode 100644
index 0000000..9551235
--- /dev/null
+++ b/scripts/setenv-linbuild-clang.sh
@@ -0,0 +1,12 @@
+# build dependencies and/or openscad on linux with the clang compiler
+
+export CC=clang
+export CXX=clang++
+export QMAKESPEC=unsupported/linux-clang
+
+echo CC has been modified: $CC
+echo CXX has been modified: $CXX
+echo QMAKESPEC has been modified: $QMAKESPEC
+
+. ./scripts/setenv-linbuild.sh
+
contact: Jan Huwald // Impressum