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 +  | 
