Files
gentoo/dev-cpp/jwt-cpp/jwt-cpp-0.7.2-r1.ebuild
Oliver Freyermuth c417c1a35d dev-cpp/jwt-cpp: add 0.7.2-r1
Fixes:
- add missing implicit deps
- add missing test deps
- fix compatibility with >=dev-cpp/jsoncons-1.5.0

Closes: https://bugs.gentoo.org/975140
Closes: https://github.com/gentoo/gentoo/pull/46268
Signed-off-by: Oliver Freyermuth <o.freyermuth@googlemail.com>
Signed-off-by: Guilherme Amadio <amadio@gentoo.org>
2026-05-23 09:35:13 +02:00

97 lines
2.7 KiB
Bash

# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake
DESCRIPTION="header only library for creating and validating JSON Web Tokens in C++11"
HOMEPAGE="https://thalhammer.github.io/jwt-cpp/"
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
SRC_URI="
${SRC_URI}
https://raw.githubusercontent.com/jothepro/doxygen-awesome-css/v2.2.1/doxygen-awesome.css
https://raw.githubusercontent.com/jothepro/doxygen-awesome-css/v2.2.1/doxygen-awesome-sidebar-only.css
"
LICENSE="MIT"
SLOT="0"
IUSE="doc +jsoncons +picojson test"
# reflectcpp-json would also be supported, but dev-cpp/reflect-cpp not packaged yet
# dev-cpp/glaze not in ~x86
DEPEND="
dev-cpp/nlohmann_json
dev-libs/boost
dev-libs/jsoncpp
dev-libs/openssl
jsoncons? ( dev-cpp/jsoncons )
picojson? ( dev-cpp/picojson )
"
RDEPEND="${DEPEND}"
BDEPEND="
doc? ( app-text/doxygen[dot] )
test? ( dev-cpp/gtest )
"
REQUIRED_USE="test? ( jsoncons picojson )"
RESTRICT="
!jsoncons? ( test )
!picojson? ( test )
!test? ( test )
"
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
cp "${DISTDIR}"/doxygen-awesome{,-sidebar-only}.css docs/ || die
# Restore compat with dev-cpp/jsoncons >=1.5.0
# see https://github.com/Thalhammer/jwt-cpp/issues/427
use jsoncons && (sed -i 's#.*JSONCONS_NO_DEPRECATED##' \
include/jwt-cpp/traits/danielaparker-jsoncons/traits.h || die)
cmake_src_prepare
}
src_configure() {
local mycmakeargs=(
-DJWT_EXTERNAL_NLOHMANN_JSON=YES
-DJWT_DISABLE_PICOJSON="$(usex !picojson)"
-DJWT_BUILD_DOCS="$(usex doc)"
# 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
use doc && cmake_src_compile jwt-docs
}
src_test() {
"${BUILD_DIR}"/tests/jwt-cpp-test || die
}
src_install() {
cmake_src_install
use doc && local HTML_DOCS=(./build/html/.)
einstalldocs
}