Author: David Spickett Date: 2024-10-08T16:23:42+01:00 New Revision: 64f7e1b697d834f620b069f2c3dc701ed8ff732a
URL: https://github.com/llvm/llvm-project/commit/64f7e1b697d834f620b069f2c3dc701ed8ff732a DIFF: https://github.com/llvm/llvm-project/commit/64f7e1b697d834f620b069f2c3dc701ed8ff732a.diff LOG: [libclc] Update build instructions in readme (#111369) The configure Python script was removed by d6e0e6d255a7d54a3873b7a5d048eee00ef6bb6d / https://reviews.llvm.org/D69966. The readme was never updated with the cmake way to do it. I couldn't find any dedicated buildbots for this so I'm making an educated guess. This is what built locally for me. Added: Modified: libclc/README.TXT Removed: ################################################################################ diff --git a/libclc/README.TXT b/libclc/README.TXT index c55a3e441638da..9d4fd4622d9db4 100644 --- a/libclc/README.TXT +++ b/libclc/README.TXT @@ -23,29 +23,46 @@ generic implementations of most library requirements, allowing the target to override the generic implementation at the granularity of individual functions. -libclc currently only supports the PTX target, but support for more -targets is welcome. +libclc currently supports PTX, AMDGPU, SPIRV and CLSPV targets, but support for +more targets is welcome. -Compiling and installing with Make ----------------------------------- +Compiling and installing +------------------------ -$ ./configure.py --with-llvm-config=/path/to/llvm-config && make -$ make install +(in the following instructions you can use make or ninja) -Note you can use the DESTDIR Makefile variable to do staged installs. +For an in-tree build, Clang must also be built at the same time: -$ make install DESTDIR=/path/for/staged/install +$ cmake <path-to>/llvm-project/llvm/CMakeLists.txt -DLLVM_ENABLE_PROJECTS="libclc;clang" \ + -DCMAKE_BUILD_TYPE=Release -G Ninja +$ ninja -Compiling and installing with Ninja ------------------------------------ +Then install: -$ ./configure.py -g ninja --with-llvm-config=/path/to/llvm-config && ninja $ ninja install -Note you can use the DESTDIR environment variable to do staged installs. +Note you can use the DESTDIR Makefile variable to do staged installs. $ DESTDIR=/path/for/staged/install ninja install +To build out of tree, or in other words, against an existing LLVM build or install: + +$ cmake <path-to>/llvm-project/libclc/CMakeLists.txt -DCMAKE_BUILD_TYPE=Release \ + -G Ninja -DLLVM_DIR=$(<path-to>/llvm-config --cmakedir) +$ ninja + +Then install as before. + +In both cases this will include all supported targets. You can choose which +targets are enabled by passing `-DLIBCLC_TARGETS_TO_BUILD` to CMake. The default +is "all". + +In both cases, the LLVM used must include the targets you want libclc support for +(AMDGPU and NVPTX are enabled in LLVM by default). Apart from SPIRV where you do +not need an LLVM target but you do need the llvm-spirv tool +(https://github.com/KhronosGroup/SPIRV-LLVM-Translator) available. Either build +this in-tree, or place it in the directory pointed to by `LLVM_TOOLS_BINARY_DIR`. + Website ------- _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits