93 lines
3.8 KiB
Python
Executable File
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")
|