Install this version:
emerge -a =sci-mathematics/cgal-6.1.1
If this version is masked, you can unmask it using the autounmask tool or standard emerge options:
autounmask =sci-mathematics/cgal-6.1.1
Or alternatively:
emerge --autounmask-write -a =sci-mathematics/cgal-6.1.1
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# Modules provided by dev-cpp/eigen
CMAKE_REMOVE_MODULES_LIST=( FindEigen3 )
inherit cmake cuda flag-o-matic multiprocessing
DESCRIPTION="C++ library for geometric algorithms and data structures"
HOMEPAGE="https://www.cgal.org/"
if [[ ${PV} == *9999* ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/${PN^^}/${PN}.git"
else
SRC_URI="
https://github.com/CGAL/cgal/releases/download/v${PV}/${P^^}.tar.xz
doc? (
https://github.com/CGAL/cgal/releases/download/v${PV}/${P^^}-doc_html.tar.xz
)
"
S="${WORKDIR}/${P^^}"
KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
fi
LICENSE="LGPL-3 GPL-3 Boost-1.0"
SLOT="0/14"
IUSE="doc test test-full"
RESTRICT="!test? ( test )"
# Referenced in the cmake files.
RDEPEND="
dev-cpp/eigen:=
dev-libs/boost:=
dev-libs/gmp:=[cxx]
dev-libs/mpfr:=
virtual/zlib:=
"
DEPEND="${RDEPEND}
test? (
net-libs/libssh[server]
)
"
BDEPEND="
virtual/pkgconfig
"
src_prepare() {
if use doc; then
rm -r "doc_html" || die
mv "${WORKDIR}/doc_html" "${S}/" || die
fi
cmake_src_prepare
}
src_configure() {
# Header only since 5.0
local mycmakeargs=(
-DCMAKE_POLICY_DEFAULT_CMP0167="NEW"
-DCGAL_INSTALL_LIB_DIR="$(get_libdir)"
-DCGAL_INSTALL_CMAKE_DIR="$(get_libdir)/cmake/CGAL"
# https://github.com/CGAL/cgal/wiki/Testing#using-ctest
-DCGAL_ENABLE_TESTING="$(usex test)"
# Forcibly wipe to get rid of NDEBUG. see below
-DCMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE^^}=""
)
if use test; then
# include/CGAL/config.h:53:4: error: #error The test-suite needs no NDEBUG defined
filter-flags -DNDEBUG*
# cmake/modules/display-third-party-libs-versions.cmake
# these need use flags eventually
local deps=(
VTK
)
deps+=(
# Ceres
# GLPK
# # GMP
# ITK
# ITT
# LASLIB
# libpointmatcher
# METIS
# MPFI
# # MPFR
# OpenCV
# OpenGR
# OSQP
# SCIP
# SuiteSparse
# TBB
# # VTK
# # ZLIB
# # LEDA # unused
# # MKL
# # RS
# # RS3
# SCIP
# # UMFPACK
# Eigen3
Qt6
# # ESBTL # unused
# # IPE # unused
# # LibSSH # unused
OpenMesh
)
if use test-full; then
# Optionally depends on sci-lib/vtk, which looks up a cuda compiler iff build with USE=cuda.
# We therefore need to set the correct CUDAHOSTCXX and setup the sandbox.
if has_version "sci-libs/vtk[cuda]" ; then
cuda_add_sandbox
addpredict "/dev/char/"
local -x CUDAHOSTCXX="$(cuda_gccdir)"
fi
else
deps+=(
# Threads
# Boost
)
fi
mycmakeargs+=(
-DCGAL_CTEST_DISPLAY_MEM_AND_TIME="yes"
# exits some tests early
-DCGAL_TEST_SUITE="yes"
-DCGAL_TEST_DRAW_FUNCTIONS="yes"
-DCGAL_DISABLE_GMP="no"
# -DCGAL_WITH_benchmark="$(usex test "$(usex benchmark)")" # wired up but not present
-DCGAL_WITH_demos="$(usex test "$(usex test-full)")"
-DCGAL_WITH_examples="$(usex test "$(usex test-full)")"
)
if [[ -n "${deps[@]}" ]]; then
mycmakeargs+=(
# 964750
# this does not work as demos and examples are separate cmake calls that ignore mycmakeargs
$(printf -- "-DCMAKE_DISABLE_FIND_PACKAGE_%s=yes " "${deps[@]}")
)
fi
fi
cmake_src_configure
}
src_compile() {
if use test; then
local targets=(
ALL_CGAL_TARGETS
)
if use test-full; then
targets+=(
demos
examples
)
fi
cmake_src_compile "${targets[@]}"
fi
}
src_test() {
# tests have split compilation & execution stages that do not depend on each other, but break when run out of order
# We pass CMAKE_BUILD_PARALLEL_LEVEL to run compilation tests in parallel
local -x CMAKE_BUILD_PARALLEL_LEVEL="$(get_makeopts_jobs)"
einfo "using CMAKE_BUILD_PARALLEL_LEVEL=${CMAKE_BUILD_PARALLEL_LEVEL}"
# We pass CTEST_PARALLEL_LEVEL to run execution tests in parallel
local -x CTEST_PARALLEL_LEVEL="$(get_makeopts_jobs)"
einfo "using CTEST_PARALLEL_LEVEL=${CTEST_PARALLEL_LEVEL}"
local -x QT_QPA_PLATFORM="offscreen"
local CMAKE_SKIP_TESTS=(
region_growing_planes_on_point_set_3
mesh_3D_image_with_image_initialization
)
cmake_src_test -j1
}
src_install() {
if use doc; then
local HTML_DOCS=(
"doc_html/."
)
fi
cmake_src_install
# if use demos; then
# dodoc -r demo
# fi
# if use examples; then
# dodoc -r examples
# fi
}
Manage flags for this package:
euse -i <flag> -p sci-mathematics/cgal |
euse -E <flag> -p sci-mathematics/cgal |
euse -D <flag> -p sci-mathematics/cgal
dev-cpp/eigen:= dev-libs/boost:= dev-libs/gmp:=[cxx] dev-libs/mpfr:= virtual/zlib:= test? ( net-libs/libssh[server] )
dev-cpp/eigen:= dev-libs/boost:= dev-libs/gmp:=[cxx] dev-libs/mpfr:= virtual/zlib:=
virtual/pkgconfig
| Type | File | Size | Source URLs |
|---|---|---|---|
| DIST | CGAL-6.1.1-doc_html.tar.xz | 65520064 bytes | https://github.com/CGAL/cgal/releases/download/v6.1.1/CGAL-6.1.1-doc_html.tar.xz |
| DIST | CGAL-6.1.1.tar.xz | 26305296 bytes | https://github.com/CGAL/cgal/releases/download/v6.1.1/CGAL-6.1.1.tar.xz |