Running Slic3r from git on OS X

Joseph Lenox edited this page Aug 13, 2018 · 39 revisions

This page contains instructions on how to run the latest Slic3r from git on Apple OS X. The instructions have been verified to work on OS X Lion (10.7) and OS X Mountain Lion (10.8). Please notice that following these instructions are not needed for running the binary releases of Slic3r for OS X available from slic3r.org or the automated builds available from dl.slic3r.org/dev.

Installing the necessary command line development tools

There are two ways to install the necessary command line tools (git, cc, ...) for installing Slic3r and its dependencies on OS X. Both require creating a free Apple ID. The following instructions might be slightly outdated but you'll find instructions and tutorials on the web.

Installing Xcode + Command Line Tools

One option is to install the full, graphical Xcode IDE (version 4.3 or later), which includes an option to install the necessary command line tools:

  • Download and install Xcode from the Mac App Store
  • Launch Xcode.app
  • Open Preferences and install the Command Line Tools from the Downloads tab

Installing the stand-alone Command Line Tools

Another option is to install the stand-alone Command Line Tools for Xcode:

Installing Perl (via Perlbrew)

We recommend using perlbrew, which install a custom perl instance in your userland space, without touching the system perl which isn't generally a good idea.

  • Install perlbrew: curl -L https://install.perlbrew.pl | bash
    • Copy the source statement given to you by perlbrew's output to your ~/.bash_profile
    • Close and reopen the terminal.
  • Compile perl
    • OSX 10.12 (MacOS Sierra)
      • Use this command line: PERLBREW_CONFIGURE_FLAGS='-de -Dccflags="-mmacosx-version-min=10.12 -fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector" -Dccdlflags="-mmacosx-version-min=10.12" -Dldflags="-mmacosx-version-min=10.12 -fstack-protector" -Dlddlflags="-mmacosx-version-min=10.12 -bundle -undefined dynamic_lookup -fstack-protector"' perlbrew install perl-blead --thread --64all -j 2 --as threaded-perl-blead --force
      • Switch to the built perl: perlbrew switch threaded-perl-blead
    • OSX 10.7-10.11
      • Use this command line: perlbrew install perl-5.24.1 -Dusethreads -Duselargefiles -Dcccdlflags=-fPIC -Doptimize=-O2 --as threaded-perl-5.24.1
      • Switch to the built perl: perlbrew switch threaded-perl-5.24.1
  • Install cpanm: perlbrew install-cpanm

Build Boost

  • Download the latest Boost (1_64?) from http://www.boost.org/users/download/
  • Extract somewhere (e.g. in ~/boost_1_64_0).
    • cd ~/boost_1_64_0
    • ./bootstrap.sh
    • ./b2 link=static runtime-link=static variant=release
  • Wait.

Building Slic3r

  • Run the following instructions:
    git clone git://github.com/alexrj/Slic3r
    cd Slic3r
    BOOST_DIR=~/boost_1_64_0 SLIC3R_STATIC=1 perl Build.PL
  • If you are on MacOS X Sierra, run these commands to install the OpenSSL headers (not shipped with MacOS X anymore) and the patched wxWidgets modules:
curl -O https://www.openssl.org/source/openssl-0.9.8zg.tar.gz
tar -xvf openssl-0.9.8zg.tar.gz
cd openssl-0.9.8zg
make  # this will fail but it's fine, go on
sudo cp -r include/openssl /usr/local/include/
cd ..
rm -rf openssl-0.9.8zg*

cpanm --local-lib local-lib -f LWP::Protocol::https

curl -O https://gist.githubusercontent.com/alexrj/c2de82c05f6006b49c5029fc78bcaa87/raw/778dec2692408334ef2b87818bf977ac6f9fd8ee/patch-wxwidgets-noquicktime.diff

PERL_USE_UNSAFE_INC=1 CXX="clang++ -mmacosx-version-min=10.12" CPPFLAGS="-mmacosx-version-min=10.12" LDFLAGS="-mmacosx-version-min=10.12" cpanm --local-lib local-lib Alien::wxWidgets -v --reinstall --configure-args="--wxWidgets-build=1 --wxWidgets-extraflags=\"--with-macosx-version-min=10.12 --disable-qtkit --disable-mediactrl --disable-webkit --disable-webview\" --wxWidgets-userpatch=$(pwd)/patch-wxwidgets-noquicktime.diff"

PERL_USE_UNSAFE_INC=1 cpanm --local-lib local-lib --reinstall -v https://github.com/alexrj/wxPerl-osx10.12/tarball/master

NOTE from High Sierra user: I had to add -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=1 to CPPFLAGS to get wxWidgets to compile on High Sierra.

  • Install the other dependencies with:
    perl Build.PL --gui
  • Archive a copy of the local-lib directory to avoid having to rebuild Slic3r dependencies if the Slic3r directory gets deleted.

(Old instructions)

OSX 10.9 Maverick

  • Newer versions of OS X (Maverick) have perl 5.16 as default with which Slic3r is not supported. The default can be changed with: defaults write com.apple.versioner.perl Version 5.12
  • Command Line Tools can be installed with: xcode-select --install

OSX 10.11 El Capitan

Your build may fail in the last step (building GUI) on El Capitan with message similar to this:

Building and testing Alien-wxWidgets-0.67 ... FAIL
! Installing Alien::wxWidgets failed. See /Users/yourname/.cpanm/work/1464795363.4904/build.log for details.
Retry with --force to force install it.

That means you should install wxMac first by running:

brew install wxmac

Installing the Boost libraries

If you have homebrew installed, use brew install boost --universal. Otherwise you can use MacPorts or any other method you know.

Installing Slic3r dependencies as root

To instead install the Slic3r dependencies as root, execute the following steps:

git clone git://github.com/alexrj/Slic3r
cd Slic3r
sudo cpan local::lib
perl Build.PL
perl Build.PL --gui

Updating locally installed modules

An easy way to update only your locally installed modules is to parse the output of perldoc perllocal and pass the names of the locally installed modules to cpanm -i:

perldoc -t perllocal | grep Module | sed -e 's/^.* "Module" //' -e 's/-/::/g' | sort | uniq | xargs cpanm -i

Troubleshooting

  • If you have installed perl via MacPorts and the build fails, try using the original OS X version of perl (/usr/bin/perl).
  • If the build still fails, install the dependencies manually. This should fix issues with newer OS X versions.
  • Consider using perlbrew https://perlbrew.pl/

Build Slic3r (C++)

Note: Slic3r's C++ side only supports CLI. While a GUI may be built, it is nonfunctional.

Prerequisites

  • Slic3r's C++ toolpath requires CMake 3.8 or higher.
  • Boost is still required.
  • The GUI code requires a C++14 compliant compiler (gcc-6 or clang 3.4)

Procedure

mkdir build
cd build
cmake ../src 
cmake --build . -- -j4 

There are several command switches that may be passed to cmake.

Use cmake ../src -LH in the build directory to display all of them.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.