Compiling¶
In order to compile sgl from source, the following prerequisites are
required:
A C++20 compliant compiler (tested with Visual Studio 2022, GCC 11 and Clang 14)
Python
>= 3.8git
Cloning the repository¶
The first step is to clone the repository. This can be done by running the following command:
git clone https://github.com/shader-slang/slangpy.git --recursive
Setup¶
To make it easy to build slangpy reliably, an additional setup step is required:
# Install Python build prerequisites
pip install -r requirements-dev.txt
# On Windows
setup.bat
# On Linux and macOS
./setup.sh
This will do the following:
Make sure all git submodules are initialized and up-to-date.
On the first run, setup a
.vscodedirectory with initial settings for VS Code.
This script can be run anytime to ensure that both git submodules and host tools are up-to-date.
Windows¶
To build on Windows, make sure you have a recent version of Visual Studio 2022 installed.
Open x64 Native Tools Command Prompt for VS 2022 and use the following
commands to build the project:
# Configure
cmake --preset windows-msvc
# Build "Debug" configuration
cmake --build --preset windows-msvc-debug
# Build "Release" configuration
cmake --build --preset windows-msvc-release
The build artifacts are placed in build\windows-msvc\bin\Debug or
build\windows-msvc\bin\Release.
Alternatively you can use the windows-vs2022 preset to configure the project
as a Visual Studio 2022 solution stored in build\windows-vs2022.
Tested on:
Windows 10 (build 19045)
Visual Studio 2022 (Version 17.8.0)
CMake 3.27.7
Ninja 1.11.1
Linux¶
To build on Linux, make sure you have the required build tools and dependencies installed. The following commands can be used to install the required build tools and dependencies:
# Install build tools
sudo apt install build-essential
# Install required build dependencies
sudo apt install libxinerama-dev libxcursor-dev xorg-dev libglu1-mesa-dev pkg-config
Then use the following commands to build the project:
# Configure
cmake --preset linux-gcc
# Build "Debug" configuration
cmake --build --preset linux-gcc-debug
# Build "Release" configuration
cmake --build --preset linux-gcc-release
The build artifacts are placed in build\linux-gcc\bin\Debug or
build\linux-gcc\bin\Release.
Alternativaly you can also use the linux-clang preset to use the Clang
compiler.
Tested on:
Ubuntu 22.04
GCC 11.4.0
CMake 3.27.7
Ninja 1.11.1
macOS¶
To build on macOS, make sure you have a recent version of XCode installed. You also need to install the XCode command line tools by running the following command:
xcode-select --install
Then use the following commands to build the project:
# Configure
cmake --preset macos-arm64-clang
# Build "Debug" configuration
cmake --build --preset macos-arm64-clang-debug
# Build "Release" configuration
cmake --build --preset macos-arm64-clang-release
The build artifacts are placed in build\macos-arm64-clang\bin\Debug or
build\macos-arm64-clang\bin\Release.
To build for the x64 architecture, use the macos-x64-clang preset.
Tested on:
macOS TBD
clang TBD
CMake 3.27.7
Ninja 1.11.1
Configuration options¶
SlangPy can be configured using the following CMake options. These options can be specified on the command line when running CMake, for example:
cmake --preset windows-msvc -DSGL_BUILD_DOCS=ON -DSGL_BUILD_EXAMPLES=OFF -DSGL_BUILD_TESTS=OFF
The following table lists the available configuration options:
Option |
Default |
Description |
|---|---|---|
|
|
Build sgl Python extension |
|
|
Build sgl examples |
|
|
Build sgl tests |
|
|
Build sgl documentation |
|
|
Load CUDA driver API dynamically |
|
|
Disable asserts |
|
|
Enable precompiled headers |
|
|
Enable address sanitizer |
|
|
Enable header validation |
VS Code¶
TBD