diff options
-rw-r--r-- | cgal.pri | 4 | ||||
-rw-r--r-- | openscad.pro | 10 | ||||
-rwxr-xr-x | scripts/linux-build-dependencies.sh | 59 | ||||
-rw-r--r-- | scripts/setenv-linbuild-clang.sh | 12 |
4 files changed, 71 insertions, 14 deletions
@@ -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 + |