tree: fe6ec0062db01ec524012cb5383e8ec98ff91759 [path history] [tgz]
  1. build/
  2. llvm/
  3. clspv--.bc
  4. clspv64--.bc
  5. README.md
  6. triples.gni
third_party/clspv/gn/README.md

CLSPV GN Build

The clspv official build system is CMake and as such have no GN build infra. The files in here enable building clspv using the ANGLE GN build infra.

The top-level build file is BUILD.gn with all the auxiliary build files located in the gn folder. The clspv build is heavily dependent on the LLVM build. The LLVM settings and targets needed for clspv are captured in the gn/llvm location. These utilize the LLVM experimental GN build infra 1.

Build Instructions

The GN build in here is setup to function within the ANGLE GN build infrastructure and as such follows the same setup as of ANGLE project. Please refer top level ANGLE readme file.

Add the following to args.gn file

angle_enable_cl = true

Note: Only the linux/x86{,_64} and android/arm{64} combination of os/cpu are setup for now.

Updating the LLVM build targets

The LLVM targets required for clspv are housed in the gn/llvm location. In the case of source files getting added/removed in the upstream LLVM, the relavant target sources needs to be modified in gn/llvm/sources/BUILD.gn.

The LLVM targets are named in the format clspv_<llvm/clang>_<folder path slug with _>.

For instance clspv_llvm_lib_frontend_offloading refers to the LLVM target in third_party/llvm/src/llvm/lib/Frontend/Offloading. The sources list in from the corresponding LLVM BUILD.gn file, here third_party/llvm/src/llvm/utils/gn/secondary/llvm/lib/Frontend/Offloading can be copied with prefix path “//$clspv_llvm_dir/llvm/lib/Frontend/Offloading/” applied to it.

References