From 667af0be2a8927b654dbbe02d790f688f74efbcd Mon Sep 17 00:00:00 2001 From: Joseph Lenox Date: Wed, 11 Jul 2018 17:42:37 -0500 Subject: [PATCH] Put build system back the way it was so we don't break things when merging in cppgui stuff --- .travis.yml | 73 ++++++++++++--------------------- package/linux/appimage.sh | 4 +- package/linux/libpaths.txt | 5 +++ package/linux/make_archive.sh | 42 +++++++++++++++++-- package/linux/startup_script.sh | 2 +- package/linux/travis-setup.sh | 59 +++++++++++--------------- 6 files changed, 98 insertions(+), 87 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9b636d61e..f76e6822f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,34 +1,41 @@ -language: generic +language: perl before_install: - - sh package/linux/travis-decrypt-key - - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then ( sudo Xvfb :99 -ac -screen 0 1024x768x8; echo ok )& fi - - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update -v ; fi - - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install ccache; fi +- sh package/linux/travis-decrypt-key +install: +- export BOOST_DIR=$HOME/boost_1_63_0 +- export SLIC3R_STATIC=1 +- export CXX=g++-4.9 +- export CC=g++-4.9 +- source $HOME/perl5/perlbrew/etc/bashrc script: - - travis_wait 30 bash package/linux/travis-setup.sh - - mkdir build && cd build - - cmake -DBOOST_ROOT=$BOOST_DIR -DSLIC3R_STATIC=ON ../src - - cmake --build . - - ctest . -R TestSlic3r -# - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then ctest . -R TestGUI; fi +- bash package/linux/travis-setup.sh +- perlbrew switch slic3r-perl +- perl ./Build.PL +after_success: +- eval $(perl -Mlocal::lib=$TRAVIS_BUILD_DIR/local-lib) +- LD_LIBRARY_PATH=$WXDIR/lib package/linux/make_archive.sh linux-x64 +- package/linux/appimage.sh x86_64 +- package/deploy/sftp.sh linux ~/slic3r-upload.rsa *.bz2 Slic3r*.AppImage +- package/deploy/sftp-symlink.sh linux ~/slic3r-upload.rsa AppImage Slic3r*.AppImage +- package/deploy/sftp-symlink.sh linux ~/slic3r-upload.rsa tar.bz2 *.bz2 branches: only: - master - - cppgui + - xsgui +cache: + apt: true + directories: + - "$HOME/cache" addons: apt: sources: - ubuntu-toolchain-r-test packages: - - g++-7 - - gcc-7 + - g++-4.9 + - gcc-4.9 - libgtk2.0-0 - libgtk2.0-dev - freeglut3 - - cmake - - wx3.0-headers - - libwxgtk3.0-dev - - wx-common ssh_known_hosts: dl.slic3r.org notifications: irc: @@ -38,36 +45,8 @@ notifications: on_failure: always use_notice: true dist: trusty -matrix: - include: - - os: linux - env: - - WXVERSION=pkg - - CC=gcc-7 - - CXX=g++-7 - - BOOST_DIR=$HOME/boost_1_63_0 - - DISPLAY=:99.0 - cache: - apt: true - directories: - - "$HOME/cache" - after_success: - - cp slic3r ../ - - LD_LIBRARY_PATH=$WXDIR/lib package/linux/make_archive.sh linux-x64 - - package/linux/appimage.sh x86_64 - - package/deploy/sftp.sh linux ~/slic3r-upload.rsa *.bz2 Slic3r*.AppImage - - package/deploy/sftp-symlink.sh linux ~/slic3r-upload.rsa AppImage Slic3r*.AppImage - - package/deploy/sftp-symlink.sh linux ~/slic3r-upload.rsa tar.bz2 *.bz2 - - os: osx - env: - - WXVERSION=pkg - - BOOST_DIR=$HOME/boost_1_63_0 - - DISPLAY=:99.0 - cache: - ccache: true - directories: - - $HOME/Library/Caches/Homebrew env: + matrix: global: - secure: eEVRZNMv7FM6jrOU9iAFkDhWxFQ1WtHBEaObImcvtFUxy6vWSt3ehFFeTRouj3uHQAnbvUzziDyvPPm8/95alv5g/du8ML6YzzqKBKfazM0xQ7SF6R2DQL8lfFIp+RSV7T02byEP1f1g7Zva7xH9szIlDcSfU0pXW4KWbkBFMd8= - secure: gj338h+qHGccTD/VQFmEJkqdg2McIe2pO0iZ4Ae9BvY5vxkIML4BpoYZQXQTqiAOETnUjlcknY9lx0hI/PfkDD9MSJc5BC/3fMYRCu3SgAclEwklWf9vvtodUeT69mtnZuw1zze1nTbExuOw2mepbqFjxKKMl+9l5oCz4O54fXU= diff --git a/package/linux/appimage.sh b/package/linux/appimage.sh index 05e61f909..3a68b5e17 100755 --- a/package/linux/appimage.sh +++ b/package/linux/appimage.sh @@ -32,7 +32,7 @@ cd $WD/${APP}.AppDir mkdir -p $WD/${APP}.AppDir/usr/bin # Copy primary Slic3r script here and perl-local, as well as var -for i in {var,Slic3r}; do +for i in {var,slic3r.pl,perl-local}; do cp -R $srcfolder/$i $WD/${APP}.AppDir/usr/bin/ done @@ -48,6 +48,8 @@ for i in $(cat $WD/libpaths.appimage.txt | grep -v "^#" | awk -F# '{print $1}'); done +cp -R $srcfolder/local-lib ${WD}/${APP}.AppDir/usr/lib/local-lib + cat > $WD/${APP}.AppDir/AppRun << 'EOF' #!/usr/bin/env bash # some magic to find out the real location of this script dealing with symlinks diff --git a/package/linux/libpaths.txt b/package/linux/libpaths.txt index 3c64c9758..ef876a13a 100644 --- a/package/linux/libpaths.txt +++ b/package/linux/libpaths.txt @@ -1,3 +1,8 @@ +/home/travis/builds/alexrj/Slic3r/local-lib/lib/perl5/x86_64-linux-thread-multi/Alien/wxWidgets/gtk_3_0_2_uni/lib/libwx_baseu-3.0.so.0 +/home/travis/builds/alexrj/Slic3r/local-lib/lib/perl5/x86_64-linux-thread-multi/Alien/wxWidgets/gtk_3_0_2_uni/lib/libwx_gtk2u_adv-3.0.so.0 +/home/travis/builds/alexrj/Slic3r/local-lib/lib/perl5/x86_64-linux-thread-multi/Alien/wxWidgets/gtk_3_0_2_uni/lib/libwx_gtk2u_core-3.0.so.0 +/home/travis/builds/alexrj/Slic3r/local-lib/lib/perl5/x86_64-linux-thread-multi/Alien/wxWidgets/gtk_3_0_2_uni/lib/libwx_gtk2u_gl-3.0.so.0 +/home/travis/builds/alexrj/Slic3r/local-lib/lib/perl5/x86_64-linux-thread-multi/Alien/wxWidgets/gtk_3_0_2_uni/lib/libwx_gtk2u_html-3.0.so.0 /lib/x86_64-linux-gnu/liblzma.so.5 /lib/x86_64-linux-gnu/libpng12.so.0 /usr/lib/x86_64-linux-gnu/libjpeg.so.8 diff --git a/package/linux/make_archive.sh b/package/linux/make_archive.sh index 3eaf8b601..ad87b2a06 100755 --- a/package/linux/make_archive.sh +++ b/package/linux/make_archive.sh @@ -10,6 +10,7 @@ if [ "$#" -ne 1 ]; then echo "Usage: $(basename $0) arch_name" exit 1; fi +libdirs=$(find ./local-lib -iname *.so -exec dirname {} \; | sort -u | paste -sd ";" -) WD=./$(dirname $0) source $(dirname $0)/../common/util.sh # Determine if this is a tagged (release) commit. @@ -21,6 +22,7 @@ set_build_id set_branch set_app_name set_pr_id +install_par # If we're on a branch, add the branch name to the app name. if [ "$current_branch" == "master" ]; then @@ -33,7 +35,8 @@ else dmgfile=slic3r-${SLIC3R_BUILD_ID}-${1}-${current_branch}.tar.bz2 fi -mkdir -p $WD +rm -rf $WD/_tmp +mkdir -p $WD/_tmp # Set the application folder infomation. appfolder="$WD/${appname}" @@ -43,6 +46,8 @@ resourcefolder=$appfolder echo "Appfolder: $appfolder, archivefolder: $archivefolder" # Our slic3r dir and location of perl +PERL_BIN=$(which perl) +PP_BIN=$(which pp) SLIC3R_DIR="./" if [[ -d "${appfolder}" ]]; then @@ -62,12 +67,14 @@ echo "Copying resources..." cp -rf $SLIC3R_DIR/var $resourcefolder/ echo "Copying Slic3r..." -cp $SLIC3R_DIR/slic3r $archivefolder/Slic3r +cp $SLIC3R_DIR/slic3r.pl $archivefolder/slic3r.pl +cp -fRP $SLIC3R_DIR/local-lib $archivefolder/local-lib +cp -fRP $SLIC3R_DIR/lib/* $archivefolder/local-lib/lib/perl5/ mkdir $archivefolder/bin echo "Installing libraries to $archivefolder/bin ..." if [ -z ${WXDIR+x} ]; then - for bundle in $archivefolder/Slic3r; do + for bundle in $(find $archivefolder/local-lib/lib/perl5 -name '*.so' | grep "Wx") $(find $archivefolder/local-lib/lib/perl5 -name '*.so' -type f | grep "wxWidgets"); do echo "$(LD_LIBRARY_PATH=$libdirs ldd $bundle | grep .so | grep local-lib | awk '{print $3}')" for dylib in $(LD_LIBRARY_PATH=$libdirs ldd $bundle | grep .so | grep local-lib | awk '{print $3}'); do install -v $dylib $archivefolder/bin @@ -84,8 +91,37 @@ echo "Copying startup script..." cp -f $WD/startup_script.sh $archivefolder/$appname chmod +x $archivefolder/$appname +echo "Copying perl from $PERL_BIN" +# Edit package/common/coreperl to add/remove core Perl modules added to this package, one per line. +cp -f $PERL_BIN $archivefolder/perl-local +${PP_BIN} wxextension .0 \ + -M $(grep -v "^#" ${WD}/../common/coreperl | xargs | awk 'BEGIN { OFS=" -M "}; {$1=$1; print $0}') \ + -B -p -e "print 123" -o $WD/_tmp/test.par +unzip -qq -o $WD/_tmp/test.par -d $WD/_tmp/ +cp -rf $WD/_tmp/lib/* $archivefolder/local-lib/lib/perl5/ +cp -rf $WD/_tmp/shlib $archivefolder/ +rm -rf $WD/_tmp for i in $(cat $WD/libpaths.txt | grep -v "^#" | awk -F# '{print $1}'); do install -v $i $archivefolder/bin done +echo "Cleaning local-lib" +rm -rf $archivefolder/local-lib/bin +rm -rf $archivefolder/local-lib/man +rm -f $archivefolder/local-lib/lib/perl5/Algorithm/*.pl +rm -rf $archivefolder/local-lib/lib/perl5/unicore +rm -rf $archivefolder/local-lib/lib/perl5/App +rm -rf $archivefolder/local-lib/lib/perl5/Devel/CheckLib.pm +rm -rf $archivefolder/local-lib/lib/perl5/ExtUtils +rm -rf $archivefolder/local-lib/lib/perl5/Module/Build* +rm -rf $(pwd)$archivefolder/local-lib/lib/perl5/TAP +rm -rf $(pwd)/$archivefolder/local-lib/lib/perl5/Test* +find $(pwd)/$archivefolder/local-lib -type d -path '*/Wx/*' \( -name WebView \ + -or -name DocView -or -name STC -or -name IPC \ + -or -name Calendar -or -name DataView \ + -or -name DateTime -or -name Media -or -name PerlTest \ + -or -name Ribbon \) -exec rm -rf "{}" \; +rm -rf $archivefolder/local-lib/lib/perl5/*/Alien/wxWidgets/*/include +find $archivefolder/local-lib -depth -type d -empty -exec rmdir "{}" \; + tar -C$(pwd)/$(dirname $appfolder) -cjf $(pwd)/$dmgfile "$appname" diff --git a/package/linux/startup_script.sh b/package/linux/startup_script.sh index dbe4d7981..30f0e2c69 100755 --- a/package/linux/startup_script.sh +++ b/package/linux/startup_script.sh @@ -3,4 +3,4 @@ BIN=$(readlink "$0") DIR=$(dirname "$BIN") export LD_LIBRARY_PATH="$DIR/bin" -exec "$DIR/Slic3r" +exec "$DIR/perl-local" -I"$DIR/local-lib/lib/perl5" "$DIR/slic3r.pl" $@ diff --git a/package/linux/travis-setup.sh b/package/linux/travis-setup.sh index b8f4b28a9..3c9f55ecf 100755 --- a/package/linux/travis-setup.sh +++ b/package/linux/travis-setup.sh @@ -1,41 +1,30 @@ #!/bin/bash # Script to configure travis environment prior to build +WXVERSION=302 CACHE=$HOME/cache mkdir -p $CACHE -if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then - if [[ "$WXVERSION" != "pkg" ]]; then - export WXDIR=$HOME/wx${WXVERSION} - if [ ! -e $CACHE/wx${WXVERSION}.tar.bz2 ]; then - echo "Downloading http://www.siusgs.com/slic3r/buildserver/wx${WXVERSION}-libs.tar.bz2 => $CACHE/wx${WXVERSION}.tar.bz2" - curl -L "http://www.siusgs.com/slic3r/buildserver/wx${WXVERSION}-libs.tar.bz2" -o $CACHE/wx${WXVERSION}.tar.bz2 - fi - tar -C$HOME -xjf $CACHE/wx${WXVERSION}.tar.bz2 - fi - if [ ! -e $CACHE/boost-compiled.tar.bz2 ]; then - echo "Downloading http://www.siusgs.com/slic3r/buildserver/boost_1_63_0.built.gcc-4.9.4-buildserver.tar.bz2 => $CACHE/boost-compiled.tar.bz2" - curl -L "http://www.siusgs.com/slic3r/buildserver/boost_1_63_0.built.gcc-4.9.4-buildserver.tar.bz2" -o $CACHE/boost-compiled.tar.bz2 - fi - - tar -C$HOME -xjf $CACHE/boost-compiled.tar.bz2 - -elif [[ "$TRAVIS_OS_NAME" == "osx" ]]; then - if [[ "$WXVERSION" != "pkg" ]]; then - WXVER_EXPANDED=${WXVERSION:0:1}.${WXVERSION:1:1}.${WXVERSION:2:1} - export WXDIR=$HOME/wx${WXVERSION} - if [ ! -e $CACHE/wx${WXVERSION}-${TRAVIS_OS_NAME}.tar.bz2 ]; then - curl -L "https://github.com/wxWidgets/wxWidgets/releases/download/v${WXVER_EXPANDED}/wxWidgets-${WXVER_EXPANDED}.tar.bz2" -o $HOME/wx${WXVERSION}-src.tar.bz2 - tar -C$HOME -xjf $HOME/wx${WXVERSION}-src.tar.bz2 - mkdir $WXDIR - cd $HOME/$WXDIR && cmake $HOME/wxWidgets-${WXVER_EXPANDED} -DwxBUILD_SHARED=OFF - cmake --build . --target -- -j4 - tar -C$HOME -cjf $CACHE/wx${WXVERSION}-${TRAVIS_OS_NAME}.tar.bz2 $(basename ${WXDIR}) - else - tar -C$HOME -xjf $CACHE/wx${WXVERSION}-${TRAVIS_OS_NAME}.tar.bz2 - fi - export PATH=${PATH}:${WXDIR} - cd $TRAVIS_BUILD_DIR # go back to the build dir - else - brew install wxmac # install via homebrew - fi +if [ ! -e $CACHE/slic3r-perlbrew-5.24.tar.bz2 ]; then + echo "Downloading http://www.siusgs.com/slic3r/buildserver/slic3r-perl.524.travis.tar.bz2 => $CACHE/slic3r-perlbrew-5.24.tar.bz2" + curl -L "http://www.siusgs.com/slic3r/buildserver/slic3r-perl.524.travis.tar.bz2" -o $CACHE/slic3r-perlbrew-5.24.tar.bz2; fi + +if [ ! -e $CACHE/boost-compiled.tar.bz2 ]; then + echo "Downloading http://www.siusgs.com/slic3r/buildserver/boost_1_63_0.built.gcc-4.9.4-buildserver.tar.bz2 => $CACHE/boost-compiled.tar.bz2" + curl -L "http://www.siusgs.com/slic3r/buildserver/boost_1_63_0.built.gcc-4.9.4-buildserver.tar.bz2" -o $CACHE/boost-compiled.tar.bz2 +fi + +if [ ! -e $CACHE/local-lib-wx${WXVERSION}.tar.bz2 ]; then + echo "Downloading http://www.siusgs.com/slic3r/buildserver/slic3r-dependencies.travis-wx${WXVERSION}.tar.bz2 => $CACHE/local-lib-wx${WXVERSION}.tar.bz2" + curl -L "http://www.siusgs.com/slic3r/buildserver/slic3r-dependencies.travis-wx${WXVERSION}.tar.bz2" -o $CACHE/local-lib-wx${WXVERSION}.tar.bz2 +fi + +if [ ! -e $CACHE/wx${WXVERSION}.tar.bz2 ]; then + echo "Downloading http://www.siusgs.com/slic3r/buildserver/wx${WXVERSION}-libs.tar.bz2 => $CACHE/wx${WXVERSION}.tar.bz2" + curl -L "http://www.siusgs.com/slic3r/buildserver/wx${WXVERSION}-libs.tar.bz2" -o $CACHE/wx${WXVERSION}.tar.bz2 +fi + +tar -C$TRAVIS_BUILD_DIR -xjf $CACHE/local-lib-wx${WXVERSION}.tar.bz2 +tar -C$HOME/perl5/perlbrew/perls -xjf $CACHE/slic3r-perlbrew-5.24.tar.bz2 +tar -C$HOME -xjf $CACHE/boost-compiled.tar.bz2 +tar -C$HOME -xjf $CACHE/wx${WXVERSION}.tar.bz2