Install this version:
emerge -a =media-libs/draco-1.5.7
If this version is masked, you can unmask it using the autounmask tool or standard emerge options:
autounmask =media-libs/draco-1.5.7
Or alternatively:
emerge --autounmask-write -a =media-libs/draco-1.5.7
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake
DESCRIPTION="Library for compressing and decompressing 3D geometric meshes and point clouds"
HOMEPAGE="https://google.github.io/draco/ https://github.com/google/draco"
SRC_URI="https://github.com/google/draco/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="Apache-2.0"
# Subslot tracks the SONAME. cmake/draco_build_definitions.cmake sets
# LT_CURRENT=9 / LT_AGE=0, so DRACO_SOVERSION_MAJOR is 9 and the library
# installs as libdraco.so.9. Re-read that file on every version bump: the
# soname moves independently of ${PV}.
SLOT="0/9"
KEYWORDS="~amd64 ~arm64"
# The release tarball carries third_party/{googletest,eigen,filesystem,tinygltf}
# as empty submodule stubs, so DRACO_TESTS cannot be satisfied from it at all.
RESTRICT="test"
PATCHES=(
# Upstream fills draco.pc from the RELATIVE GNUInstallDirs values, so the
# installed file reads "-Iinclude -Llib64" and pkg-config hands consumers
# two paths that do not exist. cmake_src_prepare applies this.
"${FILESDIR}"/${P}-pkgconfig-absolute-paths.patch
)
src_configure() {
local mycmakeargs=(
# Consumers link the imported target draco::draco into shared objects
# of their own -- media-gfx/blender's intern/draco_bridge/ is exactly
# that. With BUILD_SHARED_LIBS=ON, CMakeLists.txt aliases draco::draco
# onto draco_shared; with it OFF the alias points at the static archive
# instead.
-DBUILD_SHARED_LIBS=ON
-DDRACO_INSTALL=ON
-DDRACO_TESTS=OFF
# The transcoder needs the eigen, filesystem and tinygltf submodules,
# none of which ship in the release tarball.
-DDRACO_TRANSCODER_SUPPORTED=OFF
)
cmake_src_configure
}
# DO NOT remove libdraco.a from the image, however unused a static archive on
# a shared build looks. In cmake/draco_install.cmake the
# install(TARGETS draco_static EXPORT dracoExport ...) call is unconditional,
# so draco_static is a member of the exported set even when BUILD_SHARED_LIBS
# is ON, and draco-targets.cmake always references the archive. Deleting it
# breaks find_package(draco) at *configure* time in every consumer with
# "imported target references a file that does not exist".
#
# Likewise, the CMake config lands in /usr/share/cmake/draco rather than
# /usr/$(get_libdir)/cmake/draco: draco_install.cmake hardcodes
# INSTALL_DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/cmake/draco". That is a
# standard find_package search path, so it is left where upstream puts it.
| Type | File | Size | Source URLs |
|---|---|---|---|
| DIST | draco-1.5.7.tar.gz | 60465968 bytes | https://github.com/google/draco/archive/refs/tags/1.5.7.tar.gz |