diff options
Diffstat (limited to 'dev-util/clang-extract')
-rw-r--r-- | dev-util/clang-extract/Manifest | 4 | ||||
-rw-r--r-- | dev-util/clang-extract/clang-extract-0_pre20241220.ebuild | 115 | ||||
-rw-r--r-- | dev-util/clang-extract/clang-extract-9999.ebuild | 6 |
3 files changed, 121 insertions, 4 deletions
diff --git a/dev-util/clang-extract/Manifest b/dev-util/clang-extract/Manifest index 3c86f5312845..e7abe6ad7421 100644 --- a/dev-util/clang-extract/Manifest +++ b/dev-util/clang-extract/Manifest @@ -1,5 +1,7 @@ AUX clang-extract-meson.patch 2308 BLAKE2B 179088a6c843d295f99744944eef645b73c851da6fa2378a8b6e23c645e0b945b42c1182dedeb2c14b8656f065c3a4e6b0a4288f14670b61e6a4adfe03a06c96 SHA512 8019d1c9a08f6ddfd63ebc7874a2296255176dcd24eeac69e28556122fbac0c74b5978c5df5dbcb09d87f657ffc4a403ab3793f02d5f556489985f7b686e705c DIST clang-extract-0_pre20241002.gh.tar.gz 129679 BLAKE2B 98d55d96fddcaf97e3ba12c4f5cc64a226ca8cb01328bfbe29e0526e48ba3304fdba0f4ee0f07972e488dd9339326011116359401fed047031c49806ee175245 SHA512 c05a8c2aa9a3fd0050d23b35991b8169e185e6186b2c583b364e78fef448030d44be4d14f175148fde5389a1463d4db61d52621dc2b410764336cca12ce3e5b3 +DIST clang-extract-0_pre20241220.gh.tar.gz 129806 BLAKE2B ddf3dbc5c509a3483a1ac9229eab4229c227a5f5b41d25f853bdee0ffe846ff4c8731efcdbd1f853250681f2e718d5db85403762c7eba7afc5787a38cfbdf1aa SHA512 bf130d35c3170a8a3488f67173ed876196339b93cd4243e56eee3f01771badd4c96d80da88db6a267f3e55f874d2735b82da746e8276199f52ead53385c85ef6 EBUILD clang-extract-0_pre20241002.ebuild 3076 BLAKE2B 592e529a8eef068a79012962261cb20becb4c3f881c872a3c0c42b46d9724e0b82761413fd8042f8ea76e9e0b513eb5d2079e136ffe24d48dedddaad10959094 SHA512 959ae78c700c3206308047d89e3a401e06336bd578ca9794f22ec867d4fc035c083467224666006920e46c6990ffb96f5aa2aba5109944685c7db718598adce2 -EBUILD clang-extract-9999.ebuild 3076 BLAKE2B 592e529a8eef068a79012962261cb20becb4c3f881c872a3c0c42b46d9724e0b82761413fd8042f8ea76e9e0b513eb5d2079e136ffe24d48dedddaad10959094 SHA512 959ae78c700c3206308047d89e3a401e06336bd578ca9794f22ec867d4fc035c083467224666006920e46c6990ffb96f5aa2aba5109944685c7db718598adce2 +EBUILD clang-extract-0_pre20241220.ebuild 3081 BLAKE2B 46df524dfa89a487e753818d512144663d872895b2a028fabc7c899562b9d0e0a1cd0d9e1eead1af7cdd8bc213c32ef11136521221d576003bf4fd7e6f5fe050 SHA512 1ae6de3c68422996ad6e3a5e5960fa57f9459bf23a6321e94e843355918859454eae11a803ed4b4d611e420fca1c9ded38309ecebeb5b589afb594fc0eb3b780 +EBUILD clang-extract-9999.ebuild 3081 BLAKE2B 46df524dfa89a487e753818d512144663d872895b2a028fabc7c899562b9d0e0a1cd0d9e1eead1af7cdd8bc213c32ef11136521221d576003bf4fd7e6f5fe050 SHA512 1ae6de3c68422996ad6e3a5e5960fa57f9459bf23a6321e94e843355918859454eae11a803ed4b4d611e420fca1c9ded38309ecebeb5b589afb594fc0eb3b780 MISC metadata.xml 323 BLAKE2B fe3cebcb47898e93e18a41041e641980b9d53d292f77f06eb9c3316be67a5a8fab79d9d0b436401e3eed9b3476e7ef12f9e682e7e967067603103459ba46e999 SHA512 f31bd9d5c30efcca54ee10b22379c7698200e1f57b552f287eba863dedce75a20179b2b4670dfc90726c6c51e3db7decc72b181c8b768272d0f900897e4659e4 diff --git a/dev-util/clang-extract/clang-extract-0_pre20241220.ebuild b/dev-util/clang-extract/clang-extract-0_pre20241220.ebuild new file mode 100644 index 000000000000..cf1c68c0a1ed --- /dev/null +++ b/dev-util/clang-extract/clang-extract-0_pre20241220.ebuild @@ -0,0 +1,115 @@ +# Copyright 2024-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( {16..19} ) +PYTHON_COMPAT=( python3_{10..13} ) +inherit flag-o-matic llvm-r1 meson python-any-r1 + +DESCRIPTION="Tool to extract code content from source files" +HOMEPAGE="https://github.com/SUSE/clang-extract" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://github.com/SUSE/clang-extract.git" + inherit git-r3 +else + CLANG_EXTRACT_COMMIT="8344124f604e2ef9202177f5b9ed61962a37c4dc" + SRC_URI=" + https://github.com/SUSE/clang-extract/archive/${CLANG_EXTRACT_COMMIT}.tar.gz -> ${P}.gh.tar.gz + " + S="${WORKDIR}"/${PN}-${CLANG_EXTRACT_COMMIT} + + KEYWORDS="~amd64" +fi + +LICENSE="UoI-NCSA" +SLOT="0" +IUSE="test" +RESTRICT="!test? ( test )" + +DEPEND=" + app-arch/zstd:= + sys-libs/zlib + virtual/libelf + $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT} + llvm-core/llvm:${LLVM_SLOT} + ') +" +RDEPEND="${DEPEND}" +BDEPEND=" + $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT} + ') + test? ( ${PYTHON_DEPS} ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-meson.patch +) + +pkg_setup() { + use test && python-any-r1_pkg_setup + llvm-r1_pkg_setup +} + +src_prepare() { + default + + # There's no need to manually add --gcc-install-dir to Clang invocations; + # we already have this setup properly via our Clang config files in + # /etc/clang. + sed -i -e '/add_project_argument.*gcc-install-dir/d' meson.build || die + + # Testsuite makes some (bad) assumptions about layout + BUILD_DIR="${S}"/build +} + +src_configure() { + # Use whatever CC/CXX llvm-r1 found for us, as meson.build + # asserts on GCC being used. + export CC=clang + export CXX=clang++ + export PKG_CONFIG_PATH="$(get_llvm_prefix)/$(get_libdir)/pkgconfig:${PKG_CONFIG_PATH}" + # User flags may be expecting GCC + strip-unsupported-flags + + meson_src_configure +} + +src_test() { + # These hacks are inspired by dev-util/clazy. + # + # clang-extract wants to be installed in the directory of the clang binary, + # so it can find the llvm/clang via relative paths. + # + # Setup the directories and symlink the system include dir for that. + local -x LLVM_ROOT="$(get_llvm_prefix)" + local -x CLANG_ROOT="${LLVM_ROOT//llvm/clang}" + + mkdir -p "${BUILD_DIR}${CLANG_ROOT}" || die + ln -s "${CLANG_ROOT}/include" "${BUILD_DIR}${CLANG_ROOT}/include" || die + mkdir -p "${BUILD_DIR}${LLVM_ROOT}/bin" || die + ln -s "${BUILD_DIR}"/clang-extract "${BUILD_DIR}${LLVM_ROOT}/bin" || die + ln -s "${BUILD_DIR}"/ce-inline "${BUILD_DIR}${LLVM_ROOT}/bin" || die + + # Wrap runtest.py so we always pass -bin-path. + # + # This is gnarly but we already have to make sure it uses the + # right Python, so it was quicker to just do the bash wrapper. + mv testsuite/lib/runtest.py{,.real} || die + cat <<-EOF > testsuite/lib/runtest.py || die + #!/bin/bash + export CLANG_NO_DEFAULT_CONFIG=1 + ${EPYTHON} "${S}"/testsuite/lib/runtest.py.real \ + -bin-path "${BUILD_DIR}${LLVM_ROOT}/bin/" \ + "\$@" + EOF + chmod +x testsuite/lib/runtest.py || die + + local -x PATH="${BUILD_DIR}/${LLVM_ROOT}/bin:${BUILD_DIR}/bin:${PATH}" + local -x LD_LIBRARY_PATH="${BUILD_DIR}/lib:${LD_LIBRARY_PATH}" + + meson_src_test +} diff --git a/dev-util/clang-extract/clang-extract-9999.ebuild b/dev-util/clang-extract/clang-extract-9999.ebuild index 0c1d8f39cd8e..cf1c68c0a1ed 100644 --- a/dev-util/clang-extract/clang-extract-9999.ebuild +++ b/dev-util/clang-extract/clang-extract-9999.ebuild @@ -1,9 +1,9 @@ -# Copyright 2024 Gentoo Authors +# Copyright 2024-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -LLVM_COMPAT=( {16..18} ) +LLVM_COMPAT=( {16..19} ) PYTHON_COMPAT=( python3_{10..13} ) inherit flag-o-matic llvm-r1 meson python-any-r1 @@ -14,7 +14,7 @@ if [[ ${PV} == 9999 ]] ; then EGIT_REPO_URI="https://github.com/SUSE/clang-extract.git" inherit git-r3 else - CLANG_EXTRACT_COMMIT="ec46efd739f15ee49f99834ba56c019cbf69e4ed" + CLANG_EXTRACT_COMMIT="8344124f604e2ef9202177f5b9ed61962a37c4dc" SRC_URI=" https://github.com/SUSE/clang-extract/archive/${CLANG_EXTRACT_COMMIT}.tar.gz -> ${P}.gh.tar.gz " |