git: 7eae8191ec40 - main - devel/fruit: Add fruit 3.7.1

From: Po-Chuan Hsieh <sunpoet_at_FreeBSD.org>
Date: Mon, 03 Feb 2025 15:55:50 UTC
The branch main has been updated by sunpoet:

URL: https://cgit.FreeBSD.org/ports/commit/?id=7eae8191ec409e780016e4b1b1e5bc620636de36

commit 7eae8191ec409e780016e4b1b1e5bc620636de36
Author:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
AuthorDate: 2025-02-03 15:12:11 +0000
Commit:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
CommitDate: 2025-02-03 15:50:42 +0000

    devel/fruit: Add fruit 3.7.1
    
    Fruit is a dependency injection framework for C++, loosely inspired by the Guice
    framework for Java. It uses C++ metaprogramming together with some C++11
    features to detect most injection problems at compile-time. It allows to split
    the implementation code in "components" (aka modules) that can be assembled to
    form other components. From a component with no requirements it's then possible
    to create an injector, that provides an instance of the interfaces exposed by
    the component.
---
 devel/Makefile        |  1 +
 devel/fruit/Makefile  | 25 ++++++++++++++
 devel/fruit/distinfo  |  3 ++
 devel/fruit/pkg-descr |  7 ++++
 devel/fruit/pkg-plist | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 128 insertions(+)

diff --git a/devel/Makefile b/devel/Makefile
index 80931a1e2ec9..7b87d8fc99d5 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -733,6 +733,7 @@
     SUBDIR += freebsd-git-devtools
     SUBDIR += freebsd-sysroot
     SUBDIR += frink
+    SUBDIR += fruit
     SUBDIR += fsmtrie
     SUBDIR += fstrcmp
     SUBDIR += fstrm
diff --git a/devel/fruit/Makefile b/devel/fruit/Makefile
new file mode 100644
index 000000000000..38f91dada10b
--- /dev/null
+++ b/devel/fruit/Makefile
@@ -0,0 +1,25 @@
+PORTNAME=	fruit
+PORTVERSION=	3.7.1
+DISTVERSIONPREFIX=	v
+CATEGORIES=	devel
+
+MAINTAINER=	sunpoet@FreeBSD.org
+COMMENT=	Dependency injection framework for C++
+WWW=		https://github.com/google/fruit/wiki \
+		https://github.com/google/fruit
+
+LICENSE=	APACHE20
+LICENSE_FILE=	${WRKSRC}/COPYING
+
+USES=		cmake compiler:c++11-lang
+
+CMAKE_OFF=	FRUIT_ENABLE_COVERAGE \
+		FRUIT_TESTS_USE_PRECOMPILED_HEADERS \
+		FRUIT_USES_BOOST
+CMAKE_ON=	BUILD_SHARED_LIBS \
+		FRUIT_ADD_WNO_UNKNOWN_WARNING_OPTION
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	google
+
+.include <bsd.port.mk>
diff --git a/devel/fruit/distinfo b/devel/fruit/distinfo
new file mode 100644
index 000000000000..4fcb5dcd512a
--- /dev/null
+++ b/devel/fruit/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1738088808
+SHA256 (google-fruit-v3.7.1_GH0.tar.gz) = ed4c6b7ebfbf75e14a74e21eb74ce2703b8485bfc9e660b1c36fb7fe363172d0
+SIZE (google-fruit-v3.7.1_GH0.tar.gz) = 240459
diff --git a/devel/fruit/pkg-descr b/devel/fruit/pkg-descr
new file mode 100644
index 000000000000..a6e6758cfbf9
--- /dev/null
+++ b/devel/fruit/pkg-descr
@@ -0,0 +1,7 @@
+Fruit is a dependency injection framework for C++, loosely inspired by the Guice
+framework for Java. It uses C++ metaprogramming together with some C++11
+features to detect most injection problems at compile-time. It allows to split
+the implementation code in "components" (aka modules) that can be assembled to
+form other components. From a component with no requirements it's then possible
+to create an injector, that provides an instance of the interfaces exposed by
+the component.
diff --git a/devel/fruit/pkg-plist b/devel/fruit/pkg-plist
new file mode 100644
index 000000000000..eb79e812a88f
--- /dev/null
+++ b/devel/fruit/pkg-plist
@@ -0,0 +1,92 @@
+include/fruit/component.h
+include/fruit/component_function.h
+include/fruit/fruit.h
+include/fruit/fruit_forward_decls.h
+include/fruit/impl/bindings.h
+include/fruit/impl/component.defn.h
+include/fruit/impl/component_function.defn.h
+include/fruit/impl/component_functors.defn.h
+include/fruit/impl/component_install_arg_checks.defn.h
+include/fruit/impl/component_install_arg_checks.h
+include/fruit/impl/component_storage/binding_deps.defn.h
+include/fruit/impl/component_storage/binding_deps.h
+include/fruit/impl/component_storage/component_storage.defn.h
+include/fruit/impl/component_storage/component_storage.h
+include/fruit/impl/component_storage/component_storage_entry.defn.h
+include/fruit/impl/component_storage/component_storage_entry.h
+include/fruit/impl/component_storage/partial_component_storage.defn.h
+include/fruit/impl/component_storage/partial_component_storage.h
+include/fruit/impl/data_structures/arena_allocator.defn.h
+include/fruit/impl/data_structures/arena_allocator.h
+include/fruit/impl/data_structures/fixed_size_allocator.defn.h
+include/fruit/impl/data_structures/fixed_size_allocator.h
+include/fruit/impl/data_structures/fixed_size_vector.defn.h
+include/fruit/impl/data_structures/fixed_size_vector.h
+include/fruit/impl/data_structures/fixed_size_vector.templates.h
+include/fruit/impl/data_structures/memory_pool.defn.h
+include/fruit/impl/data_structures/memory_pool.h
+include/fruit/impl/data_structures/packed_pointer_and_bool.defn.h
+include/fruit/impl/data_structures/packed_pointer_and_bool.h
+include/fruit/impl/data_structures/semistatic_graph.defn.h
+include/fruit/impl/data_structures/semistatic_graph.h
+include/fruit/impl/data_structures/semistatic_graph.templates.h
+include/fruit/impl/data_structures/semistatic_map.defn.h
+include/fruit/impl/data_structures/semistatic_map.h
+include/fruit/impl/data_structures/semistatic_map.templates.h
+include/fruit/impl/fruit-config-base.h
+include/fruit/impl/fruit-config.h
+include/fruit/impl/fruit_assert.h
+include/fruit/impl/fruit_internal_forward_decls.h
+include/fruit/impl/injection_debug_errors.h
+include/fruit/impl/injection_errors.h
+include/fruit/impl/injector.defn.h
+include/fruit/impl/injector/injector_accessor_for_tests.defn.h
+include/fruit/impl/injector/injector_accessor_for_tests.h
+include/fruit/impl/injector/injector_storage.defn.h
+include/fruit/impl/injector/injector_storage.h
+include/fruit/impl/meta/algos.h
+include/fruit/impl/meta/basics.h
+include/fruit/impl/meta/component.h
+include/fruit/impl/meta/errors.h
+include/fruit/impl/meta/eval.h
+include/fruit/impl/meta/fold.h
+include/fruit/impl/meta/graph.h
+include/fruit/impl/meta/immutable_map.h
+include/fruit/impl/meta/immutable_set.h
+include/fruit/impl/meta/list.h
+include/fruit/impl/meta/logical_operations.h
+include/fruit/impl/meta/map.h
+include/fruit/impl/meta/metaprogramming.h
+include/fruit/impl/meta/numeric_operations.h
+include/fruit/impl/meta/pair.h
+include/fruit/impl/meta/proof_tree_comparison.h
+include/fruit/impl/meta/proof_trees.h
+include/fruit/impl/meta/set.h
+include/fruit/impl/meta/signatures.h
+include/fruit/impl/meta/triplet.h
+include/fruit/impl/meta/vector.h
+include/fruit/impl/meta/wrappers.h
+include/fruit/impl/meta_operation_wrappers.h
+include/fruit/impl/normalized_component.defn.h
+include/fruit/impl/normalized_component_storage/binding_normalization.h
+include/fruit/impl/normalized_component_storage/binding_normalization.templates.h
+include/fruit/impl/normalized_component_storage/normalized_bindings.defn.h
+include/fruit/impl/normalized_component_storage/normalized_bindings.h
+include/fruit/impl/normalized_component_storage/normalized_component_storage.defn.h
+include/fruit/impl/normalized_component_storage/normalized_component_storage.h
+include/fruit/impl/normalized_component_storage/normalized_component_storage_holder.h
+include/fruit/impl/provider.defn.h
+include/fruit/impl/util/call_with_tuple.h
+include/fruit/impl/util/demangle_type_name.h
+include/fruit/impl/util/hash_codes.defn.h
+include/fruit/impl/util/hash_codes.h
+include/fruit/impl/util/hash_helpers.defn.h
+include/fruit/impl/util/hash_helpers.h
+include/fruit/impl/util/lambda_invoker.h
+include/fruit/impl/util/type_info.defn.h
+include/fruit/impl/util/type_info.h
+include/fruit/injector.h
+include/fruit/macro.h
+include/fruit/normalized_component.h
+include/fruit/provider.h
+lib/libfruit.so