mirror of
https://git.mirrors.martin98.com/https://github.com/slic3r/Slic3r.git
synced 2025-08-14 08:45:56 +08:00
Merge pull request #4580 from slic3r/osxbuild
Build on OSX with TravisCI
This commit is contained in:
commit
98f9bab8ba
1
.gitignore
vendored
1
.gitignore
vendored
@ -15,6 +15,7 @@ xs/assertlib*
|
|||||||
.init_bundle.ini
|
.init_bundle.ini
|
||||||
local-lib
|
local-lib
|
||||||
package/osx/Slic3r*.app
|
package/osx/Slic3r*.app
|
||||||
|
package/osx/_tmp
|
||||||
*.dmg
|
*.dmg
|
||||||
*.swp
|
*.swp
|
||||||
*.swo
|
*.swo
|
||||||
|
162
.travis.yml
162
.travis.yml
@ -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
|
language: generic
|
||||||
|
dist: trusty
|
||||||
|
|
||||||
before_install:
|
before_install:
|
||||||
- sh package/linux/travis-decrypt-key
|
- sh package/common/travis-decrypt-key
|
||||||
|
- export SLIC3R_GIT_VERSION=$(git rev-parse --short HEAD)
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- bash package/linux/travis-setup.sh
|
- if [[ "${TRAVIS_OS_NAME}" == "linux" && "$TARGET" == "main" ]]; then ./package/linux/travis-build-main.sh; fi
|
||||||
- if [[ "$BUILD_PL" == false ]]; then mkdir build && cd build; fi
|
- if [[ "${TRAVIS_OS_NAME}" == "linux" && "$TARGET" == "cpp" ]]; then ./package/linux/travis-build-cpp.sh; fi
|
||||||
- if [[ "$BUILD_PL" == false ]]; then cmake -DBOOST_ROOT=$BOOST_DIR -DSLIC3R_STATIC=ON -DCMAKE_BUILD_TYPE=Release ../src; fi
|
- if [[ "${TRAVIS_OS_NAME}" == "osx" && "$TARGET" == "main" ]]; then ./package/osx/travis-build-main.sh; fi
|
||||||
- if [[ "$BUILD_PL" == false ]]; then cmake --build .; fi
|
- if [[ "${TRAVIS_OS_NAME}" == "osx" && "$TARGET" == "cpp" ]]; then ./package/osx/travis-build-cpp.sh; 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
|
|
||||||
branches:
|
branches:
|
||||||
only:
|
only:
|
||||||
- master
|
- master
|
||||||
- cppgui
|
- cppgui
|
||||||
|
|
||||||
addons:
|
addons:
|
||||||
apt:
|
apt:
|
||||||
sources:
|
sources:
|
||||||
@ -31,6 +45,74 @@ addons:
|
|||||||
- libwxgtk3.0-dev
|
- libwxgtk3.0-dev
|
||||||
- wx-common
|
- wx-common
|
||||||
ssh_known_hosts: dl.slic3r.org
|
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:
|
notifications:
|
||||||
irc:
|
irc:
|
||||||
channels:
|
channels:
|
||||||
@ -38,65 +120,3 @@ notifications:
|
|||||||
on_success: change
|
on_success: change
|
||||||
on_failure: always
|
on_failure: always
|
||||||
use_notice: true
|
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=
|
|
||||||
|
@ -5,9 +5,12 @@ bytes
|
|||||||
B
|
B
|
||||||
POSIX
|
POSIX
|
||||||
FindBin
|
FindBin
|
||||||
|
Getopt::Long
|
||||||
Unicode::Normalize
|
Unicode::Normalize
|
||||||
Tie::Handle
|
Tie::Handle
|
||||||
|
Time::HiRes
|
||||||
Time::Local
|
Time::Local
|
||||||
|
Thread::Semaphore
|
||||||
Math::Trig
|
Math::Trig
|
||||||
IO::Socket
|
IO::Socket
|
||||||
Errno
|
Errno
|
||||||
|
@ -18,7 +18,7 @@ fi
|
|||||||
|
|
||||||
if [ -s $KEY ]; then
|
if [ -s $KEY ]; then
|
||||||
for i in $FILES; do
|
for i in $FILES; do
|
||||||
filepath=$(readlink -f "$i")
|
filepath=$i # this is expected to be an absolute path
|
||||||
tmpfile=$(mktemp)
|
tmpfile=$(mktemp)
|
||||||
echo put $filepath > $tmpfile
|
echo put $filepath > $tmpfile
|
||||||
sftp -b $tmpfile -i$KEY "${UPLOAD_USER}@dl.slic3r.org:$DIR/"
|
sftp -b $tmpfile -i$KEY "${UPLOAD_USER}@dl.slic3r.org:$DIR/"
|
||||||
|
30
package/linux/travis-build-cpp.sh
Executable file
30
package/linux/travis-build-cpp.sh
Executable 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
|
32
package/linux/travis-build-main.sh
Executable file
32
package/linux/travis-build-main.sh
Executable 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
|
10
package/linux/travis-deploy-cpp.sh
Executable file
10
package/linux/travis-deploy-cpp.sh
Executable 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
|
13
package/linux/travis-deploy-main.sh
Executable file
13
package/linux/travis-deploy-main.sh
Executable 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
|
@ -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
|
|
@ -7,6 +7,14 @@ set -euo pipefail
|
|||||||
# Adapted from script written by bubnikv for Prusa3D.
|
# Adapted from script written by bubnikv for Prusa3D.
|
||||||
# Run from slic3r repo root directory.
|
# 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)
|
WD=$(dirname $0)
|
||||||
appname=Slic3r
|
appname=Slic3r
|
||||||
|
|
||||||
@ -17,18 +25,17 @@ if [ $(git describe --exact-match &>/dev/null) ]; then
|
|||||||
SLIC3R_BUILD_ID=$(git describe)
|
SLIC3R_BUILD_ID=$(git describe)
|
||||||
else
|
else
|
||||||
# Get the current branch
|
# Get the current branch
|
||||||
if [ -z ${GIT_BRANCH+x} ] && [ -z ${APPVEYOR_REPO_BRANCH+x} ]; then
|
if [ ! -z ${GIT_BRANCH+x} ]; then
|
||||||
current_branch=$(git symbolic-ref HEAD | sed 's!refs\/heads\/!!')
|
echo "Setting to GIT_BRANCH"
|
||||||
|
current_branch=$(echo $GIT_BRANCH | cut -d / -f 2)
|
||||||
|
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
|
||||||
else
|
else
|
||||||
current_branch="unknown"
|
current_branch=$(git symbolic-ref HEAD | sed 's!refs\/heads\/!!')
|
||||||
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
|
|
||||||
echo "Setting to APPVEYOR_REPO_BRANCH"
|
|
||||||
current_branch=$APPVEYOR_REPO_BRANCH
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$current_branch" == "master" ]; then
|
if [ "$current_branch" == "master" ]; then
|
||||||
@ -45,8 +52,6 @@ fi
|
|||||||
dmgfile=slic3r-${SLIC3R_BUILD_ID}.dmg
|
dmgfile=slic3r-${SLIC3R_BUILD_ID}.dmg
|
||||||
echo "DMG filename: ${dmgfile}"
|
echo "DMG filename: ${dmgfile}"
|
||||||
|
|
||||||
# If we're on a branch, add the branch name to the app name.
|
|
||||||
|
|
||||||
rm -rf $WD/_tmp
|
rm -rf $WD/_tmp
|
||||||
mkdir -p $WD/_tmp
|
mkdir -p $WD/_tmp
|
||||||
|
|
||||||
@ -59,6 +64,7 @@ PkgInfoContents="APPL????"
|
|||||||
source $WD/plist.sh
|
source $WD/plist.sh
|
||||||
|
|
||||||
# Our slic3r dir and location of perl
|
# Our slic3r dir and location of perl
|
||||||
|
eval $(perl -Mlocal::lib=local-lib)
|
||||||
PERL_BIN=$(which perl)
|
PERL_BIN=$(which perl)
|
||||||
PP_BIN=$(which pp)
|
PP_BIN=$(which pp)
|
||||||
SLIC3R_DIR=$(perl -MCwd=realpath -e "print realpath '${WD}/../../'")
|
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/local-lib $macosfolder/local-lib
|
||||||
cp -fRP $SLIC3R_DIR/lib/* $macosfolder/local-lib/lib/perl5/
|
cp -fRP $SLIC3R_DIR/lib/* $macosfolder/local-lib/lib/perl5/
|
||||||
|
|
||||||
echo "Relocating dylib paths..."
|
echo "Relocating Wx 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
|
mkdir $macosfolder/dylibs
|
||||||
|
function relocate_dylibs {
|
||||||
|
local bundle=$1
|
||||||
chmod +w $bundle
|
chmod +w $bundle
|
||||||
for dylib in $(otool -l $bundle | grep .dylib | grep local-lib | awk '{print $2}'); do
|
local dylib
|
||||||
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
|
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
|
done
|
||||||
|
}
|
||||||
|
for bundle in $(find $macosfolder/local-lib/ \( -name '*.bundle' -or -name '*.dylib' \) -type f); do
|
||||||
|
relocate_dylibs "$bundle"
|
||||||
done
|
done
|
||||||
|
|
||||||
echo "Copying startup script..."
|
echo "Copying startup script..."
|
||||||
@ -102,8 +120,12 @@ cp -f $WD/startup_script.sh $macosfolder/$appname
|
|||||||
chmod +x $macosfolder/$appname
|
chmod +x $macosfolder/$appname
|
||||||
|
|
||||||
echo "Copying perl from $PERL_BIN"
|
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
|
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} \
|
${PP_BIN} \
|
||||||
-M $(grep -v "^#" ${WD}/../common/coreperl | xargs | awk 'BEGIN { OFS=" -M "}; {$1=$1; print $0}') \
|
-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
|
-B -p -e "print 123" -o $WD/_tmp/bundle.par
|
||||||
@ -142,16 +164,33 @@ make_plist
|
|||||||
echo $PkgInfoContents >$appfolder/Contents/PkgInfo
|
echo $PkgInfoContents >$appfolder/Contents/PkgInfo
|
||||||
|
|
||||||
KEYCHAIN_FILE_=${KEYCHAIN_FILE:-}
|
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
|
if [ ! -z $KEYCHAIN_FILE_ ]; then
|
||||||
echo "Signing app..."
|
echo "Signing app..."
|
||||||
chmod -R +w $macosfolder/*
|
chmod -R +w $macosfolder/*
|
||||||
xattr -cr $appfolder
|
xattr -cr $appfolder
|
||||||
security list-keychains -s "${KEYCHAIN_FILE_}"
|
security list-keychains -s "${KEYCHAIN_FILE_}"
|
||||||
security default-keychain -s "${KEYCHAIN_FILE_}"
|
security default-keychain -s "${KEYCHAIN_FILE_}"
|
||||||
security unlock-keychain -p "${KEYCHAIN_PASSWORD}" "${KEYCHAIN_FILE_}"
|
security unlock-keychain -p "${KEYCHAIN_PASSWORD_}" "${KEYCHAIN_FILE_}"
|
||||||
codesign --sign "${KEYCHAIN_IDENTITY}" --deep "$appfolder"
|
codesign --sign "${KEYCHAIN_IDENTITY_}" --deep "$appfolder"
|
||||||
else
|
else
|
||||||
echo "No KEYCHAIN_FILE env variable; skipping codesign"
|
echo "No KEYCHAIN_FILE or KEYCHAIN_BASE64 env variable; skipping codesign"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Creating dmg file...."
|
echo "Creating dmg file...."
|
||||||
@ -165,8 +204,8 @@ if [ ! -z $KEYCHAIN_FILE_ ]; then
|
|||||||
chmod +w $dmgfile
|
chmod +w $dmgfile
|
||||||
security list-keychains -s "${KEYCHAIN_FILE_}"
|
security list-keychains -s "${KEYCHAIN_FILE_}"
|
||||||
security default-keychain -s "${KEYCHAIN_FILE_}"
|
security default-keychain -s "${KEYCHAIN_FILE_}"
|
||||||
security unlock-keychain -p "${KEYCHAIN_PASSWORD}" "${KEYCHAIN_FILE_}"
|
security unlock-keychain -p "${KEYCHAIN_PASSWORD_}" "${KEYCHAIN_FILE_}"
|
||||||
codesign --sign "${KEYCHAIN_IDENTITY}" "$dmgfile"
|
codesign --sign "${KEYCHAIN_IDENTITY_}" "$dmgfile"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm -rf $WD/_tmp
|
rm -rf $WD/_tmp
|
||||||
|
46
package/osx/patch-wxwidgets.diff
Normal file
46
package/osx/patch-wxwidgets.diff
Normal 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
36
package/osx/travis-build-cpp.sh
Executable 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
|
33
package/osx/travis-build-main.sh
Executable file
33
package/osx/travis-build-main.sh
Executable 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
|
5
package/osx/travis-deploy-main.sh
Executable file
5
package/osx/travis-deploy-main.sh
Executable 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
|
Loading…
x
Reference in New Issue
Block a user