diff --git a/dev-ada/prettier-ada/Manifest b/dev-ada/prettier-ada/Manifest new file mode 100644 index 0000000000000..b1946280867eb --- /dev/null +++ b/dev-ada/prettier-ada/Manifest @@ -0,0 +1 @@ +DIST prettier-ada-25.0.0.tar.gz 60082 BLAKE2B 7fa18f3557b0f4e031d24421b7e5876477ed9468886e8d74165c7eae3f4ecdba8dfa7efa6ac298b3065b23eff5f531c4194107be6d36aa4153670350f19f3fc0 SHA512 5e31bedf76f6051a1e40a298953d9aa269f24d374b619fba1de934d4b85efc358532d9d695084b41607ae7d8d87bf91f27a151760c1f010782b2af3f64783c6a diff --git a/dev-ada/prettier-ada/metadata.xml b/dev-ada/prettier-ada/metadata.xml new file mode 100644 index 0000000000000..7f40891ad6cdd --- /dev/null +++ b/dev-ada/prettier-ada/metadata.xml @@ -0,0 +1,22 @@ + + + + + ada@gentoo.org + + + Build shared library + Build static library with pic code + + + This project is a port of the Prettier formatter to the Ada programming + language. The aim of this project is to provide a tool that allows Ada + programmers to create formatters for any language of their choosing. + Please note that only the core generic formatting algorithm and its + dependencies were ported. The formatters for all supported languages + are not included in this project. + + + AdaCore/prettier-ada + + diff --git a/dev-ada/prettier-ada/prettier-ada-25.0.0.ebuild b/dev-ada/prettier-ada/prettier-ada-25.0.0.ebuild new file mode 100644 index 0000000000000..426086a341947 --- /dev/null +++ b/dev-ada/prettier-ada/prettier-ada-25.0.0.ebuild @@ -0,0 +1,106 @@ +# Copyright 2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +ADA_COMPAT=( gcc_12 gcc_13 gcc_14 ) +PYTHON_COMPAT=( python3_{10..12} ) + +inherit ada python-any-r1 multiprocessing + +DESCRIPTION="Port of the Prettier formatter to the Ada programming language" +HOMEPAGE="https://github.com/AdaCore/prettier-ada" +SRC_URI="https://github.com/AdaCore/${PN}/archive/refs/tags/v${PV}.tar.gz + -> ${P}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0/${PV}" +KEYWORDS="~amd64" +IUSE="+shared static-libs static-pic test" + +RDEPEND="${ADA_DEPS} + dev-ada/VSS:${SLOT}[${ADA_USEDEP},shared?,static-libs?,static-pic?] + dev-ada/gnatcoll-core:${SLOT}[${ADA_USEDEP},shared?,static-libs?,static-pic?]" +DEPEND="${RDEPEND} + dev-ada/gprbuild[${ADA_USEDEP}]" +BDEPEND="test? ( + $(python_gen_any_dep ' + dev-ada/e3-testsuite[${PYTHON_USEDEP}] + ') +)" + +REQUIRED_USE="${ADA_REQUIRED_USE} + || ( shared static-libs static-pic ) + test? ( static-libs )" +RESTRICT="!test? ( test )" + +python_check_deps() { + use test || return 0 + python_has_version "dev-ada/e3-testsuite[${PYTHON_USEDEP}]" +} + +pkg_setup() { + use test && python-any-r1_pkg_setup + ada_pkg_setup +} + +src_compile() { + build() { + gprbuild \ + -v \ + -k \ + -XLIBRARY_TYPE=$1 \ + -XPRETTIER_ADA_LIBRARY_TYPE=$1 \ + -P prettier_ada.gpr \ + -p \ + -j$(makeopts_jobs) \ + -largs ${LDFLAGS} \ + -cargs ${ADAFLAGS} \ + || die "gprbuild failed" + } + use shared && build relocatable + use static-libs && build static + use static-pic && build static-pic +} + +src_install() { + build() { + gprinstall \ + -XPRETTIER_ADA_LIBRARY_TYPE=$1 \ + -XLIBRARY_TYPE=$1 \ + --prefix="${D}"/usr \ + --install-name=prettier_ada \ + --build-name=$1 \ + --build-var=LIBRARY_TYPE \ + -P prettier_ada.gpr -p -f \ + || die "gprinstall failed" + + } + use shared && build relocatable + use static-libs && build static + use static-pic && build static-pic + einstalldocs +} + +src_test() { + gprbuild \ + -v \ + -k \ + -XLIBRARY_TYPE=static \ + -XPRETTIER_ADA_LIBRARY_TYPE=static \ + -P testsuite/test_programs/test_programs.gpr \ + -p \ + -j$(makeopts_jobs) \ + || die + gprinstall \ + -XLIBRARY_TYPE=static \ + -XPRETTIER_ADA_LIBRARY_TYPE=static \ + --prefix="${TMP}"/usr \ + --install-name=test_programs \ + --mode=usage \ + -P testsuite/test_programs/test_programs.gpr \ + -p \ + -f \ + || die + PATH=${PATH}:"${TMP}"/usr/bin \ + ${EPYTHON} testsuite/testsuite.py || die +} diff --git a/profiles/features/musl/package.mask b/profiles/features/musl/package.mask index 44d71073a0682..c4d4892c0c68d 100644 --- a/profiles/features/musl/package.mask +++ b/profiles/features/musl/package.mask @@ -115,6 +115,7 @@ dev-ada/ada_libfswatch dev-ada/gnatsymbolize dev-ada/AdaSAT dev-ada/lal-refactor +dev-ada/prettier-ada # Sergey Popov (2024-03-05) # games-strategy/seven-kingdoms does not build on musl,