Mercurial > vanilla
diff dev/clang/clang.sh @ 1222:325631424c65
misc: bring back build function
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 27 Oct 2021 11:32:16 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dev/clang/clang.sh Wed Oct 27 11:32:16 2021 +0200 @@ -0,0 +1,84 @@ +#!/bin/sh +# +# Copyright (c) 2019 David Demelier <markand@malikania.fr> +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +# + +PKGNAME=clang +PKGVERSION=9.0.0 +PKGREVISION=1 +PKGLICENSE="MIT CUSTOM" +PKGSUMMARY="C language family frontend for LLVM" +PKGDOWNLOAD="http://releases.llvm.org/$PKGVERSION/cfe-$PKGVERSION.src.tar.xz + http://releases.llvm.org/$PKGVERSION/clang-tools-extra-$PKGVERSION.src.tar.xz" +PKGDEPENDS="cmake:build" +PKGOPTIONS="COMPILER_RT LIBCXX LLD TOOLS" + +: ${CC:=clang} +: ${CFLAGS:=-O2} +: ${CXX:=clang++} +: ${CXXFLAGS:=-O2} +: ${COMPILER_RT:=yes} +: ${LIBCXX:=yes} +: ${LLD:=yes} +: ${TOOLS:=yes} + +if [ "$COMPILER_RT" = "yes" ]; then + with_compiler_rt="-DCLANG_DEFAULT_RTLIB=compiler-rt" +fi + +if [ "$LIBCXX" = "yes" ]; then + with_libcxx="-DCLANG_DEFAULT_CXX_STDLIB=libc++" +else + with_libcxx="-DCLANG_DEFAULT_CXX_STDLIB=libstdc++" +fi + +if [ "$LLD" = "yes" ]; then + with_lld="-DCLANG_DEFAULT_LINKER=lld" +fi + +build() +{ + rm -rf cfe-$PKGVERSION.src + tar xvf cfe-$PKGVERSION.src.tar.xz + cd cfe-$PKGVERSION.src + + # Extract clang-extra-tools as tools/extra if requested. + if [ "$TOOLS" = "yes" ]; then + tar xvf ../clang-tools-extra-$PKGVERSION.src.tar.xz -C tools + mv tools/clang-tools-extra-$PKGVERSION.src tools/extra + fi + + mkdir build && cd build + cmake .. -Wno-dev \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_CXX_COMPILER="$CXX" \ + -DCMAKE_CXX_FLAGS="$CXXFLAGS" \ + -DCMAKE_C_COMPILER="$CC" \ + -DCMAKE_C_FLAGS="$CFLAGS" \ + -DCMAKE_INSTALL_PREFIX= \ + -DCMAKE_INSTALL_MANDIR=/share/man \ + -DCLANG_VENDOR="Vanilla Linux" \ + -DLLVM_ENABLE_EH=On \ + -DLLVM_ENABLE_RTTI=On \ + $with_compiler_rt \ + $with_libcxx \ + $with_lld + make + make DESTDIR=$DESTDIR install + cd .. + + cd .. + rm -rf cfe-$PKGVERSION.src +}