diff options
author | Michael Haubenwallner <haubi@gentoo.org> | 2020-03-09 15:40:15 +0100 |
---|---|---|
committer | Michael Haubenwallner <haubi@gentoo.org> | 2020-03-09 15:55:27 +0100 |
commit | b78bd34e77ae5d95572423c0cb121c6aae4cda95 (patch) | |
tree | d539d90bccda0bcb4b5efbf11d5a0e36d715fba6 /dev-libs/pthreads4w | |
parent | sys-devel/parity: upstream changed arch names; drop _ in USE (diff) | |
download | gentoo-b78bd34e77ae5d95572423c0cb121c6aae4cda95.tar.gz gentoo-b78bd34e77ae5d95572423c0cb121c6aae4cda95.tar.bz2 gentoo-b78bd34e77ae5d95572423c0cb121c6aae4cda95.zip |
dev-libs/pthreads4w: new: pthreads for native Win32
Package-Manager: Portage-2.3.84, Repoman-2.3.20
Signed-off-by: Michael Haubenwallner <haubi@gentoo.org>
Diffstat (limited to 'dev-libs/pthreads4w')
-rw-r--r-- | dev-libs/pthreads4w/Manifest | 1 | ||||
-rw-r--r-- | dev-libs/pthreads4w/metadata.xml | 12 | ||||
-rw-r--r-- | dev-libs/pthreads4w/pthreads4w-3.0.0.ebuild | 69 |
3 files changed, 82 insertions, 0 deletions
diff --git a/dev-libs/pthreads4w/Manifest b/dev-libs/pthreads4w/Manifest new file mode 100644 index 000000000000..b6ffdf2e8853 --- /dev/null +++ b/dev-libs/pthreads4w/Manifest @@ -0,0 +1 @@ +DIST pthreads4w-code-v3.0.0.zip 862409 BLAKE2B cd23103c92f8eaa2088fdd68cfc94655771d44c365ca32180395cdb8645b570c2f65620d3c2969671a48c6ac45889bc439f3490dc7ec2497dfeca9f758cda6cd SHA512 49e541b66c26ddaf812edb07b61d0553e2a5816ab002edc53a38a897db8ada6d0a096c98a9af73a8f40c94283df53094f76b429b09ac49862465d8697ed20013 diff --git a/dev-libs/pthreads4w/metadata.xml b/dev-libs/pthreads4w/metadata.xml new file mode 100644 index 000000000000..30aaf1fdc57c --- /dev/null +++ b/dev-libs/pthreads4w/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>haubi@gentoo.org</email> + <name>Michael Haubenwallner</name> + </maintainer> + <longdescription lang="en"> + Also known as "pthreads-win32", POSIX Threads for Windows implements a large + subset of the threads related API from the Single Unix Specification Version 3. + </longdescription> +</pkgmetadata> diff --git a/dev-libs/pthreads4w/pthreads4w-3.0.0.ebuild b/dev-libs/pthreads4w/pthreads4w-3.0.0.ebuild new file mode 100644 index 000000000000..3403767ab1f4 --- /dev/null +++ b/dev-libs/pthreads4w/pthreads4w-3.0.0.ebuild @@ -0,0 +1,69 @@ +# Copyright 2019-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +DESCRIPTION="POSIX Threads for Windows" +HOMEPAGE="http://pthreads4w.sourceforge.net/" +SRC_URI="mirror://sourceforge/${PN}/${PN}-code-v${PV}.zip" + +LICENSE="LGPL-2" +SLOT="0" +KEYWORDS="~x86-winnt" +IUSE="" + +DEPEND="" +RDEPEND="${DEPEND}" +BDEPEND="sys-devel/parity" + +S=${WORKDIR}/${PN}-code-07053a521b0a9deb6db2a649cde1f828f2eb1f4f + +src_compile() { + # from pthreads.h: + # Note: Unless the build explicitly defines one of the following, then + # we default to standard C style cleanup. This style uses setjmp/longjmp + # in the cancellation and thread exit implementations and therefore won't + # do stack unwinding if linked to applications that have it (e.g. + # C++ apps). This is currently consistent with most/all commercial Unix + # POSIX threads implementations. + local variant="VC" # C style cleanup + + case ${CHOST} in + *-libcmtd*) variant+="-static-debug" ;; + *-libcmt*) variant+="-static" ;; + *-msvcd*) variant+="-debug" ;; + *-msvc*) ;; + esac + + case ${CHOST} in + x86_64-*) variant+=" TARGET_CPU=x64" ;; + i?86-*) variant+=" TARGET_CPU=x86" ;; + esac + + ${CHOST}-nmake -f Makefile ${variant} || die +} + +src_install() { + local V=$(ver_cut 1) + case ${CHOST} in + *-libcmtd*|*-msvcd*) V+="d" ;; # debug CRT + esac + case ${CHOST} in + *-libcmt*) # static CRT + dolib.so libpthreadVC${V}.lib + newlib.so libpthreadVC${V}.lib libpthread.lib # for -lpthread + ;; + *-msvc*) # dynamic CRT + dobin pthreadVC${V}.dll + dolib.so pthreadVC${V}.lib + newlib.so pthreadVC${V}.lib pthread.lib # for -lpthread + ;; + esac + insinto /usr/include + doins {pthread,sched,semaphore,_ptw32}.h + einstalldocs +} + +src_test() { + ${CHOST}-nmake -DEXHAUSTIVE all-tests || die +} |