/cura-build

Build scripts for Cura

Primary LanguageCMakeGNU Affero General Public License v3.0AGPL-3.0

cura-build

This repository contains build scripts used to build Cura and all dependencies from scratch.

The build has a number of dependencies. Ideally, these dependencies should be installed by the cura-build-environment repository. Even with cura-build-environment though, some things may still be missing from your system that we haven't thought of.

Build with Docker (Linux and Windows)

To build Cura releases for Linux and Windows, you can use the cura-build-environment docker images. Check the repository for more details on how to build the docker images on Linux and Windows.

Build Cura Linux AppImage with Docker

Assume that you have a working cura-build-environment docker image. To build a Cura AppImage, you can use the commands below:

./scripts/python3.5/linux/build.sh

This script by default uses a docker image tagged as cura-build-env:centos-latest to build Cura AppImage, so make sure that your image is tagged accordingly. If the build is successful, the resulting AppImage and its checksum will be placed in the output/appimages directory. Check the script scripts/python3.5/linux/build.sh for more details if you want to customize it.

To configure your AppImage build, you can use the following environment variables:

  • CURA_VERSION_MAJOR: Major version number of Cura (default 0)
  • CURA_VERSION_MINOR: Minor version number of Cura (default 0)
  • CURA_VERSION_PATCH: Patch version number of Cura (default 0)
  • CURA_VERSION_EXTRA: Extra version string of Cura, which will be appended after x.y.z in the format of x.y.z-<extra> (default an empty string "")
  • CURA_CLOUD_API_ROOT: Root URL of Cura Cloud API (default https://api.ultimaker.com)
  • CURA_CLOUD_API_VERSION: Cura Cloud API version to use (default 1)
  • CURA_CLOUD_ACCOUNT_API_ROOT: Root URL of Cura Cloud Account API (default https://account.ultimaker.com)

Build Cura Windows Installer with Docker

Similar to the Linux build instructions, you first need a workding cura-build-environment docker image for Windows. To build the Cura installer, you can use the commands below:

# Do this in PowerShell
.\scripts\python3.5\windows\build.ps1

The script by default uses a docker image tagged as cura-build-environment:win1809-latest, so make sure that your image is tagged accordingly. If the build is successful, the resulting installer will be placed in the windows-installers/ directory. Check the script scripts\python3.5\windows\build.ps1 for more details if you want to customize it.

You will be asked for some mandatory variables for building Cura, including:

  • CuraVersionMajor: Major version number of Cura (default 0)
  • CuraVersionMinor: Minor version number of Cura (default 0)
  • CuraVersionPatch: Patch version number of Cura (default 0)
  • CuraVersionExtra: Extra version string of Cura, which will be appended after x.y.z in the format of x.y.z-<extra> (default an empty string "")
  • CuraCloudApiRoot: Root URL of Cura Cloud API (default https://api.ultimaker.com)
  • CuraCloudApiVersion: Cura Cloud API version to use (default 1)
  • CuraCloudAccountApiRoot: Root URL of Cura Cloud Account API (default https://account.ultimaker.com)

Build on Native Machine

OS X

  1. Install CMake (available via homebrew or cmake.org)
  2. Install latest version of Xcode.
  3. On Mac OS X > 10.10, execute command: brew link openssl --force
  4. Because Fortran is necessary: brew install gcc gfortran
  5. Run these commands:
git clone git@github.com:Ultimaker/cura-build.git
cd cura-build
mkdir build
cd build
cmake ..
make

Windows

On Windows, the following dependencies are needed for building:

Make sure these dependencies are available from your path.

REM 64-bit
git clone git@github.com:Ultimaker/cura-build.git
cd cura-build
mkdir build
cd build
..\env_win64.bat
cmake -G "MinGW Makefiles" ..
mingw32-make
mingw32-make package

Before make package - copy arduino to cura-build/

Ubuntu/Linux

cura-build can build AppImage packages of Cura. The following dependencies are required:

To build, make sure these dependencies are installed, then clone this repository and run the following commands from your clone:

# Clone the repo
git clone http://github.com/Ultimaker/cura-build.git
cd cura-build

# Create a build directory
mkdir build
cd build

# Build and package
cmake ..
make
make package

CentOS/Linux

cura-build can build CentOS/RHEL packages of Cura.

Dependencies:

  • gcc-gfortran
  • python34.x86_64
  • python34-devel.x86_64
  • python34-numpy.x86_64
  • pyserial.noarch
  • PyOpenGL.noarch
  • python34-setuptools.noarch
  • wxPython.x86_64
  • libstdc++-static.x86_64
  • libstdc++-devel.x86_64
  • openssl.x86_64
  • openblas-devel.x86_64
  • python34-numpy-f2py.x86_64

To build, make sure these dependencies are installed, then clone this repository and run the following commands from your clone:

sudo yum install gcc-gfortran python34.x86_64 python34-devel.x86_64 python34-numpy.x86_64 pyserial.noarch PyOpenGL.noarch python34-setuptools.noarch wxPython.x86_64 libstdc++-static.x86_64 libstdc++-devel.x86_64 openssl.x86_64 openblas-devel.x86_64 python34-numpy-f2py.x86_64
  1. download and install scipy from https://github.com/scipy/scipy/releases be sure to use python 3.5, eg. using sudo python3 setup.py 2. install (version in repository is for python 2.7)
  2. download and install CMake from https://cmake.org/download/ and configure CMake to use ssl
  3. download and install Qt5 from https://www.qt.io/download/
  4. download and install PyQt5 from https://www.riverbankcomputing.com/software/pyqt/download5
  5. download and install sip from https://www.riverbankcomputing.com/software/sip/download make sure the verion is 4.18 or newer

Alternative method for installing python at: https://edwards.sdsu.edu/research/installing-python3-4-and-the-scipy-stack-on-centos/ . Make sure, that the PYTHONPATH can find dist-packages.

# Clone the repo
git clone http://github.com/Ultimaker/cura-build.git
cd cura-build

# Create a build directory
mkdir build
cd build

# Build and package
cmake ..
make
make package