dev-lang/swig - 4.5.1 (gentoo)

Search

Install

Install this version:

emerge -a =dev-lang/swig-4.5.1

If this version is masked, you can unmask it using the autounmask tool or standard emerge options:

autounmask =dev-lang/swig-4.5.1

Or alternatively:

emerge --autounmask-write -a =dev-lang/swig-4.5.1

Package Information

Description:
Simplified Wrapper and Interface Generator
Homepage:
https://www.swig.org/ https://github.com/swig/swig
License:
GPL-3+ BSD BSD-2

Ebuild Details

Version EAPI Keywords Slot
4.5.1 8 0
View Raw Ebuild
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

PYTHON_COMPAT=( python3_{12..15} )
inherit flag-o-matic python-any-r1 toolchain-funcs

DESCRIPTION="Simplified Wrapper and Interface Generator"
HOMEPAGE="https://www.swig.org/ https://github.com/swig/swig"
SRC_URI="https://downloads.sourceforge.net/project/swig/swig/${P}/${P}.tar.gz"

LICENSE="GPL-3+ BSD BSD-2"
SLOT="0"
# Temporarily unkeyworded due to breakage in reverse dependencies, bug #983043
#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
IUSE="ccache doc pcre test test-full"
RESTRICT="!test? ( test )"

RDEPEND="
	pcre? ( dev-libs/libpcre2:= )
	ccache? ( virtual/zlib:= )
"
DEPEND="
	${RDEPEND}
	test? ( dev-libs/boost )
"
BDEPEND="
	virtual/pkgconfig
	test? (
		${PYTHON_DEPS}
		test-full? (
			dev-lang/mono
			>=dev-lang/go-1.20
			virtual/jdk
			>=dev-lang/lua-5.1:*
			dev-lang/ocaml
			dev-lang/perl:*
			|| (
				dev-lang/php:8.3
				dev-lang/php:8.2
			)
			dev-lang/R
			dev-lang/tcl
		)
	)
"

DOCS=( ANNOUNCE CHANGES CHANGES.current README TODO )

pkg_setup() {
	use test && python-any-r1_pkg_setup
}

src_configure() {
	# strict aliasing violations in test code
	filter-lto
	append-flags -fno-strict-aliasing

	local myconf=(
		PKGCONFIG="$(tc-getPKG_CONFIG)"
		--without-maximum-compile-warnings
		$(use_enable ccache)
		$(use_with pcre)
		--without-clang-format

		# tests are automagic for many languages otherwise and may be quite brittle
		--without-alllang
		--with-python # installed by default due to portage, significant portion of revdeps use swig for python bindings
	)
	if use test-full; then
		myconf+=(
			--with-csharp
			#--with-d # doesn't accept gcc[d]?
			--with-go
			#--with-guile would need guile-any type support
			--with-java
			#--with-javascript # broken build
			--with-lua
			--with-ocaml
			#--with-octave # broken build
			--with-perl
			--with-perl5="${EPREFIX}/usr/bin/perl"
			--with-php
			--with-r
			#--with-ruby # broken build
			#--with-scilab # not packaged?
			--with-tcl
		)
	fi
	econf "${myconf[@]}"
}

src_compile() {
	# Override these variables per Makefile.in to get verbose logs
	emake FLAGS="-k" RUNPIPE=""
}

src_test() {
	# The tests won't get run w/o an explicit call, broken Makefiles?
	# *-sections for bug #935318
	emake check \
		FLAGS="-k" \
		RUNPIPE="" \
		CFLAGS="${CFLAGS} -ffunction-sections -fdata-sections" \
		CXXFLAGS="${CXXFLAGS} -ffunction-sections -fdata-sections" \
		LDFLAGS="${LDFLAGS}"
}

src_install() {
	default

	if use doc; then
		docinto html
		dodoc -r Doc/{Devel,Manual}
	fi
}

USE Flags

Manage flags for this package: euse -i <flag> -p dev-lang/swig | euse -E <flag> -p dev-lang/swig | euse -D <flag> -p dev-lang/swig

Global/Standard Flags

doc

Inherited Eclasses

Dependencies

DEPEND

	
	pcre? ( dev-libs/libpcre2:= )
	ccache? ( virtual/zlib:= )

	test? ( dev-libs/boost )

RDEPEND

	pcre? ( dev-libs/libpcre2:= )
	ccache? ( virtual/zlib:= )

BDEPEND

	virtual/pkgconfig
	test? (
		${PYTHON_DEPS}
		test-full? (
			dev-lang/mono
			>=dev-lang/go-1.20
			virtual/jdk
			>=dev-lang/lua-5.1:*
			dev-lang/ocaml
			dev-lang/perl:*
			|| (
				dev-lang/php:8.3
				dev-lang/php:8.2
			)
			dev-lang/R
			dev-lang/tcl
		)
	)

Manifest for 4.5.1

Type File Size Source URLs
DIST swig-4.5.1.tar.gz 9191718 bytes https://downloads.sourceforge.net/project/swig/swig/swig-4.5.1/swig-4.5.1.tar.gz