diff options
author | Oliver Reiche <oliver.reiche@huawei.com> | 2024-08-21 14:26:41 +0200 |
---|---|---|
committer | Oliver Reiche <oliver.reiche@huawei.com> | 2024-08-23 12:11:02 +0200 |
commit | 01b58e6282eef559fc80719b5ebc2eee50f01450 (patch) | |
tree | 83b047a795b4f2611aa05d59d37b96f39e245d5d | |
parent | 9e11172824011a57c9d27af0283b24d84b8c0ae7 (diff) | |
download | bootstrappable-toolchain-01b58e6282eef559fc80719b5ebc2eee50f01450.tar.gz |
clang: Add support for building clang-tidy
-rw-r--r-- | README.md | 2 | ||||
-rw-r--r-- | src/compilers/clang-16-native.TARGETS | 56 | ||||
-rw-r--r-- | src/compilers/clang-17-native.TARGETS | 56 | ||||
-rw-r--r-- | src/compilers/clang-18-native.TARGETS | 56 |
4 files changed, 167 insertions, 3 deletions
@@ -171,6 +171,8 @@ Fields for building the toolchains: Library directory of the C library on the build host (default: not set) - `HOST_DYNAMIC_LINKER`: Absolute path to the dynamic linker on the build host (default: not set) +- `INCLUDE_LINTER`: + Add linter to toolchain if supported, e.g., `clang-tidy` (default: `false`) Fields for using the toolchains (within [Justbuild](https://github.com/just-buildsystem/justbuild) projects): diff --git a/src/compilers/clang-16-native.TARGETS b/src/compilers/clang-16-native.TARGETS index 019c42b..33b2921 100644 --- a/src/compilers/clang-16-native.TARGETS +++ b/src/compilers/clang-16-native.TARGETS @@ -133,7 +133,61 @@ , "cp -r ${LOCALBASE}/. ${DESTDIR}/." , "chmod -R +w ${DESTDIR}/*" , "mkdir build" - , "cmake -B build -S llvm ${CONF_ARGS} -DLLVM_USE_FOLDERS=OFF -DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INSTALL_TOOLCHAIN_ONLY=ON -DLLVM_ENABLE_PROJECTS=clang -DLLVM_ENABLE_RUNTIMES='libcxx;libcxxabi;libunwind' -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_PARALLEL_LINK_JOBS=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX= -DLLVM_HOST_TRIPLE=${HOST_TRIPLE} -DLLVM_NATIVE_TARGET=ON -DLIBCXXABI_ENABLE_ASSERTIONS=OFF -DLIBUNWIND_ENABLE_ASSERTIONS=OFF >configure.log 2>&1 || (cat configure.log && exit 1)" + , { "type": "join" + , "separator": " " + , "$1": + [ "cmake" + , "-B" + , "build" + , "-S" + , "llvm" + , "${CONF_ARGS}" + , "-DLLVM_USE_FOLDERS=OFF" + , "-DLLVM_INCLUDE_DOCS=OFF" + , "-DLLVM_INCLUDE_TESTS=OFF" + , "-DLLVM_INSTALL_TOOLCHAIN_ONLY=ON" + , { "type": "join" + , "$1": + [ "-DLLVM_ENABLE_PROJECTS=" + , { "type": "join_cmd" + , "$1": + [ { "type": "join" + , "separator": ";" + , "$1": + { "type": "++" + , "$1": + [ ["clang"] + , { "type": "if" + , "cond": + { "type": "lookup" + , "key": "INCLUDE_LINTER" + , "map": + { "type": "var" + , "name": "TOOLCHAIN_CONFIG" + , "default": {"type": "empty_map"} + } + } + , "then": ["clang-tools-extra"] + } + ] + } + } + ] + } + ] + } + , "-DLLVM_ENABLE_RUNTIMES='libcxx;libcxxabi;libunwind'" + , "-DLLVM_TARGETS_TO_BUILD=X86" + , "-DLLVM_PARALLEL_LINK_JOBS=1" + , "-DCMAKE_BUILD_TYPE=Release" + , "-DCMAKE_INSTALL_PREFIX=" + , "-DLLVM_HOST_TRIPLE=${HOST_TRIPLE}" + , "-DLLVM_NATIVE_TARGET=ON" + , "-DLIBCXXABI_ENABLE_ASSERTIONS=OFF" + , "-DLIBUNWIND_ENABLE_ASSERTIONS=OFF" + , ">configure.log 2>&1 || (cat configure.log && exit 1)" + ] + } , "cmake --build build --target clang -j${NJOBS} >build.log 2>&1 || (cat configure.log build.log && exit 1)" , "export LDFLAGS=\"--gcc-toolchain=${GCC_TOOLCHAIN} ${LINK_ARGS}\"" , "cmake --build build --target all -j${NJOBS} >>build.log 2>&1 || (cat configure.log build.log && exit 1)" diff --git a/src/compilers/clang-17-native.TARGETS b/src/compilers/clang-17-native.TARGETS index 8d3ebda..19fc02e 100644 --- a/src/compilers/clang-17-native.TARGETS +++ b/src/compilers/clang-17-native.TARGETS @@ -133,7 +133,61 @@ , "cp -r ${LOCALBASE}/. ${DESTDIR}/." , "chmod -R +w ${DESTDIR}/*" , "mkdir build" - , "cmake -B build -S llvm ${CONF_ARGS} -DLLVM_USE_FOLDERS=OFF -DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INSTALL_TOOLCHAIN_ONLY=ON -DLLVM_ENABLE_PROJECTS=clang -DLLVM_ENABLE_RUNTIMES='libcxx;libcxxabi;libunwind' -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_PARALLEL_LINK_JOBS=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX= -DLLVM_HOST_TRIPLE=${HOST_TRIPLE} -DLLVM_NATIVE_TARGET=ON -DLIBCXXABI_ENABLE_ASSERTIONS=OFF -DLIBUNWIND_ENABLE_ASSERTIONS=OFF >configure.log 2>&1 || (cat configure.log && exit 1)" + , { "type": "join" + , "separator": " " + , "$1": + [ "cmake" + , "-B" + , "build" + , "-S" + , "llvm" + , "${CONF_ARGS}" + , "-DLLVM_USE_FOLDERS=OFF" + , "-DLLVM_INCLUDE_DOCS=OFF" + , "-DLLVM_INCLUDE_TESTS=OFF" + , "-DLLVM_INSTALL_TOOLCHAIN_ONLY=ON" + , { "type": "join" + , "$1": + [ "-DLLVM_ENABLE_PROJECTS=" + , { "type": "join_cmd" + , "$1": + [ { "type": "join" + , "separator": ";" + , "$1": + { "type": "++" + , "$1": + [ ["clang"] + , { "type": "if" + , "cond": + { "type": "lookup" + , "key": "INCLUDE_LINTER" + , "map": + { "type": "var" + , "name": "TOOLCHAIN_CONFIG" + , "default": {"type": "empty_map"} + } + } + , "then": ["clang-tools-extra"] + } + ] + } + } + ] + } + ] + } + , "-DLLVM_ENABLE_RUNTIMES='libcxx;libcxxabi;libunwind'" + , "-DLLVM_TARGETS_TO_BUILD=X86" + , "-DLLVM_PARALLEL_LINK_JOBS=1" + , "-DCMAKE_BUILD_TYPE=Release" + , "-DCMAKE_INSTALL_PREFIX=" + , "-DLLVM_HOST_TRIPLE=${HOST_TRIPLE}" + , "-DLLVM_NATIVE_TARGET=ON" + , "-DLIBCXXABI_ENABLE_ASSERTIONS=OFF" + , "-DLIBUNWIND_ENABLE_ASSERTIONS=OFF" + , ">configure.log 2>&1 || (cat configure.log && exit 1)" + ] + } , "cmake --build build --target clang -j${NJOBS} >build.log 2>&1 || (cat configure.log build.log && exit 1)" , "export LDFLAGS=\"--gcc-toolchain=${GCC_TOOLCHAIN} ${LINK_ARGS}\"" , "cmake --build build --target all -j${NJOBS} >>build.log 2>&1 || (cat configure.log build.log && exit 1)" diff --git a/src/compilers/clang-18-native.TARGETS b/src/compilers/clang-18-native.TARGETS index bf2a456..e0ef548 100644 --- a/src/compilers/clang-18-native.TARGETS +++ b/src/compilers/clang-18-native.TARGETS @@ -133,7 +133,61 @@ , "cp -r ${LOCALBASE}/. ${DESTDIR}/." , "chmod -R +w ${DESTDIR}/*" , "mkdir build" - , "cmake -B build -S llvm ${CONF_ARGS} -DLLVM_USE_FOLDERS=OFF -DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INSTALL_TOOLCHAIN_ONLY=ON -DLLVM_ENABLE_PROJECTS=clang -DLLVM_ENABLE_RUNTIMES='libcxx;libcxxabi;libunwind' -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_PARALLEL_LINK_JOBS=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX= -DLLVM_HOST_TRIPLE=${HOST_TRIPLE} -DLLVM_NATIVE_TARGET=ON -DLIBCXXABI_ENABLE_ASSERTIONS=OFF -DLIBUNWIND_ENABLE_ASSERTIONS=OFF >configure.log 2>&1 || (cat configure.log && exit 1)" + , { "type": "join" + , "separator": " " + , "$1": + [ "cmake" + , "-B" + , "build" + , "-S" + , "llvm" + , "${CONF_ARGS}" + , "-DLLVM_USE_FOLDERS=OFF" + , "-DLLVM_INCLUDE_DOCS=OFF" + , "-DLLVM_INCLUDE_TESTS=OFF" + , "-DLLVM_INSTALL_TOOLCHAIN_ONLY=ON" + , { "type": "join" + , "$1": + [ "-DLLVM_ENABLE_PROJECTS=" + , { "type": "join_cmd" + , "$1": + [ { "type": "join" + , "separator": ";" + , "$1": + { "type": "++" + , "$1": + [ ["clang"] + , { "type": "if" + , "cond": + { "type": "lookup" + , "key": "INCLUDE_LINTER" + , "map": + { "type": "var" + , "name": "TOOLCHAIN_CONFIG" + , "default": {"type": "empty_map"} + } + } + , "then": ["clang-tools-extra"] + } + ] + } + } + ] + } + ] + } + , "-DLLVM_ENABLE_RUNTIMES='libcxx;libcxxabi;libunwind'" + , "-DLLVM_TARGETS_TO_BUILD=X86" + , "-DLLVM_PARALLEL_LINK_JOBS=1" + , "-DCMAKE_BUILD_TYPE=Release" + , "-DCMAKE_INSTALL_PREFIX=" + , "-DLLVM_HOST_TRIPLE=${HOST_TRIPLE}" + , "-DLLVM_NATIVE_TARGET=ON" + , "-DLIBCXXABI_ENABLE_ASSERTIONS=OFF" + , "-DLIBUNWIND_ENABLE_ASSERTIONS=OFF" + , ">configure.log 2>&1 || (cat configure.log && exit 1)" + ] + } , "cmake --build build --target clang -j${NJOBS} >build.log 2>&1 || (cat configure.log build.log && exit 1)" , "export LDFLAGS=\"--gcc-toolchain=${GCC_TOOLCHAIN} ${LINK_ARGS}\"" , "cmake --build build --target all -j${NJOBS} >>build.log 2>&1 || (cat configure.log build.log && exit 1)" |