summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/check-dependencies.sh27
-rwxr-xr-xscripts/macosx-build-dependencies.sh131
-rwxr-xr-xscripts/travis-ci.sh18
-rwxr-xr-xscripts/uni-build-dependencies.sh44
-rwxr-xr-xscripts/uni-get-dependencies.sh15
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
}
contact: Jan Huwald // Impressum