# --- T2-COPYRIGHT-NOTE-BEGIN --- # T2 SDE: package/*/clang/clang.conf # Copyright (C) 2019 - 2024 The T2 SDE Project # # This Copyright note is generated by scripts/Create-CopyPatch, # more information can be found in the files COPYING and README. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2. # --- T2-COPYRIGHT-NOTE-END --- #var_append cmakeopt -DPACKAGE_VENDOR=T2SDE #var_append cmakeopt -DCLANG_VENDOR=T2SDE cmake_mod() { tar $taropt `match_source_file -p cmake` mv -vf cmake-*src ../cmake } hook_add prepatch 5 cmake_mod extra_tools() { tar $taropt `match_source_file -p extra` ln -s clang-tools-extra{-*,} } hook_add prepatch 5 extra_tools [ $arch = powerpc -o "$SDECFG_POWERPC64_32" = 1 ] && var_append patchfiles " " "$confdir/no-clang-tidy.diff" # currently clang uses the default target from llvm #var_append cmakeopt " " "-DCLANG_DEFAULT_TARGET_TRIPLE=$arch_target" [ $SDECFG_DEFAULT_CC = 'clang' ] && ! pkginstalled gcc && var_append cmakeopt " " \ "-DCLANG_DEFAULT_CXX_STDLIB=libc++ \ -DCLANG_DEFAULT_RTLIB=compiler-rt \ -DCLANG_DEFAULT_UNWINDLIB=libunwind" clang_postmake() { # force a tools rebuild rm -fv $base/build/$SDECFG_ID/TOOLCHAIN/$toolsdir/.lastupdate # create various symlinks for cc, c++, cpp and f77 if atstage toolchain; then # TODO: or probably better program name transform? ln -sfv clang $root/$prefix/bin/${arch_target}-clang ln -sfv clang++ $root/$prefix/bin/${arch_target}-clang++ for x in $([ "$SDECFG_DEFAULT_CC" = clang ] && echo cc [ "$SDECFG_DEFAULT_CXX" = clang ] && echo c++ [ "$SDECFG_DEFAULT_KCC" = clang ] && echo kcc); do [ $x != c++ ] && ln -svf ${arch_target}-clang $root/$prefix/bin/${arch_target}-$x || ln -svf ${arch_target}-clang++ $root/$prefix/bin/${arch_target}-$x done # install some internal helper tools for cross bootstrap [ -e bin/clang-tidy-confusable-chars-gen ] && install bin/clang-tidy-confusable-chars-gen $root$bindir/ install bin/clang-tblgen $root$bindir/ install bin/clang-pseudo-gen $root$bindir/ return fi # TODO: cpp? for x in $([ "$SDECFG_DEFAULT_CC" = clang ] && echo cc [ "$SDECFG_DEFAULT_CXX" = clang ] && echo c++ [ "$SDECFG_DEFAULT_KCC" = clang ] && echo kcc); do [ $x != c++ ] && ln -svf clang $root/$prefix/bin/$x || ln -svf clang++ $root/$prefix/bin/$x done } hook_add postmake 5 "clang_postmake" if atstage toolchain; then var_append cmakeopt " " "-DDEFAULT_SYSROOT=$sysroot" elif atstage cross; then var_append cmakeopt " " "-DCLANG_TABLEGEN=$root/TOOLCHAIN/$toolsdir/bin/clang-tblgen" var_append cmakeopt " " "-DCLANG_TIDY_CONFUSABLE_CHARS_GEN=$root/TOOLCHAIN/$toolsdir/bin/clang-tidy-confusable-chars-gen" var_append cmakeopt " " "-DCLANG_PSEUDO_GEN=$root/TOOLCHAIN/$toolsdir/bin/clang-pseudo-gen" var_append cmakeopt " " "-DLLVM_MAIN_INCLUDE_DIR=$root$includedir" #var_append cmakeopt " " "-DLLVM_LIBRARY_DIR=$root$libdir" var_append GCC_WRAPPER_REMOVE ' ' "-L$sysroot/TOOLCHAIN/cross/lib" var_append GCC_WRAPPER_FILTER '|' "sed 's,$root/TOOLCHAIN.*libLLVM\(.*\)\.[as].*,-lLLVM\1,g'" var_append GCC_WRAPPER_FILTER '|' "sed 's,^/lib64/libcurses.so,-lcurses,'" var_append GCC_WRAPPER_FILTER '|' "sed 's,$root/lib64/libcurses.so,-lcurses,'" fi # rencent clang enfores the same suffix as llvm-config, ... #[ "${libdir##*/lib}" ] && var_append cmakeopt " " "-DLLVM_LIBDIR_SUFFIX=${libdir##*/lib}" var_append cmakeopt " " "-DLIBCLANG_BUILD_STATIC=OFF -DBUILD_SHARED_LIBS=ON -DLLVM_INCLUDE_TESTS=OFF"