blob: ca6c5eae4ed87fea2e64914323ff021e4e2eadf6 (
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
|
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake
DESCRIPTION="Importer library to import assets from 3D files"
HOMEPAGE="https://github.com/assimp/assimp"
SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD"
SLOT="0/${PV}"
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
IUSE="collada doc samples test"
RESTRICT="!test? ( test )"
RDEPEND="
sys-libs/zlib[minizip]
collada? ( media-libs/opencollada )
doc? ( app-text/doxygen )
samples? (
media-libs/freeglut
media-libs/libglvnd
)
test? (
dev-cpp/gtest
)
"
DEPEND="${RDEPEND}"
PATCHES=(
"${FILESDIR}/${PN}-5.2.5-gtest.patch"
"${FILESDIR}/${PN}-5.2.5-float-comparison.patch"
)
DOCS=( CodeConventions.md Readme.md )
src_prepare() {
sed -r \
-e "s#PROJECT\(Assimp VERSION [0-9]+\.[0-9]+\.[0-9]+\)#PROJECT(Assimp VERSION ${PV})#g" \
-i CMakeLists.txt || die
sed -r \
-e "s#EXPECT_EQ\(aiGetVersionPatch\(\), [0-9]+U \);#EXPECT_EQ(aiGetVersionPatch(), $(ver_cut 3)U );#g" \
-e "s#EXPECT_NE\( aiGetVersionRevision#EXPECT_EQ\( aiGetVersionRevision#g" \
-i test/unit/utVersion.cpp || die
sed \
-e "s# -g -O0 # #g" \
-i \
cmake-modules/Coveralls.cmake \
contrib/android-cmake/android.toolchain.cmake \
contrib/openddlparser/CMakeLists.txt \
CMakeLists.txt \
|| die
sed -r \
-e "s#(PROJECT_NUMBER *= \").*\"#\1v${PV}\"#g" \
-e "s#(GENERATE_XML *= )(YES|NO)#\1NO#g" \
-e "s#(GENERATE_HTML *= )(YES|NO)#\1YES#g" \
-i doc/Doxyfile.in || die
sed -r \
-e "s#AssimpDoc_Html(/AnimationOverview)#architecture\1#g" \
-e "s#AssimpDoc_Html(/dragonsplash)#images\1#g" \
-i doc/CMakeLists.txt || die
cmake_src_prepare
}
src_configure() {
local mycmakeargs=(
# -DASSIMP_ASAN=yes # Enable AddressSanitizer.
-DASSIMP_BUILD_ASSIMP_TOOLS=yes # If the supplementary tools for Assimp are built in addition to the library.
-DASSIMP_BUILD_DOCS=$(usex doc) # Build documentation using Doxygen.
# -DASSIMP_BUILD_DRACO=no # If the Draco libraries are to be built. Primarily for glTF
# -DASSIMP_BUILD_NONFREE_C4D_IMPORTER=no # Build the C4D importer, which relies on the non-free Cineware SDK.
-DASSIMP_BUILD_SAMPLES=$(usex samples) # If the official samples are built as well (needs Glut).
-DASSIMP_BUILD_TESTS=$(usex test) # If the test suite for Assimp is built in addition to the library.
-DASSIMP_BUILD_ZLIB=no # Build your own zlib
-DASSIMP_COVERALLS=$(usex test) # Enable this to measure test coverage.
# breaks tests
# -DASSIMP_DOUBLE_PRECISION=no # Set to yes to enable double precision processing
# -DASSIMP_HUNTER_ENABLED=no # Enable Hunter package manager support
-DASSIMP_IGNORE_GIT_HASH=yes # Don't call git to get the hash.
-DASSIMP_INJECT_DEBUG_POSTFIX=no # Inject debug postfix in .a/.so/.dll lib names
# -DASSIMP_INSTALL=yes # Disable this if you want to use assimp as a submodule.
# -DASSIMP_LIBRARY_SUFFIX= # Suffix to append to library names
# -DASSIMP_NO_EXPORT=no # Disable Assimp's export functionality.
# -DASSIMP_OPT_BUILD_PACKAGES=no # Set to yes to generate CPack configuration files and packaging targets
-DASSIMP_RAPIDJSON_NO_MEMBER_ITERATOR=no # Suppress rapidjson warning on MSVC (NOTE: breaks android build)
# -DASSIMP_UBSAN=yes # Enable Undefined Behavior sanitizer.
-DASSIMP_WARNINGS_AS_ERRORS=no # Treat all warnings as errors.
# -DBUILD_SHARED_LIBS=yes # Build package with shared libraries.
-DASSIMP_BUILD_COLLADA_IMPORTER="$(use collada)"
-DASSIMP_BUILD_COLLADA_EXPORTER="$(use collada)"
)
if use doc; then
mycmakeargs+=(
-DHTML_OUTPUT="html"
)
fi
if use samples; then
mycmakeargs+=(
-DOpenGL_GL_PREFERENCE="GLVND"
)
fi
if use test; then
# adds the target headercheck which compiles every header file, default disabled because it adds many targets
mycmakeargs+=(
-DASSIMP_HEADERCHECK="$(usex test)"
)
fi
cmake_src_configure
}
src_test() {
local CMAKE_SKIP_TESTS=(
# ( Failed )
"^utCollada.*"
"^utIssues.OpacityBugWhenExporting_727$"
)
myctestargs+=(
--repeat until-pass:100
)
cmake_src_test
}
|