# Copyright 2025 Arniiiii lg3dx6fd@gmail.com # Distributed under the terms of the GNU General Public License v2 EAPI=8 inherit cmake-multilib DESCRIPTION="Famous Boost libraries for C++, but built via CMake, not b2" HOMEPAGE="https://www.boost.org/" SRC_URI="https://github.com/boostorg/boost/releases/download/boost-${PV}/boost-${PV}-cmake.tar.xz" LICENSE="Boost-1.0" SLOT="0" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="mpi +python static +boost_context_fcontext boost_context_ucontext boost_context_winfib +boost_locale_icu boost_locale_iconv boost_locale_posix boost_locale_std boost_locale_winapi +boost_thread_pthread boost_thread_win32 +boost_iostream_zlib +boost_iostream_bzip2 +boost_iostream_lzma +boost_iostream_zstd" REQUIRED_USE=" ^^ ( boost_context_fcontext boost_context_ucontext boost_context_winfib ) ^^ ( boost_locale_icu boost_locale_iconv boost_locale_posix boost_locale_std boost_locale_winapi ) boost_locale_winapi? ( static ) ^^ ( boost_thread_pthread boost_thread_win32 ) " DEPEND=" boost_locale_icu? ( dev-libs/icu:=[${MULTILIB_USEDEP}] ) boost_locale_iconv? ( virtual/libiconv[${MULTILIB_USEDEP}] ) boost_iostream_zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] ) boost_iostream_bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] ) boost_iostream_lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] ) boost_iostream_zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] ) " RDEPEND="${DEPEND}" BDEPEND=" dev-build/cmake " PATCHES=( "${FILESDIR}/0000_boost-1.87.0_iostreams_pkgconfig.patch" ) src_configure() { # Gentoo users enable ccache via e.g. FEATURES=ccache or # other means. We don't want the build system to enable it for us. sed -i -e '/find_program(CCACHE_FOUND ccache)/d' CMakeLists.txt || die local mycmakeargs=( -DBOOST_ENABLE_MPI=$(usex mpi ON OFF) -DBOOST_ENABLE_PYTHON=$(usex python ON OFF) -DBUILD_SHARED_LIBS=$(usex static true false) -DBOOST_IOSTREAMS_ENABLE_ZLIB=$(usex boost_iostream_zlib ON OFF) -DBOOST_IOSTREAMS_ENABLE_BZIP2=$(usex boost_iostream_bzip2 ON OFF) -DBOOST_IOSTREAMS_ENABLE_LZMA=$(usex boost_iostream_lzma ON OFF) -DBOOST_IOSTREAMS_ENABLE_ZSTD=$(usex boost_iostream_zstd ON OFF) ) if use boost_context_fcontext; then mycmakeargs+=( -DBOOST_CONTEXT_IMPLEMENTATION=fcontext ) elif use boost_context_ucontext; then mycmakeargs+=( -DBOOST_CONTEXT_IMPLEMENTATION=ucontext ) else mycmakeargs+=( -DBOOST_CONTEXT_IMPLEMENTATION=winfib ) fi if use boost_locale_icu; then mycmakeargs+=( -DBOOST_LOCALE_ENABLE_ICU=ON ) elif use boost_locale_iconv; then mycmakeargs+=( -DBOOST_LOCALE_ENABLE_ICONV=ON ) elif use boost_locale_posix; then mycmakeargs+=( -DBOOST_LOCALE_ENABLE_POSIX=ON ) elif use boost_locale_std; then mycmakeargs+=( -DBOOST_LOCALE_ENABLE_STD=ON ) else mycmakeargs+=( -DBOOST_LOCALE_ENABLE_WINAPI=ON ) fi if use boost_thread_pthread; then mycmakeargs+=( -DBOOST_THREAD_THREADAPI=pthread ) else mycmakeargs+=( -DBOOST_THREAD_THREADAPI=win32 ) fi cmake-multilib_src_configure }