summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexis Ballier <aballier@gentoo.org>2013-05-31 15:57:41 +0000
committerAlexis Ballier <aballier@gentoo.org>2013-05-31 15:57:41 +0000
commit111dcd786a2ebc196795cd514a7cf1aa4724265e (patch)
tree9cede950f760d942d17937698cf6c816f2dfae1a
parentbump a new snapshot (diff)
downloadgentoo-2-111dcd786a2ebc196795cd514a7cf1aa4724265e.tar.gz
gentoo-2-111dcd786a2ebc196795cd514a7cf1aa4724265e.tar.bz2
gentoo-2-111dcd786a2ebc196795cd514a7cf1aa4724265e.zip
bump a new snapshot
(Portage version: 2.2.0_alpha177/cvs/Linux x86_64, signed Manifest commit with key 160F534A)
-rw-r--r--sys-libs/libcxx/ChangeLog8
-rw-r--r--sys-libs/libcxx/libcxx-0.0_p20130531.ebuild101
2 files changed, 108 insertions, 1 deletions
diff --git a/sys-libs/libcxx/ChangeLog b/sys-libs/libcxx/ChangeLog
index ebb982ce5d5c..ba38e76dd441 100644
--- a/sys-libs/libcxx/ChangeLog
+++ b/sys-libs/libcxx/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for sys-libs/libcxx
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-libs/libcxx/ChangeLog,v 1.16 2013/05/31 01:16:29 aballier Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/libcxx/ChangeLog,v 1.17 2013/05/31 15:57:41 aballier Exp $
+
+*libcxx-0.0_p20130531 (31 May 2013)
+
+ 31 May 2013; Alexis Ballier <aballier@gentoo.org>
+ +libcxx-0.0_p20130531.ebuild:
+ bump a new snapshot
31 May 2013; Alexis Ballier <aballier@gentoo.org> libcxx-9999.ebuild,
metadata.xml:
diff --git a/sys-libs/libcxx/libcxx-0.0_p20130531.ebuild b/sys-libs/libcxx/libcxx-0.0_p20130531.ebuild
new file mode 100644
index 000000000000..f5ffc07e4a61
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-0.0_p20130531.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/libcxx/libcxx-0.0_p20130531.ebuild,v 1.1 2013/05/31 15:57:41 aballier Exp $
+
+EAPI=5
+
+ESVN_REPO_URI="http://llvm.org/svn/llvm-project/libcxx/trunk"
+
+[ "${PV%9999}" != "${PV}" ] && SCM="subversion" || SCM=""
+
+inherit cmake-utils ${SCM} base flag-o-matic toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="http://libcxx.llvm.org/"
+if [ "${PV%9999}" = "${PV}" ] ; then
+ SRC_URI="mirror://gentoo/${P}.tar.xz"
+else
+ SRC_URI=""
+fi
+
+LICENSE="|| ( UoI-NCSA MIT )"
+SLOT="0"
+if [ "${PV%9999}" = "${PV}" ] ; then
+ KEYWORDS="~amd64 ~x86 ~amd64-fbsd ~amd64-linux ~x86-linux"
+else
+ KEYWORDS=""
+fi
+IUSE="+libcxxrt static-libs"
+
+RDEPEND="libcxxrt? ( >=sys-libs/libcxxrt-0.0_p20130530[static-libs?] )
+ !libcxxrt? ( sys-devel/gcc[cxx] )"
+DEPEND="${RDEPEND}
+ sys-devel/clang
+ app-arch/xz-utils"
+
+PATCHES=( "${FILESDIR}/multilib.patch" )
+DOCS=( "CREDITS.TXT" )
+
+src_prepare() {
+ use libcxxrt && PATCHES+=( "${FILESDIR}/cxxrt.patch" )
+ base_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs_base=( )
+ if use libcxxrt ; then
+ mycmakeargs_base=(
+ -DLIBCXX_CXX_ABI=libcxxrt
+ -DLIBCXX_LIBCXXRT_INCLUDE_PATHS="/usr/include/libcxxrt/"
+ )
+ else
+ # Very hackish, see $HOMEPAGE
+ # If someone has a clever idea, please share it!
+ local includes="$(echo | "$(tc-getCXX)" -Wp,-v -x c++ - -fsyntax-only 2>&1 | grep -C 2 '#include.*<...>' | tail -n 2 | tr '\n' ';' | tr -d ' ')"
+ mycmakeargs_base=(
+ -DLIBCXX_CXX_ABI=libsupc++
+ -DLIBCXX_LIBSUPCXX_INCLUDE_PATHS="${includes}"
+ )
+ fi
+
+ # Needs to be built with clang. gcc-4.6.3 fails at least.
+ # TODO: cross-compile ?
+ export CC=clang
+ export CXX=clang++
+
+ if use static-libs ; then
+ local mycmakeargs=( "${mycmakeargs_base[@]}" "-DLIBCXX_ENABLE_SHARED=OFF" )
+ BUILD_DIR="${S}_static" cmake-utils_src_configure
+ fi
+ local mycmakeargs=( "${mycmakeargs_base[@]}" )
+ BUILD_DIR="${S}_shared" cmake-utils_src_configure
+}
+
+src_compile() {
+ use static-libs && BUILD_DIR="${S}_static" cmake-utils_src_compile
+ BUILD_DIR="${S}_shared" cmake-utils_src_compile
+}
+
+# Tests fail for now, if anybody is able to fix them, help is very welcome.
+src_test() {
+ cd "${S}/test"
+ LD_LIBRARY_PATH="${S}_shared/lib:${LD_LIBRARY_PATH}" \
+ CC="clang++" \
+ HEADER_INCLUDE="-I${S}/include" \
+ SOURCE_LIB="-L${S}_shared/lib" \
+ LIBS="-lm" \
+ ./testit || die
+}
+
+src_install() {
+ use static-libs && BUILD_DIR="${S}_static" cmake-utils_src_install
+ BUILD_DIR="${S}_shared" cmake-utils_src_install
+}
+
+pkg_postinst() {
+ elog "This package (${PN}) is mainly intended as a replacement for the C++"
+ elog "standard library when using clang."
+ elog "To use it, instead of libstdc++, use:"
+ elog " clang++ -stdlib=libc++"
+ elog "to compile your C++ programs."
+}