Building PS Move API from source

Note that the PS Move API Github Releases page contains prebuilt library downloads, you might prefer to use those.

Requirements for all platforms:

  • CMake 3.16 or newer (tested with 3.25.1)

Building on macOS 13

You need to install the following requirements:

Install the dependencies:

bash -e -x scripts/install_dependencies.sh

To build from source, you can use the build script:

bash -e -x scripts/macos/build-macos

The build script builds for the CPU architecture of the current build machine (using uname -m for detection). By default, on an Apple Silicon machine, this builds for arm64, and for Intel machines, x86_64 is the build target.

The build script assumes Homebrew is installed in the system-wide default folder. For Intel, this is /usr/local and for Apple Silicon, this is /opt/homebrew. If your local installation differs, you might have to adjust MACOS_HOMEBREW_LIB and MACOS_HOMEBREW_INCLUDE in scripts/macos/build-macos, so that the build script and CMake can find headers and libraries.

Building on Ubuntu 22.04

Install the dependencies:

bash -e -x scripts/install_dependencies.sh

To build from source, you can use the build script:

bash -e -x scripts/linux/build-debian

Building on Windows (Visual Studio)

You need to install the following requirements:

Automatic build

A build script is provided which will take care of the build for you. The script will generate the Visual Studio solution and build everything in Debug and Release.

Run the batch files in a “Developer Command Prompt for VS 2022” (you will find this in the start menu) from the PS Move API checkout folder.

For Visual Studio 2022 and 64-bit use:

call scripts/visualc/build_msvc.bat 2022 x64

For Visual Studio 2022 and 32-bit use:

call scripts/visualc/build_msvc.bat 2022 x86

The resulting binaries will be placed in build-x86/ (for the 32-bit build) and build-x64/ (for the 64-bit build).

Python bindings

For Python 3, use the ctypes-based psmoveapi.py bindings. The old SWIG-based bindings are not supported anymore.

Testing the build

A lot of Python example scripts are provided in the examples/python/ directory. They are laid out so that when you build the library (and its Python bindings) in the customary build folder in the PSMove API checkout, the Python examples should find the modules without needing to install anything. We suggest you start with always.py which you can directly call from within the build directory like so:

python ../examples/python/always.py

This script does not require Bluetooth and should thus provide an easy way to test the Python bindings. Simply connect your Move controller via USB and run the script as shown above. If that is working, continue with pair.py to set everything up for using Bluetooth.