123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- #!/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")
|