# OpenCL-SDK
**Repository Path**: efreets/OpenCL-SDK
## Basic Information
- **Project Name**: OpenCL-SDK
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-12-30
- **Last Updated**: 2025-12-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# OpenCLTM SDK (in development)
This is the Khronos OpenCL SDK. It brings together all the components needed to
develop OpenCL applications:
- OpenCL Headers (`external/OpenCL-Headers/`)
- OpenCL C++ bindings (`external/OpenCL-CLHPP/include`)
- OpenCL Loader (`external/OpenCL-ICD-Loader`)
- OpenCL utility library (`lib/include`)
It also contains resources useful to OpenCL developers:
- Code samples (`samples/`)
- Documentation (`docs/`)
## Build Instructions
### Dependencies
- This repository uses sub-modules for the OpenCL Headers, OpenCL C++ bindings, and OpenCL ICD Loader and some of their transitive dependencies.
- To clone a new repository with all sub-modules included, use the `--recursive` option. Note that this option clones all sub-modules and their dependencies, which are not strictly required for the OpenCL SDK:
git clone --recursive https://github.com/KhronosGroup/OpenCL-SDK.git
- Alternatively, to clone only the sub-modules for the OpenCL SDK, first clone this repository without sub-modules included then setup submodules non-recursively:
git clone https://github.com/KhronosGroup/OpenCL-SDK.git
git submodule init
git submodule update
- The SDK uses CMake for its build system.
If CMake is not provided by your build system or OS package manager, please consult the [CMake website](https://cmake.org).
- The SDK samples depend on
- [Templatized C++ Command Line Parser Library](http://tclap.sourceforge.net/) (aka. TCLAP)
- [Simple and Fast Multimedia Library](https://www.sfml-dev.org/) (aka. SFML)
- [OpenGL Mathematics](https://glm.g-truc.net/0.9.9/index.html) (aka. GLM)
### Example Build
In most cases, the following steps may be used to build the OpenCL SDK.
1. Clone this repo and update submodules:
git clone https://github.com/KhronosGroup/OpenCL-SDK.git
git submodule init
git submodule update
2. Create a "build" directory:
mkdir build
cd build
3. Generate build files inside of the "build" directory:
cmake .. -DCMAKE_BUILD_TYPE=Release
4. Build the OpenCL SDK and copy files to an "install" directory:
cmake --build . --target install --config Release
Or, build the OpenCL SDK using the generated build files directly.
To customize a build, the following CMake variables are supported.
To specify one of these variables via the command line generator, use the CMake syntax `-D=`.
See your CMake documentation for more details.
| Variable | Type | Description |
|:---------|:-----|:------------|
| CMAKE_BUILD_TYPE | STRING | Specifies the build type. Does not affect multi-configuration generators, such as Visual Studio solution files.
| CMAKE_INSTALL_PREFIX | PATH | Install directory prefix.
| OPENCL_SDK_BUILD_UTILITY_LIBRARIES | BOOL | Enables building OpenCL SDK utility libraries. Default: `TRUE`
| OPENCL_SDK_BUILD_SAMPLES | BOOL | Enables building OpenCL SDK samples. Default: `TRUE`
| OPENCL_SDK_BUILD_OPENGL_SAMPLES | BOOL | Enables building OpenCL SDK samples that interoperate with OpenGL. Default: `FALSE`
| OPENCL_SDK_BUILD_VULKAN_SAMPLES | BOOL | Enables building OpenCL SDK samples that interoperate with Vulkan. Default: `FALSE`
| OPENCL_SDK_TEST_SAMPLES | BOOL | Enables a target to test the OpenCL SDK samples. Default: `TRUE`