summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lang/micropython/micropython-1.17.ebuild')
-rw-r--r--dev-lang/micropython/micropython-1.17.ebuild66
1 files changed, 66 insertions, 0 deletions
diff --git a/dev-lang/micropython/micropython-1.17.ebuild b/dev-lang/micropython/micropython-1.17.ebuild
new file mode 100644
index 000000000000..16620cf90890
--- /dev/null
+++ b/dev-lang/micropython/micropython-1.17.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs
+
+DESCRIPTION="Python implementation for microcontrollers"
+HOMEPAGE="https://github.com/micropython/micropython"
+SRC_URI="https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz"
+
+KEYWORDS="~amd64 ~arm64 ~x86"
+LICENSE="MIT"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ dev-libs/libffi:=
+ virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}/${P}-prevent-stripping.patch"
+ "${FILESDIR}/${P}-exclude-float-parse-tests.patch"
+ "${FILESDIR}/${P}-gcc13-build-fix.patch"
+)
+
+src_prepare() {
+ default
+
+ cd ports/unix || die
+
+ # 1) don't die on compiler warning
+ # 2) remove /usr/local prefix references in favour of /usr
+ # 3) enforce our CFLAGS
+ # 4) enforce our LDFLAGS
+ sed -e 's#-Werror##g;' \
+ -e 's#\/usr\/local#\/usr#g;' \
+ -e "s#^CFLAGS = \(.*\)#CFLAGS = \1 ${CFLAGS}#g" \
+ -e "s#^LDFLAGS = \(.*\)#LDFLAGS = \1 ${LDFLAGS}#g" \
+ -i Makefile || die "can't patch Makefile"
+}
+
+src_compile() {
+ cd ports/unix || die
+
+ emake CC="$(tc-getCC)" axtls
+ emake CC="$(tc-getCC)"
+}
+
+src_test() {
+ cd ports/unix || die
+ emake CC="$(tc-getCC)" test
+}
+
+src_install() {
+ pushd ports/unix > /dev/null || die
+ emake CC="$(tc-getCC)" DESTDIR="${D}" install
+ popd > /dev/null || die
+
+ # remove .git files
+ find tools -type f -name '.git*' -exec rm {} \; || die
+
+ dodoc -r tools
+ einstalldocs
+}