mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-02 11:38:07 -07:00
... to avoid installing broken static libraries w/ LTO. Signed-off-by: Nicolas PARLANT <nicolas.parlant@parhuet.fr> Part-of: https://codeberg.org/gentoo/gentoo/pulls/492 Merges: https://codeberg.org/gentoo/gentoo/pulls/492 Signed-off-by: Sam James <sam@gentoo.org>
171 lines
3.9 KiB
Bash
171 lines
3.9 KiB
Bash
# Copyright 1999-2026 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=8
|
|
|
|
PYTHON_COMPAT=( python3_{11..14} )
|
|
VALA_USE_DEPEND="vapigen"
|
|
inherit cmake dot-a python-any-r1 toolchain-funcs vala
|
|
|
|
DESCRIPTION="Implementation of basic iCAL protocols"
|
|
HOMEPAGE="https://github.com/libical/libical"
|
|
SRC_URI="https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.gz"
|
|
|
|
LICENSE="|| ( MPL-2.0 LGPL-2.1 )"
|
|
SLOT="0/3"
|
|
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~sparc x86"
|
|
IUSE="doc examples +glib +introspection static-libs test vala"
|
|
|
|
REQUIRED_USE="introspection? ( glib ) vala? ( introspection )"
|
|
RESTRICT="!test? ( test )"
|
|
|
|
DEPEND="
|
|
dev-libs/icu:=
|
|
glib? (
|
|
dev-libs/glib:2
|
|
dev-libs/libxml2:2=
|
|
)
|
|
"
|
|
RDEPEND="${DEPEND}
|
|
sys-libs/timezone-data
|
|
"
|
|
BDEPEND="
|
|
dev-lang/perl
|
|
virtual/pkgconfig
|
|
doc? (
|
|
app-text/doxygen[dot]
|
|
glib? ( dev-util/gtk-doc )
|
|
)
|
|
introspection? ( >=dev-libs/gobject-introspection-1.82.0-r2 )
|
|
test? (
|
|
${PYTHON_DEPS}
|
|
glib? ( $(python_gen_any_dep 'dev-python/pygobject:3[${PYTHON_USEDEP}]') )
|
|
)
|
|
vala? ( $(vala_depend) )
|
|
"
|
|
# to build native ical-glib-src-generator w/ cross-compile
|
|
BDEPEND+="
|
|
glib? (
|
|
dev-libs/glib:2
|
|
dev-libs/libxml2:2
|
|
)
|
|
"
|
|
|
|
DOCS=(
|
|
AUTHORS README.md ReleaseNotes.txt TEST THANKS TODO
|
|
doc/{AddingOrModifyingComponents.txt,UsingLibical.md}
|
|
)
|
|
|
|
PATCHES=(
|
|
"${FILESDIR}/${PN}-3.0.11-pkgconfig-libdir.patch"
|
|
"${FILESDIR}/${P}-cmake-minreqver-3.20.patch" # bug 964491
|
|
)
|
|
|
|
python_check_deps() {
|
|
python_has_version "dev-python/pygobject:3[${PYTHON_USEDEP}]"
|
|
}
|
|
|
|
pkg_setup() {
|
|
use test && python-any-r1_pkg_setup
|
|
}
|
|
|
|
src_prepare() {
|
|
cmake_src_prepare
|
|
use vala && vala_setup
|
|
}
|
|
|
|
src_configure() {
|
|
if tc-is-cross-compiler && use glib; then
|
|
einfo "Building the native ical-glib-src-generator..."
|
|
|
|
BUILD_NATIVE="${WORKDIR}/${P}_build_native"
|
|
GENERATOR_BIN_DIR="${BUILD_NATIVE}/src/libical-glib/libexec/libical"
|
|
|
|
local mycmakeargs=(
|
|
-DCMAKE_DISABLE_FIND_PACKAGE_BerkeleyDB=ON
|
|
-DICAL_BUILD_DOCS=OFF
|
|
-DLIBICAL_BUILD_EXAMPLES=OFF
|
|
-DGOBJECT_INTROSPECTION=OFF
|
|
-DLIBICAL_BUILD_TESTING=OFF
|
|
-DICAL_GLIB_VAPI=OFF
|
|
-DICAL_GLIB=ON
|
|
)
|
|
|
|
BUILD_DIR="${BUILD_NATIVE}" tc-env_build cmake_src_configure
|
|
|
|
# configure for CHOST requires a cmake...
|
|
local native_gen=$(
|
|
find "${BUILD_NATIVE}" -type f -name IcalGlibSrcGenerator.cmake -print
|
|
)
|
|
# ... and a valid path. This empty file is fine for now.
|
|
mkdir -p "${GENERATOR_BIN_DIR}" || die
|
|
touch "${GENERATOR_BIN_DIR}"/ical-glib-src-generator || die
|
|
fi
|
|
|
|
use static-libs && lto-guarantee-fat
|
|
|
|
# fix gtk-doc, see https://bugs.gentoo.org/777090
|
|
# to check w/ 4.0 and migration to gi-docgen
|
|
export LD="$(tc-getCC)"
|
|
|
|
local mycmakeargs=(
|
|
-DCMAKE_DISABLE_FIND_PACKAGE_BerkeleyDB=ON
|
|
-DICAL_BUILD_DOCS=$(usex doc)
|
|
-DLIBICAL_BUILD_EXAMPLES=$(use examples)
|
|
-DICAL_GLIB=$(usex glib)
|
|
-DGOBJECT_INTROSPECTION=$(usex introspection)
|
|
-DSHARED_ONLY=$(usex !static-libs)
|
|
-DLIBICAL_BUILD_TESTING=$(usex test)
|
|
-DICAL_GLIB_VAPI=$(usex vala)
|
|
)
|
|
|
|
if tc-is-cross-compiler && use glib; then
|
|
mycmakeargs+=(
|
|
-DIMPORT_ICAL_GLIB_SRC_GENERATOR="${native_gen}"
|
|
)
|
|
fi
|
|
|
|
if use vala; then
|
|
mycmakeargs+=(
|
|
-DVALAC="${VALAC}"
|
|
-DVAPIGEN="${VAPIGEN}"
|
|
)
|
|
fi
|
|
cmake_src_configure
|
|
}
|
|
|
|
src_compile() {
|
|
# build the native ical-glib-src-generator and place it where it's expected
|
|
if tc-is-cross-compiler && use glib; then
|
|
BUILD_DIR="${BUILD_NATIVE}" tc-env_build cmake_build ical-glib-src-generator
|
|
ln -sfT "${BUILD_NATIVE}"/bin/ical-glib-src-generator "${GENERATOR_BIN_DIR}"/ical-glib-src-generator || die
|
|
fi
|
|
|
|
cmake_src_compile
|
|
|
|
if use doc; then
|
|
cmake_src_compile docs
|
|
|
|
HTML_DOCS=( "${BUILD_DIR}"/apidocs/html/. )
|
|
fi
|
|
}
|
|
|
|
src_test() {
|
|
local myctestargs=(
|
|
-E "(icalrecurtest|icalrecurtest-r)" # bug 660282
|
|
)
|
|
|
|
cmake_src_test
|
|
}
|
|
|
|
src_install() {
|
|
cmake_src_install
|
|
|
|
if use examples; then
|
|
rm examples/CMakeLists.txt || die
|
|
dodoc -r examples
|
|
fi
|
|
|
|
use static-libs && strip-lto-bytecode
|
|
}
|