commit:     6d97df2fd2ae412ee0cf1d4ff84f47b148acf0e4
Author:     Steffen Winter <steffen.winter <AT> proton <DOT> me>
AuthorDate: Wed Feb  7 12:37:37 2024 +0000
Commit:     Steffen Winter <stffn.mobil <AT> freenet <DOT> de>
CommitDate: Wed Feb  7 12:48:20 2024 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=6d97df2f

dev-cpp/scnlib: new package, add 2.0.0

Signed-off-by: Steffen Winter <steffen.winter <AT> proton.me>

 dev-cpp/scnlib/Manifest                            |  1 +
 .../files/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(+)

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 $<$<CXX_COMPILER_ID:GNU>: 
-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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+  <maintainer type="person">
+    <email>[email protected]</email>
+    <name>Steffen Winter</name>
+  </maintainer>
+  <upstream>
+    <remote-id type="github">eliaskosunen/scnlib</remote-id>
+  </upstream>
+</pkgmetadata>

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
+}

Reply via email to