diff options
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/check-dependencies.sh | 27 | ||||
-rwxr-xr-x | scripts/macosx-build-dependencies.sh | 131 | ||||
-rwxr-xr-x | scripts/travis-ci.sh | 18 | ||||
-rwxr-xr-x | scripts/uni-build-dependencies.sh | 44 | ||||
-rwxr-xr-x | scripts/uni-get-dependencies.sh | 15 |
5 files changed, 189 insertions, 46 deletions
diff --git a/scripts/check-dependencies.sh b/scripts/check-dependencies.sh index b63c677..72c4c74 100755 --- a/scripts/check-dependencies.sh +++ b/scripts/check-dependencies.sh @@ -66,6 +66,31 @@ cgal_sysver() cgal_sysver_result=`grep "define *CGAL_VERSION *[0-9.]*" $cgalpath | awk '{print $3}'` } +glib2_sysver() +{ + #Get architecture triplet - e.g. x86_64-linux-gnu + glib2archtriplet=`gcc -dumpmachine 2>/dev/null` + if [ -z "$VAR" ]; then + glib2archtriplet=`dpkg-architecture -qDEB_HOST_MULTIARCH 2>/dev/null` + fi + glib2path=$1/lib/$glib2archtriplet/glib-2.0/include/glibconfig.h + if [ ! -e $glib2path ]; then + #No glib found + #glib can be installed in /usr/lib/i386-linux-gnu/glib-2.0/ on arch i686-linux-gnu (sometimes?) + if [ $glib2archtriplet = "i686-linux-gnu" ]; then + glib2archtriplet=i386-linux-gnu + glib2path=$1/lib/$glib2archtriplet/glib-2.0/include/glibconfig.h + if [ ! -e $glib2path ]; then return; fi + else + return; + fi + fi + glib2major=`grep "define *GLIB_MAJOR_VERSION *[0-9.]*" $glib2path | awk '{print $3}'` + glib2minor=`grep "define *GLIB_MINOR_VERSION *[0-9.]*" $glib2path | awk '{print $3}'` + glib2micro=`grep "define *GLIB_MICRO_VERSION *[0-9.]*" $glib2path | awk '{print $3}'` + glib2_sysver_result="${glib2major}.${glib2minor}.${glib2micro}" +} + boost_sysver() { boostpath=$1/include/boost/version.hpp @@ -530,7 +555,7 @@ checkargs() main() { - deps="qt4 cgal gmp mpfr boost opencsg glew eigen gcc bison flex make" + deps="qt4 cgal gmp mpfr boost opencsg glew eigen glib2 gcc bison flex make" #deps="$deps curl git" # not technically necessary for build #deps="$deps python cmake imagemagick" # only needed for tests #deps="cgal" diff --git a/scripts/macosx-build-dependencies.sh b/scripts/macosx-build-dependencies.sh index 19c9709..45f6818 100755 --- a/scripts/macosx-build-dependencies.sh +++ b/scripts/macosx-build-dependencies.sh @@ -24,7 +24,7 @@ BASEDIR=$PWD/../libraries OPENSCADDIR=$PWD SRCDIR=$BASEDIR/src DEPLOYDIR=$BASEDIR/install -MAC_OSX_VERSION_MIN=10.6 +MAC_OSX_VERSION_MIN=10.7 OPTION_32BIT=false OPTION_LLVM=false OPTION_CLANG=false @@ -54,6 +54,9 @@ build_qt() fi tar xzf qt-everywhere-opensource-src-$version.tar.gz cd qt-everywhere-opensource-src-$version + patch -p0 < $OPENSCADDIR/patches/qt4/patch-src_corelib_global_qglobal.h.diff + patch -p0 < $OPENSCADDIR/patches/qt4/patch-libtiff.diff + patch -p0 < $OPENSCADDIR/patches/qt4/patch-src_plugins_bearer_corewlan_qcorewlanengine.mm.diff if $USING_CLANG; then # FIX for clang sed -i "" -e "s/::TabletProximityRec/TabletProximityRec/g" src/gui/kernel/qt_cocoa_helpers_mac_p.h @@ -80,6 +83,51 @@ build_gmp() fi tar xjf gmp-$version.tar.bz2 cd gmp-$version + patch -p0 gmp-h.in << EOF +--- gmp-5.1.3/gmp-h.in.old 2013-12-02 20:16:26.000000000 -0800 ++++ gmp-5.1.3/gmp-h.in 2013-12-02 20:21:22.000000000 -0800 +@@ -27,13 +27,38 @@ + #endif + + +-/* Instantiated by configure. */ + #if ! defined (__GMP_WITHIN_CONFIGURE) ++/* For benefit of fat builds on MacOSX, generate a .h file that can ++ * be used with a universal fat library ++ */ ++#if defined(__x86_64__) ++#define __GMP_HAVE_HOST_CPU_FAMILY_power 0 ++#define __GMP_HAVE_HOST_CPU_FAMILY_powerpc 0 ++#define GMP_LIMB_BITS 64 ++#define GMP_NAIL_BITS 0 ++#elif defined(__i386__) ++#define __GMP_HAVE_HOST_CPU_FAMILY_power 0 ++#define __GMP_HAVE_HOST_CPU_FAMILY_powerpc 0 ++#define GMP_LIMB_BITS 32 ++#define GMP_NAIL_BITS 0 ++#elif defined(__powerpc64__) ++#define __GMP_HAVE_HOST_CPU_FAMILY_power 0 ++#define __GMP_HAVE_HOST_CPU_FAMILY_powerpc 1 ++#define GMP_LIMB_BITS 64 ++#define GMP_NAIL_BITS 0 ++#elif defined(__ppc__) ++#define __GMP_HAVE_HOST_CPU_FAMILY_power 0 ++#define __GMP_HAVE_HOST_CPU_FAMILY_powerpc 1 ++#define GMP_LIMB_BITS 32 ++#define GMP_NAIL_BITS 0 ++#else ++/* For other architectures, fall back on values computed by configure */ + #define __GMP_HAVE_HOST_CPU_FAMILY_power @HAVE_HOST_CPU_FAMILY_power@ + #define __GMP_HAVE_HOST_CPU_FAMILY_powerpc @HAVE_HOST_CPU_FAMILY_powerpc@ + #define GMP_LIMB_BITS @GMP_LIMB_BITS@ + #define GMP_NAIL_BITS @GMP_NAIL_BITS@ + #endif ++#endif + #define GMP_NUMB_BITS (GMP_LIMB_BITS - GMP_NAIL_BITS) + #define GMP_NUMB_MASK ((~ __GMP_CAST (mp_limb_t, 0)) >> GMP_NAIL_BITS) + #define GMP_NUMB_MAX GMP_NUMB_MASK +EOF + if $OPTION_32BIT; then mkdir build-i386 cd build-i386 @@ -116,42 +164,6 @@ build_gmp() mkdir -p include cp x86_64/include/gmp.h include/ cp x86_64/include/gmpxx.h include/ - - patch -p0 include/gmp.h << EOF ---- gmp.h.orig 2011-11-08 01:03:41.000000000 +0100 -+++ gmp.h 2011-11-08 01:06:21.000000000 +0100 -@@ -26,12 +26,28 @@ - #endif - - --/* Instantiated by configure. */ --#if ! defined (__GMP_WITHIN_CONFIGURE) -+#if defined(__i386__) -+#define __GMP_HAVE_HOST_CPU_FAMILY_power 0 -+#define __GMP_HAVE_HOST_CPU_FAMILY_powerpc 0 -+#define GMP_LIMB_BITS 32 -+#define GMP_NAIL_BITS 0 -+#elif defined(__x86_64__) - #define __GMP_HAVE_HOST_CPU_FAMILY_power 0 - #define __GMP_HAVE_HOST_CPU_FAMILY_powerpc 0 - #define GMP_LIMB_BITS 64 - #define GMP_NAIL_BITS 0 -+#elif defined(__ppc__) -+#define __GMP_HAVE_HOST_CPU_FAMILY_power 0 -+#define __GMP_HAVE_HOST_CPU_FAMILY_powerpc 1 -+#define GMP_LIMB_BITS 32 -+#define GMP_NAIL_BITS 0 -+#elif defined(__powerpc64__) -+#define __GMP_HAVE_HOST_CPU_FAMILY_power 0 -+#define __GMP_HAVE_HOST_CPU_FAMILY_powerpc 1 -+#define GMP_LIMB_BITS 64 -+#define GMP_NAIL_BITS 0 -+#else -+#error Unsupported architecture - #endif - #define GMP_NUMB_BITS (GMP_LIMB_BITS - GMP_NAIL_BITS) - #define GMP_NUMB_MASK ((~ __GMP_CAST (mp_limb_t, 0)) >> GMP_NAIL_BITS) -EOF } # As with gmplib, mpfr is built separately in 32-bit and 64-bit mode and then merged @@ -220,7 +232,7 @@ build_boost() BOOST_TOOLSET="toolset=clang" echo "using clang ;" >> tools/build/v2/user-config.jam fi - ./b2 -d+2 $BOOST_TOOLSET cflags="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch x86_64 $BOOST_EXTRA_FLAGS" linkflags="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch x86_64 $BOOST_EXTRA_FLAGS -headerpad_max_install_names" install + ./b2 -j6 -d+2 $BOOST_TOOLSET cflags="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch x86_64 $BOOST_EXTRA_FLAGS" linkflags="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch x86_64 $BOOST_EXTRA_FLAGS -headerpad_max_install_names" install install_name_tool -id $DEPLOYDIR/lib/libboost_thread.dylib $DEPLOYDIR/lib/libboost_thread.dylib install_name_tool -change libboost_system.dylib $DEPLOYDIR/lib/libboost_system.dylib $DEPLOYDIR/lib/libboost_thread.dylib install_name_tool -change libboost_chrono.dylib $DEPLOYDIR/lib/libboost_chrono.dylib $DEPLOYDIR/lib/libboost_thread.dylib @@ -282,6 +294,43 @@ build_glew() make GLEW_DEST=$DEPLOYDIR CC=$CC CFLAGS.EXTRA="-no-cpp-precomp -dynamic -fno-common -mmacosx-version-min=$MAC_OSX_VERSION_MIN $GLEW_EXTRA_FLAGS -arch x86_64" LDFLAGS.EXTRA="-mmacosx-version-min=$MAC_OSX_VERSION_MIN $GLEW_EXTRA_FLAGS -arch x86_64" STRIP= install } +build_gettext() +{ + version=$1 + echo "Building gettext $version..." + + cd "$BASEDIR"/src + rm -rf "gettext-$version" + if [ ! -f "glib-$version.tar.xz" ]; then + curl --insecure -LO "http://ftpmirror.gnu.org/gettext/gettext-$version.tar.gz" + fi + tar xzf "gettext-$version.tar.gz" + cd "gettext-$version" + + ./configure --prefix="$DEPLOYDIR" + make -j4 + make install +} + +build_glib2() +{ + version=$1 + echo "Building glib2 $version..." + + cd "$BASEDIR"/src + rm -rf "glib-$version" + maj_min_version="${version%.*}" #Drop micro + if [ ! -f "glib-$version.tar.xz" ]; then + curl --insecure -LO "http://ftp.gnome.org/pub/gnome/sources/glib/$maj_min_version/glib-$version.tar.xz" + fi + tar xJf "glib-$version.tar.xz" + cd "glib-$version" + + ./configure --disable-gtk-doc --disable-man --prefix="$DEPLOYDIR" CFLAGS="-I$DEPLOYDIR/include" LDFLAGS="-L$DEPLOYDIR/lib" + make -j4 + make install +} + build_opencsg() { version=$1 @@ -446,6 +495,12 @@ build_boost 1.54.0 # NB! For CGAL, also update the actual download URL in the function build_cgal 4.3 build_glew 1.10.0 +<<<<<<< HEAD +build_gettext 0.18.3.1 +build_glib2 2.38.2 +======= +build_glib2 2.38.1 +>>>>>>> d7d5bea7363703c76b9787598304bfc838e893ee build_opencsg 1.3.2 if $OPTION_DEPLOY; then # build_sparkle andymatuschak 0ed83cf9f2eeb425d4fdd141c01a29d843970c20 diff --git a/scripts/travis-ci.sh b/scripts/travis-ci.sh new file mode 100755 index 0000000..9f44b0c --- /dev/null +++ b/scripts/travis-ci.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +cd tests +cmake . +if [[ $? != 0 ]]; then + echo "Error configuring test suite" + exit 1 +fi +make -j2 +if [[ $? != 0 ]]; then + echo "Error building test suite" + exit 1 +fi +ctest -j8 +if [[ $? != 0 ]]; then + echo "Test failure" + exit 1 +fi diff --git a/scripts/uni-build-dependencies.sh b/scripts/uni-build-dependencies.sh index e652c47..5b9e129 100755 --- a/scripts/uni-build-dependencies.sh +++ b/scripts/uni-build-dependencies.sh @@ -409,6 +409,48 @@ build_glew() GLEW_DEST=$DEPLOYDIR $MAKER install } +build_gettext() +{ + version=$1 + echo "Building gettext $version..." + + cd "$BASEDIR"/src + rm -rf "gettext-$version" + if [ ! -f "glib-$version.tar.xz" ]; then + curl --insecure -LO "http://ftpmirror.gnu.org/gettext/gettext-$version.tar.gz" + fi + tar xzf "gettext-$version.tar.gz" + cd "gettext-$version" + + ./configure --prefix="$DEPLOYDIR" + make -j4 + make install +} + +build_glib2() +{ + version="$1" + maj_min_version="${version%.*}" #Drop micro + + if [ -e $DEPLOYDIR/lib/glib-2.0 ]; then +echo "glib2 already installed. not building" + return +fi + +echo "Building glib2 $version..." + cd "$BASEDIR"/src + rm -rf "glib-$version" + if [ ! -f "glib-$version.tar.xz" ]; then +curl --insecure -LO "http://ftp.gnome.org/pub/gnome/sources/glib/$maj_min_version/glib-$version.tar.xz" + fi +tar xJf "glib-$version.tar.xz" + cd "glib-$version" + + ./configure --disable-gtk-doc --disable-man --prefix="$DEPLOYDIR" CFLAGS="-I$DEPLOYDIR/include" LDFLAGS="-L$DEPLOYDIR/lib" + make -j$NUMCPU + make install +} + build_opencsg() { if [ -e $DEPLOYDIR/lib/libopencsg.so ]; then @@ -603,5 +645,7 @@ build_boost 1.53.0 build_cgal 4.0.2 build_glew 1.9.0 build_opencsg 1.3.2 +build_gettext 0.18.3.1 +build_glib2 2.38.2 echo "OpenSCAD dependencies built and installed to " $BASEDIR diff --git a/scripts/uni-get-dependencies.sh b/scripts/uni-get-dependencies.sh index a0306ef..d2408c0 100755 --- a/scripts/uni-get-dependencies.sh +++ b/scripts/uni-get-dependencies.sh @@ -8,7 +8,7 @@ get_fedora_deps() { sudo yum install qt-devel bison flex eigen3-devel python-paramiko \ boost-devel mpfr-devel gmp-devel glew-devel CGAL-devel gcc gcc-c++ pkgconfig \ - opencsg-devel git libXmu-devel curl imagemagick ImageMagick make \ + opencsg-devel git libXmu-devel curl imagemagick ImageMagick glib2-devel make \ xorg-x11-server-Xvfb } @@ -21,7 +21,7 @@ get_altlinux_deps() { for i in boost-devel boost-filesystem-devel gcc4.5 gcc4.5-c++ boost-program_options-devel \ boost-thread-devel boost-system-devel boost-regex-devel eigen3 libmpfr libgmp libgmp_cxx-devel qt4-devel libcgal-devel git-core \ - libglew-devel flex bison curl imagemagick; do sudo apt-get install $i; done + libglew-devel flex bison curl imagemagick glib2-devel; do sudo apt-get install $i; done } get_freebsd_deps() @@ -29,20 +29,21 @@ get_freebsd_deps() pkg_add -r bison boost-libs cmake git bash eigen3 flex gmake gmp mpfr \ xorg libGLU libXmu libXi xorg-vfbserver glew \ qt4-corelib qt4-gui qt4-moc qt4-opengl qt4-qmake qt4-rcc qt4-uic \ - opencsg cgal curl imagemagick + opencsg cgal curl imagemagick glib2-devel } get_netbsd_deps() { sudo pkgin install bison boost cmake git bash eigen flex gmake gmp mpfr \ qt4 glew cgal opencsg modular-xorg python27 py27-paramiko curl \ - imagemagick ImageMagick + imagemagick ImageMagick glib2-devel } get_opensuse_deps() { sudo zypper install libeigen3-devel mpfr-devel gmp-devel boost-devel \ - libqt4-devel glew-devel cmake git bison flex cgal-devel opencsg-devel curl + libqt4-devel glew-devel cmake git bison flex cgal-devel opencsg-devel curl \ + glib2-devel } get_mageia_deps() @@ -50,7 +51,7 @@ get_mageia_deps() sudo urpmi ctags sudo urpmi task-c-devel task-c++-devel libqt4-devel libgmp-devel \ libmpfr-devel libboost-devel eigen3-devel libglew-devel bison flex \ - cmake imagemagick python curl git x11-server-xvfb + cmake imagemagick glib2-devel python curl git x11-server-xvfb } get_debian_deps() @@ -59,7 +60,7 @@ get_debian_deps() 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 \ - python-paramiko curl imagemagick; do + python-paramiko curl imagemagick libglib2.0-dev; do sudo apt-get -y install $pkg; done } |