# 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 ~ppc ~ppc64 ~riscv x86" IUSE="doc samples test" RESTRICT="!test? ( test )" RDEPEND=" sys-libs/zlib[minizip] 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. # bug #891787 (CVE-2022-45748), intentionally not in alphabetic ordering -DASSIMP_BUILD_COLLADA_IMPORTER=OFF -DASSIMP_BUILD_COLLADA_EXPORTER=OFF ) 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 -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 }