Merge pull request #4580 from slic3r/osxbuild

Build on OSX with TravisCI
This commit is contained in:
Joseph Lenox 2018-11-10 14:49:57 -06:00 committed by GitHub
commit 98f9bab8ba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 363 additions and 165 deletions

1
.gitignore vendored
View File

@ -15,6 +15,7 @@ xs/assertlib*
.init_bundle.ini
local-lib
package/osx/Slic3r*.app
package/osx/_tmp
*.dmg
*.swp
*.swo

View File

@ -1,19 +1,33 @@
# TravisCI configuration for Slic3r - https://slic3r.org
#
# We build Linux and macOS versions on TravisCI, both the main program
# (perl/C++) and the pure C++ one.
#
# Each job performs the following steps:
# - install dependencies (cached across builds)
# - build
# - test
# - package
# - deploy to dl.slic3r.org (except for the cppgui branch)
language: generic
dist: trusty
before_install:
- sh package/linux/travis-decrypt-key
- sh package/common/travis-decrypt-key
- export SLIC3R_GIT_VERSION=$(git rev-parse --short HEAD)
script:
- bash package/linux/travis-setup.sh
- if [[ "$BUILD_PL" == false ]]; then mkdir build && cd build; fi
- if [[ "$BUILD_PL" == false ]]; then cmake -DBOOST_ROOT=$BOOST_DIR -DSLIC3R_STATIC=ON -DCMAKE_BUILD_TYPE=Release ../src; fi
- if [[ "$BUILD_PL" == false ]]; then cmake --build .; fi
- if [[ "$BUILD_PL" == false ]]; then ./slic3r_test -s; fi
- if [[ "$BUILD_PL" == true ]]; then perlbrew switch slic3r-perl; fi
- if [[ "$BUILD_PL" == true ]]; then perl ./Build.PL; fi
# - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then ./gui_test -s; fi
- if [[ "${TRAVIS_OS_NAME}" == "linux" && "$TARGET" == "main" ]]; then ./package/linux/travis-build-main.sh; fi
- if [[ "${TRAVIS_OS_NAME}" == "linux" && "$TARGET" == "cpp" ]]; then ./package/linux/travis-build-cpp.sh; fi
- if [[ "${TRAVIS_OS_NAME}" == "osx" && "$TARGET" == "main" ]]; then ./package/osx/travis-build-main.sh; fi
- if [[ "${TRAVIS_OS_NAME}" == "osx" && "$TARGET" == "cpp" ]]; then ./package/osx/travis-build-cpp.sh; fi
branches:
only:
- master
- cppgui
addons:
apt:
sources:
@ -31,6 +45,74 @@ addons:
- libwxgtk3.0-dev
- wx-common
ssh_known_hosts: dl.slic3r.org
matrix:
include:
- os: linux
env:
- TARGET=main
cache:
directories:
- $HOME/boost_1_63_0
- $HOME/perl5
- $HOME/wx302
- local-lib
after_success:
- if [[ "${TRAVIS_BRANCH}" != "cppgui" ]]; then ./package/linux/travis-deploy-main.sh; fi
- os: linux
env:
- TARGET=cpp
- CACHE=$HOME/cache
cache:
apt: true
directories:
- $HOME/cache
after_success:
- package/linux/travis-deploy-cpp.sh
# While this works, it does not appear to be needed as the 10.13 builds
# work on 10.12 as well.
# - os: osx
# # osx_image: xcode8 # OS X 10.11
# osx_image: xcode9.2 # OS X 10.12
# env:
# - TARGET=main
# cache:
# directories:
# - /usr/local/Homebrew
# - $HOME/Library/Caches/Homebrew
# - local-lib
- os: osx
osx_image: xcode9.4 # OS X 10.13
env:
- TARGET=main
cache:
directories:
- /usr/local/Homebrew
- $HOME/Library/Caches/Homebrew
- local-lib
after_success:
- if [[ "${TRAVIS_BRANCH}" != "cppgui" ]]; then ./package/osx/travis-deploy-main.sh; fi
- os: osx
osx_image: xcode9.4
env:
- TARGET=cpp
- CACHE=$HOME/cache
cache:
ccache: true
directories:
- /usr/local/Homebrew
- $HOME/cache
- $HOME/Library/Caches/Homebrew
env:
global:
- secure: eEVRZNMv7FM6jrOU9iAFkDhWxFQ1WtHBEaObImcvtFUxy6vWSt3ehFFeTRouj3uHQAnbvUzziDyvPPm8/95alv5g/du8ML6YzzqKBKfazM0xQ7SF6R2DQL8lfFIp+RSV7T02byEP1f1g7Zva7xH9szIlDcSfU0pXW4KWbkBFMd8=
- secure: gj338h+qHGccTD/VQFmEJkqdg2McIe2pO0iZ4Ae9BvY5vxkIML4BpoYZQXQTqiAOETnUjlcknY9lx0hI/PfkDD9MSJc5BC/3fMYRCu3SgAclEwklWf9vvtodUeT69mtnZuw1zze1nTbExuOw2mepbqFjxKKMl+9l5oCz4O54fXU=
notifications:
irc:
channels:
@ -38,65 +120,3 @@ notifications:
on_success: change
on_failure: always
use_notice: true
dist: trusty
matrix:
include:
- os: linux
env:
- BUILD_PL=true
- SLIC3R_STATIC=1
- CC=gcc-7
- CXX=g++-7
install:
- export BOOST_DIR=$HOME/boost_1_63_0
- export SLIC3R_STATIC=1
- export CXX=g++-4.9
- export CC=g++-4.9
- export SLIC3R_GIT_VERSION=$(git rev-parse HEAD)
- source $HOME/perl5/perlbrew/etc/bashrc
after_success:
- eval $(perl -Mlocal::lib=$TRAVIS_BUILD_DIR/local-lib)
- cd package/linux && make -f build_shell.mk && mv Slic3r* $TRAVIS_BUILD_DIR && cd $TRAVIS_BUILD_DIR
- 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: linux
env:
- BUILD_PL=false
- 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
osx_image: xcode9.4
before_install:
- 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
env:
- BUILD_PL=false
- WXVERSION=pkg
- BOOST_DIR=$HOME/boost_1_63_0
- DISPLAY=:99.0
cache:
ccache: true
directories:
- $HOME/Library/Caches/Homebrew
env:
global:
- secure: eEVRZNMv7FM6jrOU9iAFkDhWxFQ1WtHBEaObImcvtFUxy6vWSt3ehFFeTRouj3uHQAnbvUzziDyvPPm8/95alv5g/du8ML6YzzqKBKfazM0xQ7SF6R2DQL8lfFIp+RSV7T02byEP1f1g7Zva7xH9szIlDcSfU0pXW4KWbkBFMd8=
- secure: gj338h+qHGccTD/VQFmEJkqdg2McIe2pO0iZ4Ae9BvY5vxkIML4BpoYZQXQTqiAOETnUjlcknY9lx0hI/PfkDD9MSJc5BC/3fMYRCu3SgAclEwklWf9vvtodUeT69mtnZuw1zze1nTbExuOw2mepbqFjxKKMl+9l5oCz4O54fXU=

View File

@ -5,9 +5,12 @@ bytes
B
POSIX
FindBin
Getopt::Long
Unicode::Normalize
Tie::Handle
Time::HiRes
Time::Local
Thread::Semaphore
Math::Trig
IO::Socket
Errno

View File

@ -18,7 +18,7 @@ fi
if [ -s $KEY ]; then
for i in $FILES; do
filepath=$(readlink -f "$i")
filepath=$i # this is expected to be an absolute path
tmpfile=$(mktemp)
echo put $filepath > $tmpfile
sftp -b $tmpfile -i$KEY "${UPLOAD_USER}@dl.slic3r.org:$DIR/"

View File

@ -0,0 +1,30 @@
#!/bin/bash
set -euo pipefail
export WXVERSION=pkg
export CC=gcc-7
export CXX=g++-7
export DISPLAY=:99.0
mkdir -p $CACHE
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
mkdir build && cd build
cmake -DBOOST_ROOT=$HOME/boost_1_63_0 -DSLIC3R_STATIC=ON -DCMAKE_BUILD_TYPE=Release ../src
cmake --build .
./slic3r_test -s

View File

@ -0,0 +1,32 @@
#!/bin/bash
# This is too strict for source $HOME/perl5/perlbrew/etc/bashrc:
### set -euo pipefail
if [ ! -d $HOME/perl5/perlbrew/perls/slic3r-perl ]; then
echo "Downloading slic3r-perlbrew-5.24.tar.bz2"
curl -L "http://www.siusgs.com/slic3r/buildserver/slic3r-perl.524.gcc49.travis.tar.bz2" -o /tmp/slic3r-perlbrew-5.24.tar.bz2;
tar -C$HOME/perl5/perlbrew/perls -xjf /tmp/slic3r-perlbrew-5.24.tar.bz2
fi
source $HOME/perl5/perlbrew/etc/bashrc
perlbrew switch slic3r-perl
if [ ! -e $HOME/boost_1_63_0/boost/version.hpp ]; then
echo "Downloading boost_1_63_0.built.gcc-4.9.4-buildserver.tar.bz2"
curl -L "http://www.siusgs.com/slic3r/buildserver/boost_1_63_0.built.gcc-4.9.4-buildserver.tar.bz2" -o /tmp/boost-compiled.tar.bz2
tar -C$HOME -xjf /tmp/boost-compiled.tar.bz2
fi
if [ ! -e ./local-lib/lib/perl5/x86_64-linux-thread-multi/Wx.pm ]; then
echo "Downloading slic3r-dependencies.gcc49.travis-wx302.tar.bz2"
curl -L "http://www.siusgs.com/slic3r/buildserver/slic3r-dependencies.travis-wx302.tar.bz2" -o /tmp/local-lib-wx302.tar.bz2
tar -C$TRAVIS_BUILD_DIR -xjf /tmp/local-lib-wx302.tar.bz2
echo "Downloading buildserver/wx302-libs.tar.bz2"
curl -L "http://www.siusgs.com/slic3r/buildserver/wx302-libs.tar.bz2" -o /tmp/wx302.tar.bz2
tar -C$HOME -xjf /tmp/wx302.tar.bz2
fi
SLIC3R_STATIC=1 CC=g++-4.9 CXX=g++-4.9 BOOST_DIR=$HOME/boost_1_63_0 perl ./Build.PL
perl ./Build.PL --gui

View File

@ -0,0 +1,10 @@
#!/bin/bash
set -euo pipefail
# Not sure this is the correct deployment:
# 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

View File

@ -0,0 +1,13 @@
#!/bin/bash
set -euo pipefail
eval $(perl -Mlocal::lib=$TRAVIS_BUILD_DIR/local-lib)
cd package/linux && make -f build_shell.mk && mv Slic3r* $TRAVIS_BUILD_DIR && cd $TRAVIS_BUILD_DIR
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 `pwd`/*.bz2 `pwd`/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

View File

@ -1,70 +0,0 @@
#!/bin/bash
# Script to configure travis environment prior to build
CACHE=$HOME/cache
mkdir -p $CACHE
if [[ "$BUILD_PL" == true ]]; then
WXVERSION=302
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.gcc49.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.gcc49.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
else
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
fi
fi

View File

@ -7,6 +7,14 @@ set -euo pipefail
# Adapted from script written by bubnikv for Prusa3D.
# Run from slic3r repo root directory.
# While we might have a pp executable in our path, it might not be
# using the perl binary we have in path, so make sure they belong
# to the same Perl instance:
if !(perl -Mlocal::lib=local-lib -MPAR::Packer -e1 2> /dev/null); then
echo "The PAR::Packer module was not found; installing..."
cpanm --local-lib local-lib PAR::Packer
fi
WD=$(dirname $0)
appname=Slic3r
@ -17,18 +25,17 @@ if [ $(git describe --exact-match &>/dev/null) ]; then
SLIC3R_BUILD_ID=$(git describe)
else
# Get the current branch
if [ -z ${GIT_BRANCH+x} ] && [ -z ${APPVEYOR_REPO_BRANCH+x} ]; then
current_branch=$(git symbolic-ref HEAD | sed 's!refs\/heads\/!!')
else
current_branch="unknown"
if [ ! -z ${GIT_BRANCH+x} ]; then
echo "Setting to GIT_BRANCH"
current_branch=$(echo $GIT_BRANCH | cut -d / -f 2)
fi
if [ ! -z ${APPVEYOR_REPO_BRANCH+x} ]; then
elif [ ! -z ${TRAVIS_BRANCH+x} ]; then
echo "Setting to TRAVIS_BRANCH"
current_branch=$TRAVIS_BRANCH
elif [ ! -z ${APPVEYOR_REPO_BRANCH+x} ]; then
echo "Setting to APPVEYOR_REPO_BRANCH"
current_branch=$APPVEYOR_REPO_BRANCH
fi
else
current_branch=$(git symbolic-ref HEAD | sed 's!refs\/heads\/!!')
fi
if [ "$current_branch" == "master" ]; then
@ -45,8 +52,6 @@ fi
dmgfile=slic3r-${SLIC3R_BUILD_ID}.dmg
echo "DMG filename: ${dmgfile}"
# If we're on a branch, add the branch name to the app name.
rm -rf $WD/_tmp
mkdir -p $WD/_tmp
@ -59,6 +64,7 @@ PkgInfoContents="APPL????"
source $WD/plist.sh
# Our slic3r dir and location of perl
eval $(perl -Mlocal::lib=local-lib)
PERL_BIN=$(which perl)
PP_BIN=$(which pp)
SLIC3R_DIR=$(perl -MCwd=realpath -e "print realpath '${WD}/../../'")
@ -89,12 +95,24 @@ cp $SLIC3R_DIR/slic3r.pl $macosfolder/slic3r.pl
cp -fRP $SLIC3R_DIR/local-lib $macosfolder/local-lib
cp -fRP $SLIC3R_DIR/lib/* $macosfolder/local-lib/lib/perl5/
echo "Relocating dylib paths..."
for bundle in $(find $macosfolder/local-lib/lib/perl5/darwin-thread-multi-2level/auto/Wx -name '*.bundle') $(find $macosfolder/local-lib/lib/perl5/darwin-thread-multi-2level/Alien/wxWidgets -name '*.dylib' -type f); do
echo "Relocating Wx dylib paths..."
mkdir $macosfolder/dylibs
function relocate_dylibs {
local bundle=$1
chmod +w $bundle
for dylib in $(otool -l $bundle | grep .dylib | grep local-lib | awk '{print $2}'); do
install_name_tool -change "$dylib" "@executable_path/local-lib/lib/perl5/darwin-thread-multi-2level/Alien/wxWidgets/osx_cocoa_3_0_2_uni/lib/$(basename $dylib)" $bundle
local dylib
for dylib in $(otool -l $bundle | grep .dylib | grep -v /usr/lib | awk '{print $2}' | grep -v '^@'); do
local dylib_dest="$macosfolder/dylibs/$(basename $dylib)"
if [ ! -e $dylib_dest ]; then
echo " relocating $dylib"
cp $dylib $macosfolder/dylibs/
relocate_dylibs $dylib_dest
fi
install_name_tool -change "$dylib" "@executable_path/dylibs/$(basename $dylib)" $bundle
done
}
for bundle in $(find $macosfolder/local-lib/ \( -name '*.bundle' -or -name '*.dylib' \) -type f); do
relocate_dylibs "$bundle"
done
echo "Copying startup script..."
@ -102,8 +120,12 @@ cp -f $WD/startup_script.sh $macosfolder/$appname
chmod +x $macosfolder/$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 $macosfolder/perl-local
chmod +w $macosfolder/perl-local
relocate_dylibs $macosfolder/perl-local
echo "Copying core modules"
# Edit package/common/coreperl to add/remove core Perl modules added to this package, one per line.
${PP_BIN} \
-M $(grep -v "^#" ${WD}/../common/coreperl | xargs | awk 'BEGIN { OFS=" -M "}; {$1=$1; print $0}') \
-B -p -e "print 123" -o $WD/_tmp/bundle.par
@ -142,16 +164,33 @@ make_plist
echo $PkgInfoContents >$appfolder/Contents/PkgInfo
KEYCHAIN_FILE_=${KEYCHAIN_FILE:-}
KEYCHAIN_BASE64_=${KEYCHAIN_BASE64:-}
KEYCHAIN_PASSWORD_=${KEYCHAIN_PASSWORD:-travis}
KEYCHAIN_IDENTITY_=${KEYCHAIN_IDENTITY:-Developer ID Application: Alessandro Ranellucci (975MZ9YJL7)}
# In case we were supplied a base64-encoded .p12 file instead of the path
# to an existing keychain, create a temporary one
if [[ -z "$KEYCHAIN_FILE_" && ! -z "$KEYCHAIN_BASE64_" ]]; then
KEYCHAIN_FILE_=$WD/_tmp/build.keychain
echo "Creating temporary keychain at ${KEYCHAIN_FILE_}"
echo "$KEYCHAIN_BASE64_" | base64 --decode > "${KEYCHAIN_FILE_}.p12"
security delete-keychain "$KEYCHAIN_FILE_" || true
security create-keychain -p "${KEYCHAIN_PASSWORD_}" "$KEYCHAIN_FILE_"
security set-keychain-settings -t 3600 -u "$KEYCHAIN_FILE_"
security import "${KEYCHAIN_FILE_}.p12" -k "$KEYCHAIN_FILE_" -P "${KEYCHAIN_PASSWORD_}" -T /usr/bin/codesign
security set-key-partition-list -S apple-tool:,apple: -s -k "${KEYCHAIN_PASSWORD_}" "$KEYCHAIN_FILE_"
fi
if [ ! -z $KEYCHAIN_FILE_ ]; then
echo "Signing app..."
chmod -R +w $macosfolder/*
xattr -cr $appfolder
security list-keychains -s "${KEYCHAIN_FILE_}"
security default-keychain -s "${KEYCHAIN_FILE_}"
security unlock-keychain -p "${KEYCHAIN_PASSWORD}" "${KEYCHAIN_FILE_}"
codesign --sign "${KEYCHAIN_IDENTITY}" --deep "$appfolder"
security unlock-keychain -p "${KEYCHAIN_PASSWORD_}" "${KEYCHAIN_FILE_}"
codesign --sign "${KEYCHAIN_IDENTITY_}" --deep "$appfolder"
else
echo "No KEYCHAIN_FILE env variable; skipping codesign"
echo "No KEYCHAIN_FILE or KEYCHAIN_BASE64 env variable; skipping codesign"
fi
echo "Creating dmg file...."
@ -165,8 +204,8 @@ if [ ! -z $KEYCHAIN_FILE_ ]; then
chmod +w $dmgfile
security list-keychains -s "${KEYCHAIN_FILE_}"
security default-keychain -s "${KEYCHAIN_FILE_}"
security unlock-keychain -p "${KEYCHAIN_PASSWORD}" "${KEYCHAIN_FILE_}"
codesign --sign "${KEYCHAIN_IDENTITY}" "$dmgfile"
security unlock-keychain -p "${KEYCHAIN_PASSWORD_}" "${KEYCHAIN_FILE_}"
codesign --sign "${KEYCHAIN_IDENTITY_}" "$dmgfile"
fi
rm -rf $WD/_tmp

View File

@ -0,0 +1,46 @@
diff --git src/osx/carbon/dataobj.cpp src/osx/carbon/dataobj.cpp
index 758e3a7928..5445aa6b14 100644
--- src/osx/carbon/dataobj.cpp
+++ src/osx/carbon/dataobj.cpp
@@ -29,10 +29,6 @@
#include "wx/osx/private.h"
-#if wxOSX_USE_COCOA_OR_CARBON
- #include <QuickTime/QuickTime.h>
-#endif
-
// ----------------------------------------------------------------------------
// wxDataFormat
// ----------------------------------------------------------------------------
diff --git src/osx/core/bitmap.cpp src/osx/core/bitmap.cpp
index 3c61c173e7..3322b605fc 100644
--- src/osx/core/bitmap.cpp
+++ src/osx/core/bitmap.cpp
@@ -35,10 +35,6 @@
#include "wx/osx/private.h"
#endif
-#ifndef __WXOSX_IPHONE__
-#include <QuickTime/QuickTime.h>
-#endif
-
CGColorSpaceRef wxMacGetGenericRGBColorSpace();
CGDataProviderRef wxMacCGDataProviderCreateWithMemoryBuffer( const wxMemoryBuffer& buf );
diff --git src/stc/scintilla/src/Editor.cxx src/stc/scintilla/src/Editor.cxx
index cd72953ae7..a3ee41c49b 100644
--- src/stc/scintilla/src/Editor.cxx
+++ src/stc/scintilla/src/Editor.cxx
@@ -5841,9 +5841,9 @@
}
static bool Close(Point pt1, Point pt2) {
- if (abs(pt1.x - pt2.x) > 3)
+ if (labs(pt1.x - pt2.x) > 3)
return false;
- if (abs(pt1.y - pt2.y) > 3)
+ if (labs(pt1.y - pt2.y) > 3)
return false;
return true;
}

36
package/osx/travis-build-cpp.sh Executable file
View File

@ -0,0 +1,36 @@
#!/bin/bash
set -euo pipefail
export WXVERSION=pkg
export DISPLAY=:99.0
mkdir -p $CACHE
( sudo Xvfb :99 -ac -screen 0 1024x768x8; echo ok )&
brew update -v
brew install ccache || brew upgrade ccache
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 || brew upgrade wxmac # install via homebrew
fi
mkdir build && cd build
cmake -DBOOST_ROOT=$HOME/boost_1_63_0 -DSLIC3R_STATIC=ON -DCMAKE_BUILD_TYPE=Release ../src
cmake --build .
./slic3r_test -s
#./gui_test -s

View File

@ -0,0 +1,33 @@
#!/bin/bash
set -euo pipefail
# These two commands are only needed on 10.12:
rm -rf /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask
brew uninstall --force postgis cgal sfcgal
brew update -v
brew install boost || brew upgrade boost
brew install perl || brew upgrade perl
brew install cpanminus || brew upgrade cpanminus
brew install wxwidgets || brew upgrade wxwidgets
brew link --overwrite perl cpanminus
export SLIC3R_STATIC=1
export BOOST_DIR=/usr/local
perl ./Build.PL
# remove X11 because otherwise OpenGL.pm will link libglut.3.dylib instead of GLUT.framework
sudo rm -rf /opt/X11*
export LIBRARY_PATH=/usr/local/lib
# One Wx test fails on 10.12; seems harmless
if [ $TRAVIS_OSX_IMAGE == 'xcode9.2']; then
cpanm --local-lib local-lib -f Wx
fi
perl ./Build.PL --gui
# Install PAR::Packer now so that it gets cached by Travis
cpanm --local-lib local-lib PAR::Packer

View File

@ -0,0 +1,5 @@
#!/bin/bash
set -euo pipefail
package/osx/make_dmg.sh
package/deploy/sftp.sh mac ~/slic3r-upload.rsa `pwd`/slic3r*.dmg