# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 inherit cmake if [[ ${PV} == *9999* ]]; then inherit git-r3 EGIT_REPO_URI="https://github.com/Thalhammer/jwt-cpp.git" else SRC_URI="https://github.com/Thalhammer/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" KEYWORDS="amd64 x86" fi DESCRIPTION="header only library for creating and validating JSON Web Tokens in C++11" HOMEPAGE="https://thalhammer.github.io/jwt-cpp/" LICENSE="MIT" SLOT="0" IUSE="doc +picojson test" DEPEND=" dev-cpp/nlohmann_json dev-libs/openssl picojson? ( dev-cpp/picojson ) " RDEPEND="${DEPEND}" BDEPEND=" doc? ( app-text/doxygen[dot] ) test? ( dev-cpp/gtest ) " RESTRICT=" !picojson? ( test ) !test? ( test ) " PATCHES=( "${FILESDIR}"/"${PN}"-0.6.0-gcc13.patch ) DOCS=( README.md docs/{faqs,ssl,traits}.md ) src_prepare() { # Unbundle dev-cpp/nlohmann_json. rm -vrf include/nhlomann || die # Unbundle dev-cpp/picojson and fix include paths. # See also: https://github.com/Thalhammer/jwt-cpp/issues/213 rm -vrf include/picojson || die find -name '*.h' -type f -print0 | xargs -0 sed -r -e "s:picojson/picojson\.h:picojson.h:g" -i || die # Prevent installation of bundled dev-cpp/picojson. sed -i -e 's:^\s*install.*picojson/picojson\.h.*$::' CMakeLists.txt || die cmake_src_prepare } src_configure() { local mycmakeargs=( -DJWT_DISABLE_PICOJSON="$(usex !picojson)" # Not useful for now, asks for non-existent CMake module. #-DJWT_EXTERNAL_PICOJSON="$(usex picojson)" # Examples are not installed and for development only. -DJWT_BUILD_EXAMPLES=NO -DJWT_BUILD_TESTS="$(usex test)" -DJWT_CMAKE_FILES_INSTALL_DIR="${EPREFIX}"/usr/share/cmake ) cmake_src_configure } src_compile() { cmake_src_compile if use doc; then doxygen || die fi } src_test() { "${BUILD_DIR}"/tests/jwt-cpp-test || die } src_install() { cmake_src_install use doc && local HTML_DOCS=(doxy/html/.) einstalldocs }