From 341dfd553cdd27982a479a753dc529eca6975c1d Mon Sep 17 00:00:00 2001 From: Pavel Sobolev Date: Thu, 14 Aug 2025 12:36:04 +0300 Subject: [PATCH] dev-cpp/safeint: new package, add 3.0.28a Signed-off-by: Pavel Sobolev --- 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(+) create mode 100644 dev-cpp/safeint/Manifest create mode 100644 dev-cpp/safeint/files/safeint-3.0.28a-install-the-library.patch create mode 100644 dev-cpp/safeint/files/safeint-3.0.28a-make-tests-optional.patch create mode 100644 dev-cpp/safeint/files/safeint-3.0.28a-remove-broken-tests.patch create mode 100644 dev-cpp/safeint/metadata.xml create mode 100644 dev-cpp/safeint/safeint-3.0.28a.ebuild 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 +Subject: [PATCH] Install the library. + +Bug: https://github.com/dcleblanc/SafeInt/issues/67 + +Signed-off-by: Pavel Sobolev + +--- 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 +Subject: [PATCH] Make tests optional. + +Signed-off-by: Pavel Sobolev + +--- 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 +Subject: [PATCH] Remove broken tests. + +Bug: https://github.com/dcleblanc/SafeInt/issues/55 + +Signed-off-by: Pavel Sobolev + +--- 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 @@ + + + + + contact@paveloom.dev + Pavel Sobolev + + + https://github.com/dcleblanc/SafeInt/issues + dcleblanc/SafeInt + + 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 +}