diff options
Diffstat (limited to 'dev-util/ccache')
-rw-r--r-- | dev-util/ccache/Manifest | 4 | ||||
-rw-r--r-- | dev-util/ccache/ccache-4.8.ebuild | 125 |
2 files changed, 129 insertions, 0 deletions
diff --git a/dev-util/ccache/Manifest b/dev-util/ccache/Manifest index 59e2c3e5c60a..c3aa2c466b75 100644 --- a/dev-util/ccache/Manifest +++ b/dev-util/ccache/Manifest @@ -8,7 +8,11 @@ DIST ccache-4.6.3.tar.xz 531184 BLAKE2B b23c22876cd3f31bcd67b9120fd5e60544150847 DIST ccache-4.6.3.tar.xz.asc 833 BLAKE2B 064d7bdf474540992180372c4c011b5bdeb98834803abcdec474f0988cac0339281c388545f9d28ae22b740268c338e092d618c0a4664c62c307d9a9ec1dff5e SHA512 ecba59c8089848737f37ef9bae4f631fae7eb2fedfc62879cd181ce37d412fbd883cc9dee52850757258009d75ef06477441cbf17d39db7b9d955300737e7f89 DIST ccache-4.7.4.tar.xz 547820 BLAKE2B 03e03223f0fd6eb001c7d93bcd03a0ef6656ebd3ffcc920b9e772fb68275ddf1e8a941f8f7de68358cbc7a9b9d5aa65e35b91554ff24684f29ff1953aefae75f SHA512 48c663b51e874cfbd8daf0ef9759d025c2605c36da47ebbc77b52ceb941b810436600429f74204f13e2e2e601af6186a4bdb992f8da239f88cb9df4c6c95d58f DIST ccache-4.7.4.tar.xz.asc 833 BLAKE2B e155f9cb695794a28771a928d50e18705441b9fb9a8ec425aabc78dabcd68caca68ba15f74ba176a73abf414c4ba98b1832da3536fcd87d7c32f2689fe7e1908 SHA512 567a051e7c93cd62c8ad7631fea98a6846e2f548aaa201acefbe44d1027f8048cae5ef462488da7ce90864b23a426d524f576472428f93ecbc5cea3ae224b860 +DIST ccache-4.8-docs.tar.xz 80280 BLAKE2B e8e00dd10a00670ff3a0c3f5ab0966469fa5246de64724e24d0287020d4636fb5a1f59421aaa094d05b88bd20efd2a4a06e46dfb957bcf77ad2ea61fd02551c9 SHA512 e0036a7f86b458028c6e24158f95b62e40d9f659031e16adc59c067096bb728f1cb583a2edecaf2118f15b8e00f028fa6f1cfa2466fba76b7c870cca93a883eb +DIST ccache-4.8.tar.xz 556804 BLAKE2B 5cca7d49088c5391abf93a2a493ba8e120575ae834abae86f3669e8c883a93ec29d48ab934aa086a87feb6a08d0c0053b3ce7174cec2f342c2d695a93fa3ef9a SHA512 561424d448a049971742b846429c2fa5f1df43c05f201610dab0a3fab7e4806589c14ca20875cb5733763603c0813fe9350a244b63dda03e9def95d547738d0b +DIST ccache-4.8.tar.xz.asc 833 BLAKE2B 4a646db5b7a220a21ad93a02ea4bad23a666ad116af70211ea4a9a546ba7aeaf0c1c88c79d264f614a2ca5387dc91bf655a1632f53889dd74f49e085e2f6bd01 SHA512 22b6aeb54248576a1199e173db7b58b985bdc4e6a298e9fbd32992ab6dbadcd4496ffcadc24241215bd43166b68faf77aa3e492e44ffeac53e1e5e4c46015836 EBUILD ccache-4.5.1.ebuild 2295 BLAKE2B 8b89808a850d5bb512a9672d719a800c9f17fd23dddc3bb5b1c0626b4160910bead0ca27137d734340ca9a60783349b97730376d5cb35473698b843203758d7c SHA512 96c0b4dbe479a0383fb28fda5f262e4490625e0ba137e5435ba8ee9702d14fe68c42a04a462792ff96aa176e3676a819602e2e50cb989d5061842c188d8fc5ba EBUILD ccache-4.6.3.ebuild 2575 BLAKE2B c8b4113239bf1ea5d2b394f68e0f2dc623a602bf082c72cb4e5c38640b83e9909e69324a894a9a79bd88610a36451cee2ea35ddfce7060794b52fb8923b8fa95 SHA512 37fb4a65048e332d928279eccb5bcebeb20ab61379898aa548eb5ced5a858b680cd844f2f679d4ea528af54f21ca663614112dc45b937b8da38b1718fa919f2e EBUILD ccache-4.7.4.ebuild 2489 BLAKE2B c96ba952f7f90c54812fcc1ead1bc4adf7b036937b2d80a05c0bebc54cdf3cdaac456e8918b6f4905cb38c19aa98d9c912624d22bfd76c0ae35d32e8c7cea6dd SHA512 90802b6ff902bb7cced6947824d38ea90bf8da66b48dec9cc7f1584193f4fb3f4d50217685306e1504118a55a46c6680f27b6a59368c835058171ef33f772e4b +EBUILD ccache-4.8.ebuild 3568 BLAKE2B b7cbcfd12398afdc1921155a19dea92506f1eb3388ff919cea9f154c9ccb369f3088769586d531c8911f7e615c3d2416edefcca77fc4fcb8d697e7710b3e1bb9 SHA512 d33365bdcdc749bd0548355b9299b6b00092b3d24f85e274e392aa9a356b3af03669e3f0e8d02eabfe7bf03c3741997ae0705f7f477e1e1bea689a9d6334acfb MISC metadata.xml 710 BLAKE2B 0a93cf3dd4222eb2fd500c3cafdff3c01eacecc489a471270922fc5dd1daf58cd1398ddfb7ab4d271a6e84d5a3da5c3e7a341b1e7994af7b10fd432318de7c5e SHA512 dbfa6b8d8f435e25887b25ce25df65184a7f315986ee60a1c723d0e6592ca73bc7414b6650014812eb882e7e39bed953eaa21139a414043c50c018a7b780e6f1 diff --git a/dev-util/ccache/ccache-4.8.ebuild b/dev-util/ccache/ccache-4.8.ebuild new file mode 100644 index 000000000000..f839a350fcda --- /dev/null +++ b/dev-util/ccache/ccache-4.8.ebuild @@ -0,0 +1,125 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-ccache-docs +# Set to 1 if prebuilt, 0 if not +# (the construct below is to allow overriding from env for script) +CCACHE_DOCS_PREBUILT=${CCACHE_DOCS_PREBUILT:-1} +CCACHE_DOCS_PREBUILT_DEV=sam +CCACHE_DOCS_VERSION="${PV}" +# Default to generating docs (inc. man pages) if no prebuilt; overridden later +# bug #830088 +CCACHE_DOC_USEFLAG="+doc" + +VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/joelrosdahl.asc +inherit cmake toolchain-funcs flag-o-matic verify-sig + +DESCRIPTION="Fast compiler cache" +HOMEPAGE="https://ccache.dev/" +SRC_URI="https://github.com/ccache/ccache/releases/download/v${PV}/${P}.tar.xz" +SRC_URI+=" verify-sig? ( https://github.com/ccache/ccache/releases/download/v${PV}/${P}.tar.xz.asc )" +if [[ ${CCACHE_DOCS_PREBUILT} == 1 ]] ; then + SRC_URI+=" !doc? ( https://dev.gentoo.org/~${CCACHE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${CCACHE_DOCS_VERSION}-docs.tar.xz )" +fi + +LICENSE="GPL-3 LGPL-3" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +[[ ${CCACHE_DOCS_PREBUILT} == 1 ]] && CCACHE_DOC_USEFLAG="doc" +# Enable 'static-c++' by default to make 'gcc' ebuild Just Work: bug #761220 +IUSE="${CCACHE_DOC_USEFLAG} redis +static-c++ test" +RESTRICT="!test? ( test )" + +DEPEND=" + app-arch/zstd:= + redis? ( dev-libs/hiredis:= ) +" +RDEPEND=" + ${DEPEND} + dev-util/shadowman + sys-apps/gentoo-functions +" +# Needed for eselect calls in pkg_* +IDEPEND="dev-util/shadowman" + +# clang-specific tests use dev-libs/elfutils to compare objects for equality. +# Let's pull in the dependency unconditionally. +DEPEND+=" test? ( dev-libs/elfutils )" +BDEPEND=" + doc? ( dev-ruby/asciidoctor ) + verify-sig? ( sec-keys/openpgp-keys-joelrosdahl ) +" + +DOCS=( doc/{AUTHORS,MANUAL,NEWS}.adoc CONTRIBUTING.md README.md ) + +PATCHES=( + "${FILESDIR}"/${PN}-3.5-nvcc-test.patch + "${FILESDIR}"/${PN}-4.0-objdump.patch +) + +src_unpack() { + # Avoid aborting on the doc tarball + if use verify-sig ; then + verify-sig_verify_detached "${DISTDIR}"/${P}.tar.xz{,.asc} + fi + + default +} + +src_prepare() { + cmake_src_prepare + + sed \ + -e "/^EPREFIX=/s:'':'${EPREFIX}':" \ + "${FILESDIR}"/ccache-config-3 > ccache-config || die +} + +src_configure() { + # Mainly used in tests + tc-export CC OBJDUMP + + # Avoid dependency on libstdc++.so. Useful for cases when + # we would like to use ccache to build older gcc which injects + # into ccache locally built (possibly outdated) libstdc++ + # See bug #761220 for examples. + # + # Ideally gcc should not use LD_PRELOAD to avoid this type of failure. + use static-c++ && append-ldflags -static-libstdc++ + + local mycmakeargs=( + -DENABLE_DOCUMENTATION=$(usex doc) + -DENABLE_TESTING=$(usex test) + -DZSTD_FROM_INTERNET=OFF + -DHIREDIS_FROM_INTERNET=OFF + -DREDIS_STORAGE_BACKEND=$(usex redis) + ) + + cmake_src_configure +} + +src_install() { + cmake_src_install + + dobin ccache-config + insinto /usr/share/shadowman/tools + newins - ccache <<<"${EPREFIX}/usr/lib/ccache/bin" + + # If USE=doc, there'll be newly generated docs which we install instead. + if ! use doc && [[ ${CCACHE_DOCS_PREBUILT} == 1 ]] ; then + doman "${WORKDIR}"/${PN}-${CCACHE_DOCS_VERSION}-docs/docs/*.[0-8] + fi +} + +pkg_prerm() { + if [[ -z ${REPLACED_BY_VERSION} && -z ${ROOT} ]] ; then + eselect compiler-shadow remove ccache + fi +} + +pkg_postinst() { + if [[ -z ${ROOT} ]] ; then + eselect compiler-shadow update ccache + fi +} |