[libclc] 64f7e1b - [libclc] Update build instructions in readme (#111369)
via cfe-commits
cfe-commits at lists.llvm.org
Tue Oct 8 08:23:46 PDT 2024
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
-------
More information about the cfe-commits
mailing list