1. Building From Source#
Note
The build instructions here are for general users who just want to build OSC.
Because everyone’s C++ build environment is slightly different, there are
no catch-all build instructions that will work for everyone. Instead, we
recommend reading + running the automated build scripts (located at scripts/
in the source tree), or reading Setup Development Environment, which
concretely covers tips-and-tricks for Visual Studio or QtCreator.
1.1. Building on Windows (10 or newer)#
1.1.1. Windows Environment Setup#
The OpenSim Creator build requires that the development environment has git
(for submodule downloads), a C++-20 compiler, cmake, NSIS
(if packaging an
installer), and python
(to run build_windows.py
and building this
documentation). Here is a step-by-step guide for setting up a typical development
environment:
- Get
git
: Download and install
git
from https://git-scm.com/downloadsMake sure to add it to the
PATH
. Usually, the installer asks if you want this. If it doesn’t ask, then you may need to add it manually (google: “Modify windows PATH”, add yourgit
install, which defaults toC:\Program Files\Git\bin
).Verify it’s installed by opening a terminal (
Shift+Right-Click
->Open Powershell window here
) and rungit
- Get
- Get a C++20-compatible compiler (
Visual Studio 17 2022
): Download and install it from https://visualstudio.microsoft.com/downloads/
Make sure to select C/C++ development in the installer wizard when it asks you which parts you would like to install
- Get a C++20-compatible compiler (
- Get
cmake
: Download and install it from https://cmake.org/download/
Make sure to add it to the
PATH
. Usually, the installer asks if you want this. If it doesn’t ask, then you may need to add it manually (google: “Modify windows PATH”, add yourcmake
install:C:\Program Files\CMake\bin
).Verify it’s installed by opening a terminal (
Shift+Right-Click
->Open Powershell window here
) and runcmake
.
- Get
- Get
NSIS
(if packaging an installer): Download and install it from https://nsis.sourceforge.io/Download
- Get
- Get
python
andpip
: Download from https://www.python.org/downloads/
Make sure
python
andpip
are added to thePATH
(the installer usually prompts this)Verify they are installed by opening a terminal (
Shift+Right-Click
->Open Powershell window here
) and runpython --help
andpip --help
- Get
- Clone the
opensim-creator
source code (+ submodules) repository: Open a terminal,
cd
to your workspace directory (e.g.Desktop
), and rungit clone --recursive https://github.com/ComputationalBiomechanicsLab/opensim-creator
The resulting
opensim-creator
directory should contain all necessary source code to build the project (incl. dependencies, submodules, etc.)
- Clone the
- Install
pip
package dependencies (if building these documentation pages): Using either a virtual environment (google it), or your base
python
installation,cd
into theopensim-creator
directory in a terminal and install the documentation package dependencies with:
- Install
pip install -r docs/requirements.txt
pip install -r docs/requirements-dev.txt
1.1.2. Windows Build#
Assuming your environment has been set up correctly (explained above), the
easiest way to build OpenSim Creator is with the python script located at
scripts/build_windows.py
in the source code repository. The steps are:
Open a PowerShell terminal (
Shift+Right-Click
->Open Powershell window here
)Either
cd
into theopensim-creator
directory (if cloned when you setup the environment, above), or clone it withgit clone --recursive https://github.com/ComputationalBiomechanicsLab/opensim-creator
.Run the build script:
python scripts/build_windows.py
. Note: this can take a long time, grab a coffee ☕The
osc-build
directory should contain the built installer
1.2. Building on MacOS (Ventura or newer)#
- Get
brew
: Go to https://brew.sh/ and follow installation instructions
- Get
- Get
git
: Can be installed via
brew
:brew install git
- Get
- Get C++20-compatible compiler (e.g.
clang
via brew, or newer XCodes): OpenSim Creator is a C++20 project, so you’ll have to use a more recent XCode (>14), or install a newer
clang
from brew (e.g.brew install clang
)
- Get C++20-compatible compiler (e.g.
- Get
cmake
: Can be installed via
brew
:brew install cmake
- Get
- Get
python
andpip
(optional: you only need this if you want to build documentation): Can be installed via
brew
:brew install python
- Get
- Build OpenSim Creator in a terminal:
Clone
opensim-creator
:git clone --recursive https://github.com/ComputationalBiomechanicsLab/opensim-creator
cd
into the source dir:cd opensim-creator
If you have multiple C++ compilers, make sure that the
CC
andCXX
environment variables point to compilers that are compatible with C++20. E.g.export CXX=$(brew --prefix llvm@15)/bin/clang++
Run the build script:
scripts/build_mac.sh
(warning: can take a long time)
- Done:
The
osc-build
directory should contain the built installer
1.3. Building on Ubuntu (20 or newer)#
- Get
git
: Install
git
via your package manager (e.g.apt-get install git
)
- Get
- Get a C++20-compatible compiler:
Install
g++
/clang++`
via your package manager (e.g.apt-get install g++
)They must be new enough to compile C++20 (e.g. clang >= clang-11)
If they aren’t new enough, most OSes provide a way to install a newer compiler toolchain (e.g.
apt-get install clang-11
). You can configure which compiler is used to build OpenSim Creator by setting theCC
andCXX
environment variables. E.g.CC=clang-11 CXX=clang++-11 ./scripts/build_debian-buster.sh
- Get C++20-compatible standard library headers (usually required on Ubuntu 20):
sudo apt-get install libstdc++-10-dev
- Get
cmake
: Install
cmake
via your package manager (e.g.apt-get install cmake
)If your cmake is too old, build one from source, see: https://askubuntu.com/a/865294
- Get
- Get
python
andpip
(optional: you only need this if you want to build documentation): Install
python3
andpip3
via your package manager (e.g.apt-get install python3 pip3
)
- Get
- Build OpenSim Creator in a terminal:
Clone
opensim-creator
:git clone https://github.com/ComputationalBiomechanicsLab/opensim-creator --recursive
cd
into the source dir:cd opensim-creator
If you have multiple C++ compilers, make sure that the
CC
andCXX
environment variables point to compilers that are compatible with C++20. E.g.export CC=clang-12
,export CXX=clang++-12
Run the build script:
scripts/build_debian-buster.sh
- Done:
The
osc-build
directory should contain the built installer