diff options
Diffstat (limited to 'dev-python/pycparser')
| -rw-r--r-- | dev-python/pycparser/Manifest | 1 | ||||
| -rw-r--r-- | dev-python/pycparser/metadata.xml | 13 | ||||
| -rw-r--r-- | dev-python/pycparser/pycparser-2.20.ebuild | 56 |
3 files changed, 70 insertions, 0 deletions
diff --git a/dev-python/pycparser/Manifest b/dev-python/pycparser/Manifest new file mode 100644 index 000000000000..5ec1265d1176 --- /dev/null +++ b/dev-python/pycparser/Manifest @@ -0,0 +1 @@ +DIST pycparser-2.20.tar.gz 161330 BLAKE2B 9a114e4b73e6c3c495bd78c393957146ec425eb5b15d72266cbf424f15e8d2e2e6402ef36d60a9dff41b393aab80fe1356befd25549517f398e129836a76b037 SHA512 ff0853c9f981b43b4f2e879350715c07b02cf9dab223d4980d8fe0a3138c98041b5f848a9355ae4f1cb45e7f137c03a88843008e18d77af9250e0d9c55f5ca1b diff --git a/dev-python/pycparser/metadata.xml b/dev-python/pycparser/metadata.xml new file mode 100644 index 000000000000..5bc7235308a3 --- /dev/null +++ b/dev-python/pycparser/metadata.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>python@gentoo.org</email> + <name>Python</name> + </maintainer> + <upstream> + <remote-id type="pypi">pycparser</remote-id> + <remote-id type="github">eliben/pycparser</remote-id> + </upstream> + <origin>gentoo-staging</origin> +</pkgmetadata> diff --git a/dev-python/pycparser/pycparser-2.20.ebuild b/dev-python/pycparser/pycparser-2.20.ebuild new file mode 100644 index 000000000000..f70df58cbc19 --- /dev/null +++ b/dev-python/pycparser/pycparser-2.20.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python2_7 python3_{6,7,8,9} pypy3 ) + +inherit distutils-r1 + +DESCRIPTION="C parser and AST generator written in Python" +HOMEPAGE="https://github.com/eliben/pycparser" +SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" + +RDEPEND="dev-python/ply:=[${PYTHON_USEDEP}]" +BDEPEND="${RDEPEND} + dev-python/setuptools[${PYTHON_USEDEP}]" + +python_prepare_all() { + # remove the original files to guarantee their regen + rm pycparser/{c_ast,lextab,yacctab}.py || die + + # kill sys.path manipulations to force the tests to use built files + sed -i -e '/sys\.path/d' tests/*.py || die + + distutils-r1_python_prepare_all +} + +python_compile() { + distutils-r1_python_compile + + # note: tables built by py3.5+ are incompatible with older versions + # because of 100 group limit of 're' module -- just generate them + # separately optimized for each target instead + pushd "${BUILD_DIR}"/lib/pycparser > /dev/null || die + "${PYTHON}" _build_tables.py || die + popd > /dev/null || die +} + +python_test() { + # Skip tests if cpp is not in PATH + type -P cpp >/dev/null || return 0 + # change workdir to avoid '.' import + cd tests || die + "${EPYTHON}" -m unittest discover -v || die "Tests fail with ${EPYTHON}" +} + +python_install() { + distutils-r1_python_install + + # setup.py generates {c_ast,lextab,yacctab}.py with bytecode disabled. + python_optimize +} |
