libshit

Just some random shit
git clone https://git.neptards.moe/neptards/libshit.git
Log | Files | Refs | Submodules | README | LICENSE

compiler-rt-8.0.1.ebuild (3033B)


      1 # Copyright 1999-2020 Gentoo Authors
      2 # Distributed under the terms of the GNU General Public License v2
      3 
      4 EAPI=6
      5 
      6 : ${CMAKE_MAKEFILE_GENERATOR:=ninja}
      7 # (needed due to CMAKE_BUILD_TYPE != Gentoo)
      8 CMAKE_MIN_VERSION=3.7.0-r1
      9 PYTHON_COMPAT=( python2_7 )
     10 
     11 inherit cmake-utils flag-o-matic llvm multiprocessing \
     12 	python-any-r1 toolchain-funcs
     13 
     14 MY_P=${P}.src
     15 DESCRIPTION="Compiler runtime library for clang (built-in part)"
     16 HOMEPAGE="https://llvm.org/"
     17 SRC_URI="https://github.com/llvm/llvm-project/releases/download/llvmorg-${PV}/${MY_P}.tar.xz"
     18 
     19 LICENSE="|| ( UoI-NCSA MIT )"
     20 SLOT="${PV%_*}"
     21 KEYWORDS="amd64 arm arm64 ppc64 x86 ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos"
     22 IUSE="+clang test"
     23 RESTRICT="!test? ( test ) !clang? ( test )"
     24 
     25 CLANG_SLOT=${SLOT%%.*}
     26 # llvm-6 for new lit options
     27 DEPEND="
     28 	>=sys-devel/llvm-6
     29 	clang? ( sys-devel/clang )
     30 	test? (
     31 		$(python_gen_any_dep "dev-python/lit[\${PYTHON_USEDEP}]")
     32 		=sys-devel/clang-${PV%_*}*:${CLANG_SLOT} )
     33 	${PYTHON_DEPS}"
     34 
     35 S=${WORKDIR}/${MY_P}
     36 
     37 # least intrusive of all
     38 CMAKE_BUILD_TYPE=RelWithDebInfo
     39 
     40 python_check_deps() {
     41 	use test || return 0
     42 	has_version "dev-python/lit[${PYTHON_USEDEP}]"
     43 }
     44 
     45 pkg_pretend() {
     46 	if ! use clang && ! tc-is-clang; then
     47 		ewarn "Building using a compiler other than clang may result in broken atomics"
     48 		ewarn "library. Enable USE=clang unless you have a very good reason not to."
     49 	fi
     50 }
     51 
     52 pkg_setup() {
     53 	llvm_pkg_setup
     54 	python-any-r1_pkg_setup
     55 }
     56 
     57 test_compiler() {
     58 	$(tc-getCC) ${CFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c - \
     59 		<<<'int main() { return 0; }' &>/dev/null
     60 }
     61 
     62 src_configure() {
     63 	# pre-set since we need to pass it to cmake
     64 	BUILD_DIR=${WORKDIR}/${P}_build
     65 
     66 	local nolib_flags=( -nodefaultlibs -lc )
     67 	if use clang; then
     68 		local -x CC=${CHOST}-clang
     69 		local -x CXX=${CHOST}-clang++
     70 		strip-unsupported-flags
     71 		# ensure we can use clang before installing compiler-rt
     72 		local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}"
     73 	elif ! test_compiler; then
     74 		if test_compiler "${nolib_flags[@]}"; then
     75 			local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}"
     76 			ewarn "${CC} seems to lack runtime, trying with ${nolib_flags[*]}"
     77 		fi
     78 	fi
     79 
     80 	local mycmakeargs=(
     81 		-DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}"
     82 
     83 		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
     84 		-DCOMPILER_RT_BUILD_LIBFUZZER=OFF
     85 		-DCOMPILER_RT_BUILD_PROFILE=OFF
     86 		-DCOMPILER_RT_BUILD_SANITIZERS=OFF
     87 		-DCOMPILER_RT_BUILD_XRAY=OFF
     88 	)
     89 
     90 	if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then
     91 		mycmakeargs+=(
     92 			# disable use of SDK for the system itself
     93 			-DDARWIN_macosx_CACHED_SYSROOT=/
     94 		)
     95 	fi
     96 
     97 	if use test; then
     98 		mycmakeargs+=(
     99 			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
    100 			-DLLVM_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}"
    101 
    102 			-DCOMPILER_RT_TEST_COMPILER="${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang"
    103 			-DCOMPILER_RT_TEST_CXX_COMPILER="${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang++"
    104 		)
    105 	fi
    106 
    107 	cmake-utils_src_configure
    108 }
    109 
    110 src_test() {
    111 	# respect TMPDIR!
    112 	local -x LIT_PRESERVES_TMP=1
    113 
    114 	cmake-utils_src_make check-builtins
    115 }