summaryrefslogtreecommitdiff
blob: c55b57c6af946b7629343344181894958ba7d984 (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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/media-gfx/nvidia-cg-toolkit/nvidia-cg-toolkit-3.1.0013-r2.ebuild,v 1.1 2012/11/19 11:33:23 jlec Exp $

EAPI=5

inherit multilib prefix versionator

MY_PV="$(get_version_component_range 1-2)"
MY_DATE="April2012"

DESCRIPTION="NVIDIA's C graphics compiler toolkit"
HOMEPAGE="http://developer.nvidia.com/object/cg_toolkit.html"
X86_URI="http://developer.download.nvidia.com/cg/Cg_${MY_PV}/Cg-${MY_PV}_${MY_DATE}_x86.tgz"
SRC_URI="
	amd64? (
		http://developer.download.nvidia.com/cg/Cg_${MY_PV}/Cg-${MY_PV}_${MY_DATE}_x86_64.tgz
		multilib? ( ${X86_URI} )
		)
	x86? ( ${X86_URI} )"

LICENSE="NVIDIA"
SLOT="0"
KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
IUSE="doc examples multilib"

RESTRICT="strip"

RDEPEND="
	media-libs/freeglut
	multilib? ( amd64? ( app-emulation/emul-linux-x86-xlibs ) )
	x86? ( virtual/libstdc++:3.3 )"
DEPEND=""

S=${WORKDIR}

DEST=/opt/${PN}

QA_PREBUILT="${DEST}/*"

src_unpack() {
	local i
	if use multilib && use amd64; then
		mkdir {32,64}bit || die
		for i in $A; do
			if [[ "$i" =~ .*x86_64.* ]]; then
				pushd 64bit > /dev/null
				unpack "$i"
				popd > /dev/null
			else
				pushd 32bit > /dev/null
				unpack "$i"
				popd > /dev/null
			fi
		done
	else
		default
	fi
}

install_pkgconfig() {
	# Two args: .pc file + abi
	local suffix
	use amd64 && use multilib && [[ $2 == x86 ]] && suffix="-32"
	insinto /usr/$(get_libdir)/pkgconfig
	sed \
		-e "s:GENTOO_LIBDIR:$(ABI=$2 get_libdir):g" \
		-e "s:DESCRIPTION:${DESCRIPTION}:g" \
		-e "s:VERSION:${PV}:g" \
		-e "s|HOMEPAGE|${HOMEPAGE}|g" \
		-e "s:SUFFIX:${suffix}:g" \
		"${FILESDIR}/${1}.in" > "${T}/${1/.pc/${suffix}.pc}" || die
		eprefixify "${T}/${1/.pc/${suffix}.pc}"
	doins "${T}/${1/.pc/${suffix}.pc}"
}

src_install() {
	local ldpath
	into ${DEST}
	if use multilib && use amd64; then
		cd 64bit
	fi

	dobin usr/bin/{cgc,cgfxcat,cginfo}

	if use x86; then
		dolib usr/lib/*
		ldpath="${EPREFIX}${DEST}/$(get_libdir)"
		install_pkgconfig nvidia-cg-toolkit.pc x86
		install_pkgconfig nvidia-cg-toolkit-gl.pc x86
	elif use amd64; then
		dolib usr/lib64/*
		ldpath="${EPREFIX}${DEST}/$(get_libdir)"
		install_pkgconfig nvidia-cg-toolkit.pc amd64
		install_pkgconfig nvidia-cg-toolkit-gl.pc amd64
		if use multilib; then
			ldpath+=":${EPREFIX}${DEST}/lib32"
			pushd ../32bit > /dev/null
			ABI="x86" dolib usr/lib/*
			popd > /dev/null
			install_pkgconfig nvidia-cg-toolkit.pc x86
			install_pkgconfig nvidia-cg-toolkit-gl.pc x86
		fi
	fi

	sed \
		-e "s|ELDPATH|${ldpath}|g" \
		"${FILESDIR}"/80cgc-opt-2 > "${T}"/80cgc-opt || die
	eprefixify "${T}"/80cgc-opt
	doenvd "${T}"/80cgc-opt

	insinto ${DEST}/include
	doins -r usr/include/Cg

	insinto ${DEST}
	dodoc usr/local/Cg/README
	if use doc; then
		dodoc usr/local/Cg/docs/*.{txt,pdf}
		dohtml -r usr/local/Cg/docs/html/*
	fi
	if use examples; then
		insinto /usr/share/${PN}
		doins -r usr/local/Cg/examples
	fi
	find usr/local/Cg/{docs,examples,README} -delete
}

pkg_postinst() {
	if [[ ${REPLACING_VERSIONS} < 2.1.0016 ]]; then
		einfo "Starting with ${CATEGORY}/${PN}-2.1.0016, ${PN} is installed in"
		einfo "${DEST}. Packages might have to add something like:"
		einfo "  append-cppflags -I${DEST}/include"
	fi
}