Files
2024-08-18 11:46:58 +03:00

93 lines
3.8 KiB
Python
Executable File

#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt
from pisi.actionsapi import pisitools
from pisi.actionsapi import shelltools
from pisi.actionsapi import autotools
from pisi.actionsapi import cmaketools
from pisi.actionsapi import get
WorkDir = "llvm-project-%s.src" % get.srcVERSION()
NoStrip = ["/usr"]
def setup():
shelltools.export("CC", "clang")
shelltools.export("CXX", "clang++")
if get.buildTYPE() == "emul32" :
libsuffix = "32"
pisitools.ldflags.add(" -fuse-ld=lld -L/usr/lib32 -ldl -lpthread ")
triple = "i686-pc-linux-gnu"
pisitools.cflags.add("-m32 --target=%s" %triple)
pisitools.cxxflags.add("-m32 --target=%s" %triple)
options = "-DLLVM_ENABLE_RUNTIMES='libcxx;libcxxabi'"
else:
libsuffix = " "
pisitools.ldflags.add(" -fuse-ld=lld -rtlib=compiler-rt -L/usr/lib -ldl -lpthread ")
triple = "%s " % get.HOST()
options = "-DLLVM_ENABLE_RUNTIMES='libcxx;libcxxabi;libunwind' -DLIBUNWIND_USE_COMPILER_RT=ON \
-DCMAKE_STRIP=' ' \
-DLIBCXXABI_USE_COMPILER_RT=ON \
-DLIBCXXABI_ENABLE_EXCEPTIONS=ON \
-DLIBCXXABI_ENABLE_THREADS=ON \
-DLIBCXXABI_ENABLE_SHARED=OFF \
-DLLVM_NO_OLD_LIBSTDCXX=TRUE \
-DLIBCXX_INSTALL_HEADERS=ON \
-DLIBCXX_ENABLE_EXCEPTIONS=ON \
-DLIBCXX_ENABLE_THREADS=ON \
-DLIBCXX_ENABLE_MONOTONIC_CLOCK=ON \
-DLIBCXX_ENABLE_SHARED=ON \
-DLIBCXX_SUPPORTS_STD_EQ_CXX11_FLAG=TRUE \
-DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=ON \
-DLIBCXX_ENABLE_FILESYSTEM=ON \
-DLIBCXX_USE_COMPILER_RT=ON \
-DLIBCXX_HAS_PTHREAD_API=ON \
-DLIBUNWIND_ENABLE_SHARED=ON \
-DLIBCXXABI_ENABLE_STATIC_UNWINDER=ON \
-DLIBCXX_ENABLE_SHARED=ON \
-DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=TRUE \
-DCXX_SUPPORTS_CXX11=TRUE \
-DLIBCXX_ENABLE_STATIC=ON \
-DLIBUNWIND_TARGET_TRIPLE=%s \
" % triple
if get.buildTYPE() == "emul32":
options += " -DLIBCXXABI_USE_LLVM_UNWINDER=OFF"
else:
options += " -DLIBCXXABI_USE_LLVM_UNWINDER=ON"
# shelltools.system("ln -s %s/%s/libcxx llvm/projects/libcxx" %(get.workDIR(), WorkDir))
# shelltools.system("ln -s %s/%s/libcxxabi llvm/projects/libcxxabi" %(get.workDIR(), WorkDir))
shelltools.makedirs("build")
shelltools.cd("build")
shelltools.system(" cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DLIBCXX_LIBDIR_SUFFIX=%s \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ \
-DLLVM_ENABLE_PIC=ON \
-DLLVM_DEFAULT_TARGET_TRIPLE=%s \
%s \
../runtimes \
" %(libsuffix, triple, options) )
def build():
shelltools.cd("build")
autotools.make("cxx cxx_experimental")
def install():
shelltools.cd("build")
shelltools.system("DESTDIR=%s make install-cxx-headers install-cxx" %get.installDIR())
pisitools.dodoc("../libcxx/CREDITS.TXT", "../libcxx/LICENSE.TXT", "../libcxx/TODO.TXT")