1SUMMARY="A thin layer of graphic data types"
2DESCRIPTION="When creating graphic libraries you most likely end up dealing with points and \
3rectangles. If you're particularly unlucky, you may end up dealing with affine matrices and 2D \
4transformations. If you're writing a graphic library with 3D transformations, though, you are \
5going to hit the jackpot: 4x4 matrices, projections, transformations, vectors, and quaternions.
6
7Most of this stuff exists, in various forms, in other libraries, but it has the major drawback of \
8coming along with the rest of those libraries, which may or may not be what you want. Those \
9libraries are also available in various languages, as long as those languages are C++; again, it \
10may or may not be something you want.
11
12For this reason, I decided to write the thinnest, smallest possible layer needed to write a \
13canvas library; given its relative size, and the propensity for graphics libraries to have a pun \
14in their name, I decided to call it Graphene.
15
16This library provides types and their relative API; it does not deal with windowing system \
17surfaces, drawing, scene graphs, or input. You are supposed to do that yourself, in your own \
18canvas implementation, which is the whole point of writing the library in the first place."
19HOMEPAGE="https://ebassi.github.io/graphene/"
20COPYRIGHT="2014-2018 Emmanuele Bassi"
21LICENSE="MIT"
22REVISION="1"
23SOURCE_URI="https://github.com/ebassi/graphene/archive/refs/tags/$portVersion.tar.gz"
24CHECKSUM_SHA256="922dc109d2dc5dc56617a29bd716c79dd84db31721a8493a13a5f79109a4a4ed"
25srcGitRev_2="f0dcb2a48a4a8ef3dc1f7327bb0d4056a798c1a7"
26SOURCE_URI_2="https://github.com/ebassi/mutest/archive/$srcGitRev_2.tar.gz"
27CHECKSUM_SHA256_2="8e5728113f7247bd6f6655dae94642f646c03b747f44724a6dc2e5f95a627d99"
28
29ARCHITECTURES="all !x86_gcc2"
30SECONDARY_ARCHITECTURES="x86"
31
32libVersion="0.1000.8"
33libVersionCompat="$libVersion compat >= ${libVersion%%.*}"
34
35PROVIDES="
36	graphene$secondaryArchSuffix = $portVersion
37	lib:libgraphene_1.0$secondaryArchSuffix = $libVersionCompat
38	"
39REQUIRES="
40	haiku$secondaryArchSuffix
41	lib:libglib_2.0$secondaryArchSuffix
42	lib:libgobject_2.0$secondaryArchSuffix
43	"
44
45PROVIDES_devel="
46	graphene${secondaryArchSuffix}_devel = $portVersion
47	devel:libgraphene_1.0$secondaryArchSuffix = $libVersionCompat
48	"
49REQUIRES_devel="
50	graphene$secondaryArchSuffix == $portVersion base
51	"
52
53BUILD_REQUIRES="
54	haiku${secondaryArchSuffix}_devel
55	devel:libgirepository_1.0$secondaryArchSuffix
56	devel:libglib_2.0$secondaryArchSuffix
57	devel:libgobject_2.0$secondaryArchSuffix
58	"
59BUILD_PREREQUIRES="
60	cmd:cmake
61	cmd:gcc$secondaryArchSuffix
62	cmd:gtkdoc_scan
63	cmd:meson
64	cmd:ninja
65	cmd:pkg_config$secondaryArchSuffix
66	cmd:python3
67	pygments_python310
68	"
69
70BUILD()
71{
72	cp -r $sourceDir2/mutest-$srcGitRev_2/* subprojects/mutest
73	meson --buildtype release \
74		--prefix $prefix \
75		--bindir $binDir \
76		--datadir $dataDir \
77		--includedir $includeDir \
78		--libdir $libDir \
79		--default-library shared \
80		-Dgtk_doc=true \
81		-Dintrospection=enabled \
82		-Dinstalled_tests=false \
83		build
84	ninja -C build $jobArgs
85}
86
87INSTALL()
88{
89	ninja -C build install
90
91	# move header to $includeDir develop/lib/graphene-1.0/include
92	mkdir -p $developLibDir
93	mv $libDir/graphene-1.0 $developLibDir
94
95	mkdir -p $dataDir
96	mv $prefix/share/* $dataDir
97	rm -rf $prefix/share
98
99	prepareInstalledDevelLib \
100		libgraphene-1.0
101	fixPkgconfig
102
103	packageEntries devel \
104		$developDir
105}
106