commit:     341dfd553cdd27982a479a753dc529eca6975c1d
Author:     Pavel Sobolev <contact <AT> paveloom <DOT> dev>
AuthorDate: Thu Aug 14 09:36:04 2025 +0000
Commit:     David Roman <davidroman96 <AT> gmail <DOT> com>
CommitDate: Tue Aug 19 13:26:53 2025 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=341dfd55

dev-cpp/safeint: new package, add 3.0.28a

Signed-off-by: Pavel Sobolev <contact <AT> paveloom.dev>

 dev-cpp/safeint/Manifest                           |  1 +
 .../safeint-3.0.28a-install-the-library.patch      | 26 ++++++++++++++
 .../safeint-3.0.28a-make-tests-optional.patch      | 25 +++++++++++++
 .../safeint-3.0.28a-remove-broken-tests.patch      | 41 ++++++++++++++++++++++
 dev-cpp/safeint/metadata.xml                       | 12 +++++++
 dev-cpp/safeint/safeint-3.0.28a.ebuild             | 32 +++++++++++++++++
 6 files changed, 137 insertions(+)

diff --git a/dev-cpp/safeint/Manifest b/dev-cpp/safeint/Manifest
new file mode 100644
index 0000000000..114e557924
--- /dev/null
+++ b/dev-cpp/safeint/Manifest
@@ -0,0 +1 @@
+DIST safeint-3.0.28a.tar.gz 589772 BLAKE2B 
e3fb1f9f43034f86d044a25063fc0762ba73326ed2917a382e48b765d36d919397b97ca548901fa76d645a3b8c1408367ab92533d75a156ffcf8bf78554e7e12
 SHA512 
04f3d4202b7069f2970811311c422b48225466887768a1f1fcdc9417e2b6a1ebd64f83ee86abe25e667e7945b011b5ef7ce2bbc83ce8e518fc4bf609fa52d77c

diff --git a/dev-cpp/safeint/files/safeint-3.0.28a-install-the-library.patch 
b/dev-cpp/safeint/files/safeint-3.0.28a-install-the-library.patch
new file mode 100644
index 0000000000..076f5ef3cb
--- /dev/null
+++ b/dev-cpp/safeint/files/safeint-3.0.28a-install-the-library.patch
@@ -0,0 +1,26 @@
+From: Pavel Sobolev <[email protected]>
+Subject: [PATCH] Install the library.
+
+Bug: https://github.com/dcleblanc/SafeInt/issues/67
+
+Signed-off-by: Pavel Sobolev <[email protected]>
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -26,4 +26,14 @@ add_subdirectory(Test/ClangTest)
+ add_subdirectory(Test/GccTest)
+ add_subdirectory(Test/MsvcTest)
+ 
+-enable_testing()
+\ No newline at end of file
++enable_testing()
++
++add_library(SafeInt INTERFACE)
++target_include_directories(SafeInt INTERFACE .)
++
++include(GNUInstallDirs)
++install(
++    FILES SafeInt.hpp safe_math.h safe_math_impl.h
++    DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
++)
++install(FILES LICENSE DESTINATION "${CMAKE_INSTALL_DOCDIR}")

diff --git a/dev-cpp/safeint/files/safeint-3.0.28a-make-tests-optional.patch 
b/dev-cpp/safeint/files/safeint-3.0.28a-make-tests-optional.patch
new file mode 100644
index 0000000000..fb8fd28dfc
--- /dev/null
+++ b/dev-cpp/safeint/files/safeint-3.0.28a-make-tests-optional.patch
@@ -0,0 +1,25 @@
+From: Pavel Sobolev <[email protected]>
+Subject: [PATCH] Make tests optional.
+
+Signed-off-by: Pavel Sobolev <[email protected]>
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -22,11 +22,13 @@ set(CMAKE_CXX_STANDARD_REQUIRED True)
+ # - Intel (not regularly tested)
+ # other compilers on a best effort
+ 
+-add_subdirectory(Test/ClangTest)
+-add_subdirectory(Test/GccTest)
+-add_subdirectory(Test/MsvcTest)
++include(CTest)
+ 
+-enable_testing()
++if (BUILD_TESTING)
++    add_subdirectory(Test/ClangTest)
++    add_subdirectory(Test/GccTest)
++    add_subdirectory(Test/MsvcTest)
++endif()
+ 
+ add_library(SafeInt INTERFACE)
+ target_include_directories(SafeInt INTERFACE .)

diff --git a/dev-cpp/safeint/files/safeint-3.0.28a-remove-broken-tests.patch 
b/dev-cpp/safeint/files/safeint-3.0.28a-remove-broken-tests.patch
new file mode 100644
index 0000000000..11ae15a0c7
--- /dev/null
+++ b/dev-cpp/safeint/files/safeint-3.0.28a-remove-broken-tests.patch
@@ -0,0 +1,41 @@
+From: Pavel Sobolev <[email protected]>
+Subject: [PATCH] Remove broken tests.
+
+Bug: https://github.com/dcleblanc/SafeInt/issues/55
+
+Signed-off-by: Pavel Sobolev <[email protected]>
+
+--- a/Test/GccTest/CMakeLists.txt
++++ b/Test/GccTest/CMakeLists.txt
+@@ -105,15 +105,6 @@ else()
+ 
+     target_compile_options(CompileTest_gcc PUBLIC -Wall)
+ 
+-    add_executable(CompileTest_gcc17
+-        ../CompileTest.cpp
+-        ../ConstExpr.cpp 
+-        ../CleanCompile.cpp
+-        ../../SafeInt.hpp
+-    )
+-
+-    target_compile_options(CompileTest_gcc17 PUBLIC -Wall -std=c++17)
+-
+     add_executable(CompileTest_gcc14
+         ../CompileTest.cpp
+         ../ConstExpr.cpp 
+@@ -132,15 +123,6 @@ else()
+ 
+     target_compile_options(CompileTest_gcc14_NoEH PUBLIC -Wall -std=c++14 
-fno-exceptions)
+ 
+-    add_executable(CompileTest_gcc98
+-    ../CompileTest.cpp
+-    ../ConstExpr.cpp 
+-    ../CleanCompile.cpp
+-    ../../SafeInt.hpp
+-    )
+-
+-    target_compile_options(CompileTest_gcc98 PUBLIC -D 
SAFEINT_USE_CPLUSCPLUS_98 -Wall -std=c++98 -fno-exceptions)
+-
+     add_executable(safe_math_test_gcc
+     ../c_safe_math/safe_math_test.c
+     ../c_safe_math/safe_math_test.h

diff --git a/dev-cpp/safeint/metadata.xml b/dev-cpp/safeint/metadata.xml
new file mode 100644
index 0000000000..1558bf4d00
--- /dev/null
+++ b/dev-cpp/safeint/metadata.xml
@@ -0,0 +1,12 @@
+<?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>Pavel Sobolev</name>
+  </maintainer>
+  <upstream>
+    <bugs-to>https://github.com/dcleblanc/SafeInt/issues</bugs-to>
+    <remote-id type="github">dcleblanc/SafeInt</remote-id>
+  </upstream>
+</pkgmetadata>

diff --git a/dev-cpp/safeint/safeint-3.0.28a.ebuild 
b/dev-cpp/safeint/safeint-3.0.28a.ebuild
new file mode 100644
index 0000000000..e260a6393e
--- /dev/null
+++ b/dev-cpp/safeint/safeint-3.0.28a.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="A class library for C++ that manages integer overflows"
+HOMEPAGE="https://github.com/dcleblanc/SafeInt";
+SRC_URI="https://github.com/dcleblanc/SafeInt/archive/refs/tags/${PV}.tar.gz 
-> ${P}.tar.gz"
+
+S="${WORKDIR}/SafeInt-${PV}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+PATCHES=(
+       "${FILESDIR}/${PN}-3.0.28a-install-the-library.patch"
+       "${FILESDIR}/${PN}-3.0.28a-make-tests-optional.patch"
+       "${FILESDIR}/${PN}-3.0.28a-remove-broken-tests.patch"
+)
+
+src_configure() {
+       local mycmakeargs=(
+               -DBUILD_TESTING=$(usex test)
+       )
+
+       cmake_src_configure
+}

Reply via email to