diff options
Diffstat (limited to 'sys-devel/llvm/llvm-10.0.1_rc1.ebuild')
-rw-r--r-- | sys-devel/llvm/llvm-10.0.1_rc1.ebuild | 62 |
1 files changed, 39 insertions, 23 deletions
diff --git a/sys-devel/llvm/llvm-10.0.1_rc1.ebuild b/sys-devel/llvm/llvm-10.0.1_rc1.ebuild index 59ccce098614..36ee1f6d95dc 100644 --- a/sys-devel/llvm/llvm-10.0.1_rc1.ebuild +++ b/sys-devel/llvm/llvm-10.0.1_rc1.ebuild @@ -3,9 +3,9 @@ EAPI=7 -PYTHON_COMPAT=( python3_{6,7,8} ) -inherit cmake-utils llvm.org multilib-minimal multiprocessing \ - pax-utils python-any-r1 toolchain-funcs +PYTHON_COMPAT=( python3_{6..9} ) +inherit cmake llvm.org multilib-minimal multiprocessing pax-utils \ + python-any-r1 toolchain-funcs DESCRIPTION="Low Level Virtual Machine" HOMEPAGE="https://llvm.org/" @@ -58,12 +58,11 @@ BDEPEND=" <sys-libs/libcxx-$(ver_cut 1-3).9999 >=sys-devel/binutils-apple-5.1 ) - doc? ( $(python_gen_any_dep ' - dev-python/recommonmark[${PYTHON_USEDEP}] - dev-python/sphinx[${PYTHON_USEDEP}] - ') ) libffi? ( virtual/pkgconfig ) - ${PYTHON_DEPS}" + $(python_gen_any_dep ' + dev-python/sphinx[${PYTHON_USEDEP}] + doc? ( dev-python/recommonmark[${PYTHON_USEDEP}] ) + ')" # There are no file collisions between these versions but having :0 # installed means llvm-config there will take precedence. RDEPEND="${RDEPEND} @@ -74,10 +73,17 @@ PDEPEND="sys-devel/llvm-common # least intrusive of all CMAKE_BUILD_TYPE=RelWithDebInfo -python_check_deps() { - use doc || return 0 +PATCHES=( + # Fix linking to dylib and .a libs simultaneously + "${FILESDIR}"/10.0.1/0001-llvm-Avoid-linking-llvm-cfi-verify-to-duplicate-libs.patch + "${FILESDIR}"/10.0.1/0002-llvm-Disable-linking-llvm-exegesis-to-dylib.patch +) - has_version -b "dev-python/recommonmark[${PYTHON_USEDEP}]" && +python_check_deps() { + if use doc; then + has_version -b "dev-python/recommonmark[${PYTHON_USEDEP}]" || + return 1 + fi has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]" } @@ -106,6 +112,10 @@ check_distribution_components() { distribution|llvm-libraries) continue ;; + # used only w/ USE=doc + docs-llvm-html) + continue + ;; esac all_targets+=( "${l}" ) @@ -148,8 +158,15 @@ src_prepare() { # Update config.guess to support more systems cp "${BROOT}/usr/share/gnuconfig/config.guess" cmake/ || die - # User patches + QA - cmake-utils_src_prepare + # manpages don't use markdown + if ! use doc; then + sed -i -e '/source_parsers/d' docs/conf.py || die + fi + + # cmake eclasses suck by forcing ${S} here + CMAKE_USE_DIR=${S} \ + S=${WORKDIR} \ + cmake_src_prepare } # Is LLVM being linked against libc++? @@ -264,12 +281,13 @@ get_distribution_components() { # python modules opt-viewer - ) - use doc && out+=( + # manpages docs-dsymutil-man docs-llvm-dwarfdump-man docs-llvm-man + ) + use doc && out+=( docs-llvm-html ) @@ -351,13 +369,11 @@ multilib_src_configure() { if multilib_is_native_abi; then mycmakeargs+=( - -DLLVM_BUILD_DOCS=$(usex doc) + -DLLVM_BUILD_DOCS=ON -DLLVM_ENABLE_OCAMLDOC=OFF - -DLLVM_ENABLE_SPHINX=$(usex doc) + -DLLVM_ENABLE_SPHINX=ON -DLLVM_ENABLE_DOXYGEN=OFF -DLLVM_INSTALL_UTILS=ON - ) - use doc && mycmakeargs+=( -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man" -DLLVM_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html" -DSPHINX_WARNINGS_AS_ERRORS=OFF @@ -389,13 +405,13 @@ multilib_src_configure() { # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" - cmake-utils_src_configure + cmake_src_configure multilib_is_native_abi && check_distribution_components } multilib_src_compile() { - cmake-utils_src_compile + cmake_src_compile pax-mark m "${BUILD_DIR}"/bin/llvm-rtdyld pax-mark m "${BUILD_DIR}"/bin/lli @@ -411,7 +427,7 @@ multilib_src_compile() { multilib_src_test() { # respect TMPDIR! local -x LIT_PRESERVES_TMP=1 - cmake-utils_src_make check + cmake_build check } src_install() { @@ -431,7 +447,7 @@ src_install() { } multilib_src_install() { - DESTDIR=${D} cmake-utils_src_make install-distribution + DESTDIR=${D} cmake_build install-distribution # move headers to /usr/include for wrapping rm -rf "${ED}"/usr/include || die |