From 6d97df2fd2ae412ee0cf1d4ff84f47b148acf0e4 Mon Sep 17 00:00:00 2001 From: Steffen Winter Date: Wed, 7 Feb 2024 13:37:37 +0100 Subject: [PATCH] dev-cpp/scnlib: new package, add 2.0.0 Signed-off-by: Steffen Winter --- dev-cpp/scnlib/Manifest | 1 + .../scnlib-2.0.0-no-external-test-deps.patch | 59 +++++++++++++++++++ dev-cpp/scnlib/metadata.xml | 11 ++++ dev-cpp/scnlib/scnlib-2.0.0.ebuild | 42 +++++++++++++ 4 files changed, 113 insertions(+) create mode 100644 dev-cpp/scnlib/Manifest create mode 100644 dev-cpp/scnlib/files/scnlib-2.0.0-no-external-test-deps.patch create mode 100644 dev-cpp/scnlib/metadata.xml create mode 100644 dev-cpp/scnlib/scnlib-2.0.0.ebuild diff --git a/dev-cpp/scnlib/Manifest b/dev-cpp/scnlib/Manifest new file mode 100644 index 0000000000..d9e97204c7 --- /dev/null +++ b/dev-cpp/scnlib/Manifest @@ -0,0 +1 @@ +DIST scnlib-2.0.0.tar.gz 517424 BLAKE2B 152b2b8510c3ab523349e00b5a139c2ea0e6cc234221eb5a472d746ba2b2d176ec9e6515601578b590c9b2d9cb97a136dcf361f73a56c672b3dfd00350a39f60 SHA512 5bca5a43dce9be019775a0cac64945c4b4cdadbecfa8d8e0889b6ed888c3a37ae757aa5d8d60d40418d0058641a40ab6dce35a1de84e9a9a2a6f5b4d12bceed4 diff --git a/dev-cpp/scnlib/files/scnlib-2.0.0-no-external-test-deps.patch b/dev-cpp/scnlib/files/scnlib-2.0.0-no-external-test-deps.patch new file mode 100644 index 0000000000..e78ba0a2a1 --- /dev/null +++ b/dev-cpp/scnlib/files/scnlib-2.0.0-no-external-test-deps.patch @@ -0,0 +1,59 @@ +diff --git a/cmake/dependencies.cmake b/cmake/dependencies.cmake +index ae2832b..c250eff 100644 +--- a/cmake/dependencies.cmake ++++ b/cmake/dependencies.cmake +@@ -4,41 +4,10 @@ set(SCN_OPTIONAL_DEPENDENCIES "") + + if (SCN_TESTS) + # GTest +- +- FetchContent_Declare( +- googletest +- GIT_REPOSITORY https://github.com/google/googletest.git +- GIT_TAG main +- GIT_SHALLOW TRUE +- ) +- +- # gtest CMake does some flag overriding we don't want, and it's also quite heavy +- # Do it manually +- +- set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) +- +- FetchContent_GetProperties(googletest) +- if (NOT googletest) +- FetchContent_Populate(googletest) +- endif () +- +- find_package(Threads) +- +- add_library(scn_gtest +- "${googletest_SOURCE_DIR}/googletest/src/gtest-all.cc" +- "${googletest_SOURCE_DIR}/googlemock/src/gmock-all.cc" +- ) +- target_include_directories(scn_gtest SYSTEM +- PUBLIC +- "${googletest_SOURCE_DIR}/googletest/include" +- "${googletest_SOURCE_DIR}/googlemock/include" +- PRIVATE +- "${googletest_SOURCE_DIR}/googletest" +- "${googletest_SOURCE_DIR}/googlemock" +- ) +- target_link_libraries(scn_gtest PRIVATE Threads::Threads) +- target_compile_features(scn_gtest PUBLIC cxx_std_17) +- target_compile_options(scn_gtest PRIVATE $<$: -Wno-psabi>) ++ find_package(GTest REQUIRED) ++ add_library(scn_gtest INTERFACE) ++ target_link_libraries(scn_gtest INTERFACE GTest::GTest) ++ target_compile_features(scn_gtest INTERFACE cxx_std_17) + endif () + + if (SCN_BENCHMARKS) +@@ -158,8 +127,3 @@ if (SCN_REGEX_BACKEND STREQUAL "re2") + set(SCN_REGEX_BACKEND_TARGET re2::re2) + endif () + +-# make available +- +-FetchContent_MakeAvailable( +- ${SCN_OPTIONAL_DEPENDENCIES} +-) diff --git a/dev-cpp/scnlib/metadata.xml b/dev-cpp/scnlib/metadata.xml new file mode 100644 index 0000000000..3eb942df4b --- /dev/null +++ b/dev-cpp/scnlib/metadata.xml @@ -0,0 +1,11 @@ + + + + + stffn.mobil@freenet.de + Steffen Winter + + + eliaskosunen/scnlib + + diff --git a/dev-cpp/scnlib/scnlib-2.0.0.ebuild b/dev-cpp/scnlib/scnlib-2.0.0.ebuild new file mode 100644 index 0000000000..157adc51d4 --- /dev/null +++ b/dev-cpp/scnlib/scnlib-2.0.0.ebuild @@ -0,0 +1,42 @@ +# Copyright 2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +DESCRIPTION="scanf for modern C++ " +HOMEPAGE="https://scnlib.dev/" +SRC_URI="https://github.com/eliaskosunen/scnlib/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64" +IUSE="test" + +BDEPEND=" + dev-cpp/fast_float + >=dev-cpp/simdutf-4.0.0:= + test? ( dev-cpp/gtest ) +" + +RESTRICT="!test? ( test )" + +src_prepare() { + use test && eapply "${FILESDIR}/${P}-no-external-test-deps.patch" + cmake_src_prepare +} + +src_configure() { + local mycmakeargs=( + -DSCN_BENCHMARKS=OFF + -DSCN_BENCHMARKS_BINARYSIZE=OFF + -DSCN_BENCHMARKS_BUILDTIME=OFF + -DSCN_DOCS=OFF + -DSCN_EXAMPLES=$(usex test ON OFF) + -DSCN_TESTS=$(usex test ON OFF) + -DSCN_USE_EXTERNAL_FAST_FLOAT=ON + -DSCN_USE_EXTERNAL_SIMDUTF=ON + ) + cmake_src_configure +}