summaryrefslogtreecommitdiff
path: root/dev-haskell/cryptonite/cryptonite-0.30.ebuild
blob: e32cfe9178c83c0acade7c0e11d02938a3a529e6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

# ebuild generated by hackport 0.7.2.2.9999
#hackport: flags: -check_alignment,-old_toolchain_inliner,+support_deepseq,support_aesni:cpu_flags_x86_aes,support_pclmuldq:cpu_flags_x86_sse4_1,support_sse:cpu_flags_x86_sse,support_rdrand:cpu_flags_x86_rdrand

CABAL_FEATURES="lib profile haddock hoogle hscolour test-suite"
inherit flag-o-matic haskell-cabal

DESCRIPTION="Cryptography Primitives sink"
HOMEPAGE="https://github.com/haskell-crypto/cryptonite"

LICENSE="BSD"
SLOT="0/${PV}"
KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
IUSE="cpu_flags_x86_aes cpu_flags_x86_rdrand cpu_flags_x86_sse cpu_flags_x86_sse4_1 +integer-gmp +target-attributes"

RDEPEND=">=dev-lang/ghc-8.4.3:=
	>=dev-haskell/memory-0.14.18:=[profile?]
	>=dev-haskell/basement-0.0.6:=[profile?]
"
DEPEND="${RDEPEND}
	>=dev-haskell/cabal-2.2.0.1
	test? ( dev-haskell/tasty
			dev-haskell/tasty-hunit
			dev-haskell/tasty-kat
			dev-haskell/tasty-quickcheck )
"

src_prepare() {
	default

	# On AVX2 cryptonite's own test suite crashes on unaligned access:
	# https://github.com/haskell-crypto/cryptonite/issues/347
	# Disable extensions that might require extra alignment.
	use amd64 && append-flags -mno-avx2
	use x86 && append-flags -mno-avx2
}

src_configure() {
	haskell-cabal_src_configure \
		--flag=-check_alignment \
		$(cabal_flag integer-gmp integer-gmp) \
		--flag=-old_toolchain_inliner \
		$(cabal_flag cpu_flags_x86_aes support_aesni) \
		--flag=support_deepseq \
		$(cabal_flag cpu_flags_x86_sse4_1 support_pclmuldq) \
		$(cabal_flag cpu_flags_x86_rdrand support_rdrand) \
		$(cabal_flag cpu_flags_x86_sse support_sse) \
		$(cabal_flag target-attributes use_target_attributes)
}