Assumptions:
Apple Silicon/arm64 Architecture – build machine has M4 CPU
macOS Sequoia 15.6.1
All builds to be done in $HOME/src. If that folder doesn’t exist:mkdir ~/src; cd ~/src
Basics:
- Xcode 16.4, download from Apple App Store
Install Xcode command line tools –xcode-select —install
- Qt 6.5.3 – Download the installer from https://my.qt.io/download, you’ll need an account to do this, then enable “Archive” to install this version
- Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew update - Install Homebrew dependencies
brew install ninja readline sqlite3 xz zlib tcl-tk@8 autoconf automake libtool python@3.11 yasm clang-format black meson nasm pkg-config glew wget yaml-cpp pystring ptex freetype dcmtk qt@5 python@3.11
- Install an older version of cmake
cd ~/Downloads; wget https://github.com/Kitware/CMake/releases/download/v3.31.7/cmake-3.31.7-macos-universal.dmg; open ./cmake-3.31.7-macos-universal.dmg
- Drag and drop the CMake icon to the Applications folder, then install cmake to /usr/local/bin
sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install=/usr/local/bin
First library version mismatch: yaml-cpp
brew unlink yaml-cpp
mkdir -p /opt/homebrew/Cellar/yaml-cpp/0.7.0-static
cd ~/src
git clone https://github.com/jbeder/yaml-cpp.git
cd yaml-cpp
git checkout 0.7.0
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/homebrew/Cellar/yaml-cpp/0.7.0-static -DBUILD_SHARED_LIBS=OFF -DYAML_CPP_BUILD_TESTS=OFF -DYAML_CPP_BUILD_TOOLS=OFF
cmake --build build -j
sudo cmake —install build
sudo ln -sfn /opt/homebrew/Cellar/yaml-cpp/0.7.0-static /opt/homebrew/opt/yaml-cpp
Second library version mismatch: fmt
brew unlink fmt
mkdir -p /opt/homebrew/Cellar/fmt/9.1.0
cd ~/src
curl -LO https://github.com/fmtlib/fmt/archive/refs/tags/9.1.0.tar.gz
tar xzf 9.1.0.tar.gz
cd fmt-9.1.0
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/homebrew/Cellar/fmt/9.1.0 -DBUILD_SHARED_LIBS=ON -DFMT_TEST=OFF -DFMT_DOC=OFF
cmake --build build -j
sudo cmake --install build
ln -sfn /opt/homebrew/Cellar/fmt/9.1.0 /opt/homebrew/opt/fmt
Building RV:
- Download the source code
git clone --recursive https://github.com/AcademySoftwareFoundation/OpenRV.git
cd OpenRV - Make sure the build knows about Qt 5
export Qt5_ROOT="$(brew --prefix qt@5)"
- Make sure that we are using the right VFX platform
export RV_VFX_PLATFORM=CY2024
- Initialize the RV build command aliases
source rvcmds.sh
- Make and load the Python 3.11 virtual environment
python3.11 -m venv .venv
source .venv/bin/activate - Upgrade pip to the latest version
pip install --upgrade pip
- Setup RV
rvsetup
- Configure RV with support for DNxHD
rvcfg -DRV_FFMPEG_NON_FREE_DECODERS_TO_ENABLE="dnxhd" -DRV_FFMPEG_NON_FREE_ENCODERS_TO_ENABLE="dnxhd" -DCMAKE_PREFIX_PATH="/opt/homebrew/opt/yaml-cpp:$(brew --prefix pystring):/opt/homebrew/opt/fmt"
- Build RV
rvbuild
- Install RV – just makes the RV.app package for macOS
rvinst
- Test it, to make sure it works
cd _install; open RV.app
Extras/Installer Package:
- Install create-dmg
brew install create-dmg
- Build the installer package – sign with your Apple Developer ID certificate if you have one
create-dmg --volname "RV Installer" --window-pos 200 120 --window-size 600 400 --icon-size 100 --icon "RV.app" 175 190 --hide-extension "RV.app" --app-drop-link 425 190 --codesign "Developer ID Application: Alan Smithee Films Inc. (1234567890A)" ~/src/OpenRV-v3.0.0-arm64-Installer.dmg RV.app