summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-libs/tapi/tapi-2.0.0.ebuild')
-rw-r--r--sys-libs/tapi/tapi-2.0.0.ebuild174
1 files changed, 0 insertions, 174 deletions
diff --git a/sys-libs/tapi/tapi-2.0.0.ebuild b/sys-libs/tapi/tapi-2.0.0.ebuild
deleted file mode 100644
index 1eb844c2cde9..000000000000
--- a/sys-libs/tapi/tapi-2.0.0.ebuild
+++ /dev/null
@@ -1,174 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
-
-inherit cmake-utils llvm
-
-# This is a hog: We need to carve ObjCMetadata out of Apple's clang. We also
-# need llvm-tblgen and clang-tblgen because tapi uses them to generate some
-# source. It's assumed that they're only ever needed when building LLVM and
-# clang. So they don't get installed in the system and we need to compile them
-# fresh from LLVM and clang sources. And finally we need an installed LLVM and
-# clang to build tapi against.
-
-LLVM_PV=5.0.1
-LLVM_PN=llvm
-LLVM_P=${LLVM_PN}-${LLVM_PV}
-
-CLANG_PN=cfe
-CLANG_P=${CLANG_PN}-${LLVM_PV}
-
-APPLE_LLVM_PV=800.0.42.1
-APPLE_LLVM_PN=clang
-APPLE_LLVM_P=${APPLE_LLVM_PN}-${APPLE_LLVM_PV}
-
-OBJCMD_PN=objcmetadata
-OBJCMD_P=${OBJCMD_PN}-${APPLE_LLVM_PV}
-
-DESCRIPTION="Text-based Application Programming Interface"
-HOMEPAGE="https://opensource.apple.com/source/tapi"
-SRC_URI="https://opensource.apple.com/tarballs/clang/${APPLE_LLVM_P}.tar.gz
- http://releases.llvm.org/${LLVM_PV}/${LLVM_P}.src.tar.xz
- http://releases.llvm.org/${LLVM_PV}/${CLANG_P}.src.tar.xz"
-
-if [[ ${PV} == 9999* ]] ; then
- EGIT_REPO_URI="https://github.com/ributzka/tapi.git"
- TAPI_P=${P}
- inherit git-r3
-else
- TAPI_COMMIT=b9205695b4edee91000383695be8de5ba8e0db41
- SRC_URI+=" https://github.com/ributzka/${PN}/archive/${TAPI_COMMIT}.tar.gz -> ${P}.tar.gz"
- TAPI_P=${PN}-${TAPI_COMMIT}
-fi
-
-LICENSE="|| ( UoI-NCSA MIT )"
-SLOT="0"
-KEYWORDS="~x64-macos"
-
-DEPEND="sys-devel/llvm:=
- sys-devel/clang:="
-RDEPEND="${DEPEND}"
-
-DOCS=( Readme.md )
-
-LLVM_S="${WORKDIR}"/${LLVM_P}.src
-LLVM_BUILD="${WORKDIR}"/${LLVM_P}_build
-
-CLANG_S="${WORKDIR}"/${CLANG_P}.src
-
-APPLE_LLVM_S="${WORKDIR}/${APPLE_LLVM_P}"/src
-
-S="${WORKDIR}"/${TAPI_P}
-
-TAPI_BUILD="${WORKDIR}"/${P}_build
-
-OBJCMD_S="${WORKDIR}"/${OBJCMD_P}
-OBJCMD_BUILD="${WORKDIR}"/${OBJCMD_P}_build
-# put temporary install root into tapi build dir so that it does not end up on
-# libtapi's rpath
-OBJCMD_ROOT="${TAPI_BUILD}"/${OBJCMD_PN}_root
-
-src_prepare() {
- # carve ObjCMetadata out of llvm and make it stand on its own
- mkdir -p "${OBJCMD_S}"/{include/llvm,lib} || die
- cd ${OBJCMD_S} || die
- cp -r ${APPLE_LLVM_S}/include/llvm/ObjCMetadata include/llvm || die
- cp -r ${APPLE_LLVM_S}/lib/ObjCMetadata lib || die
- eapply "${FILESDIR}"/${OBJCMD_PN}-800.0.42.1-standalone.patch
- CMAKE_USE_DIR="${PWD}" \
- cmake-utils_src_prepare
-
- cd "${LLVM_S}" || die
- CMAKE_USE_DIR="${PWD}" \
- cmake-utils_src_prepare
-
- cd "${S}" || die
- eapply "${FILESDIR}"/${PN}-2.0.0-standalone.patch
- CMAKE_USE_DIR="${PWD}" \
- cmake-utils_src_prepare
-}
-
-src_configure() {
- # configure LLVM and clang for tablegen build
- local mycmakeargs=(
- # shared libs cause all kinds of problems and we don't need them just
- # to run tblgen a couple of times
- -DBUILD_SHARED_LIBS=OFF
- # configure less targets to speed up configuration. We don't build them
- # anyway.
- -DLLVM_TARGETS_TO_BUILD=X86
- -DLLVM_EXTERNAL_PROJECTS=clang
- -DLLVM_EXTERNAL_CLANG_SOURCE_DIR=${CLANG_S}
- )
-
- cd "${LLVM_S}" || die
- BUILD_DIR="${LLVM_BUILD}" \
- CMAKE_USE_DIR="${PWD}" \
- CMAKE_BUILD_TYPE=RelWithDebInfo \
- cmake-utils_src_configure
-
- local llvm_prefix=$(get_llvm_prefix)
-
- # configure ObjCMetadata
- local mycmakeargs=(
- # fails to compile without -std=c++11
- -DCMAKE_CXX_STANDARD=11
- # compile against currently installed LLVM
- -DLLVM_DIR="${llvm_prefix}/lib/cmake/llvm"
- # install into temporary root in work dir just so we can compile and
- # link against it. Static lib will be pulled into libtapi and tools.
- -DCMAKE_INSTALL_PREFIX="${OBJCMD_ROOT}"
- )
-
- cd "${OBJCMD_S}" || die
- BUILD_DIR="${OBJCMD_BUILD}" \
- CMAKE_USE_DIR="${PWD}" \
- cmake-utils_src_configure
-
- # configure tapi
- local mycmakeargs=(
- # fails to compile without -std=c++11
- -DCMAKE_CXX_STANDARD=11
- # compile against currently installed LLVM
- -DLLVM_DIR="${llvm_prefix}"/lib/cmake/llvm
- # use tblgens from LLVM build directory directly. They generate source
- # from description files. Therefore it shouldn't matter if they
- # match up with the installed LLVM.
- -DLLVM_TABLEGEN_EXE="${LLVM_BUILD}"/bin/llvm-tblgen
- -DCLANG_TABLEGEN_EXE="${LLVM_BUILD}"/bin/clang-tblgen
- # pull in includes and libs from ObjCMetadata's temporary install root
- -DOBJCMETADATA_INCLUDE_DIRS="${OBJCMD_ROOT}"/include
- -DOBJCMETADATA_LIBRARY_DIRS="${OBJCMD_ROOT}"/lib
- )
-
- cd "${S}" || die
- BUILD_DIR="${TAPI_BUILD}/" \
- CMAKE_USE_DIR="${PWD}" \
- cmake-utils_src_configure
-}
-
-src_compile() {
- # build LLVM and clang tablegen
- cd "${LLVM_S}" || die
- BUILD_DIR="${LLVM_BUILD}" \
- CMAKE_USE_DIR="${PWD}" \
- cmake-utils_src_compile llvm-tblgen clang-tblgen
-
- # build ObjCMetadata
- cd "${OBJCMD_S}" || die
- BUILD_DIR="${OBJCMD_BUILD}" \
- CMAKE_USE_DIR="${PWD}" \
- cmake-utils_src_compile
- # install into temporary root in work dir
- cd "${OBJCMD_BUILD}" || die
- ${CMAKE_MAKEFILE_GENERATOR} install
-
- # finally build tapi
- cd "${S}" || die
- BUILD_DIR="${TAPI_BUILD}" \
- CMAKE_USE_DIR="${PWD}" \
- cmake-utils_src_compile
-}