fruit
Fruit, a dependency injection framework for C++
파일 탐색기
최종 버전 다운로드 (.zip)- test-on-linux.yml
- test-on-osx.yml
- test-on-windows.yml
- FindFruit.cmake
- always_inline_attribute.cpp
- attribute_deprecated.cpp
- BUILD
- build_defs.bzl
- builtin_unreachable.cpp
- clang_arbitrary_overload_resolution_bug.cpp
- constexpr_typeid.cpp
- cxa_demangle.cpp
- declspec_deprecated.cpp
- force_inline.cpp
- gcc_attribute_deprecated.cpp
- has_trivial_copy.cpp
- is_trivially_copyable.cpp
- max_align_t.cpp
- msvc_assume.cpp
- std_is_trivially_copy_constructible.cpp
- std_is_trivially_copyable.cpp
- std_max_align_t.cpp
- typeid.cpp
- CMakeLists.txt
- fruit-config-base.h.in
- brake.h
- BUILD
- car.cpp
- car.h
- CMakeLists.txt
- emergency_brake.cpp
- emergency_brake.h
- main.cpp
- main_brake.cpp
- main_brake.h
- BUILD
- CMakeLists.txt
- main.cpp
- BUILD
- CMakeLists.txt
- main.cpp
- BUILD
- CMakeLists.txt
- main.cpp
- multiplier.cpp
- multiplier.h
- scaler.cpp
- scaler.h
- bar_handler.cpp
- bar_handler.h
- BUILD
- CMakeLists.txt
- foo_handler.cpp
- foo_handler.h
- main.cpp
- request.h
- request_dispatcher.cpp
- request_dispatcher.h
- server.cpp
- server.h
- server_context.h
- adder.h
- BUILD
- checked_adder.cpp
- checked_adder.h
- checked_incrementer.cpp
- checked_incrementer.h
- CMakeLists.txt
- incrementer.h
- incrementer_component.cpp
- incrementer_component.h
- incrementer_impl.cpp
- incrementer_impl.h
- main.cpp
- main_v1.cpp
- simple_adder.cpp
- simple_adder.h
- simple_incrementer.cpp
- simple_incrementer.h
- BUILD
- cached.h
- cached_greeter.cpp
- cached_greeter.h
- cached_greeter_test.cpp
- cached_greeter_test_with_normalized_component.cpp
- CMakeLists.txt
- fake_key_value_storage.cpp
- fake_key_value_storage.h
- greeter.cpp
- greeter.h
- key_value_storage.cpp
- key_value_storage.h
- main.cpp
- CMakeLists.txt
- BUILD
- configuration
- examples
- include
- src
- tests
- MODULE.bazel
- BUILD
- main.cpp
- MODULE.bazel
- boost_di.yml
- debug.yml
- fruit_full.yml
- fruit_mostly_full.yml
- fruit_quick.yml
- fruit_single.yml
- simple_di_full.yml
- simple_di_mostly_full.yml
- fruit_internal.yml
- fruit_wiki.yml
- analyze_symbol_size.sh
- boost_di_source_generator.py
- CMakeLists.txt
- compile_time_benchmark.cpp
- format_bench_results.py
- fruit_source_generator.py
- generate_benchmark.py
- makefile_generator.py
- new_delete_benchmark.cpp
- no_di_library_source_generator.py
- README.md
- run_benchmarks.py
- bar_handler.tex
- bind.tex
- bind_instance.tex
- cached_greeter.tex
- cached_greeter_test.tex
- car_component.tex
- checked_adder.tex
- checked_incrementer.tex
- CMakeLists.txt
- common-footer.tex
- common-header.tex
- component_composition.tex
- component_dep_loop.tex
- extract_dependencies.sh
- foo_handler.tex
- generate_snippets.sh
- greeter.tex
- incrementer.tex
- incrementer_component.tex
- inject_macro.tex
- inject_macro_no_args.tex
- inject_macro_template.tex
- inject_typedef_greeter.tex
- inject_typedef_templated_constructor.tex
- inject_typedef_writer.tex
- inject_typedef_writer2.tex
- multiplier.tex
- parametrized_component.tex
- provider.tex
- provider_functor.tex
- README
- register_constructor.tex
- register_constructor_component.tex
- register_factory.tex
- register_factory_macro.tex
- register_factory_typedef.tex
- register_factory_use.tex
- request_dispatcher.tex
- request_injector.tex
- scaler.tex
- server.tex
- simple_adder.tex
- simple_greeter.tex
- simple_incrementer.tex
- templated_component.tex
- .dockerignore
- common_cleanup.sh
- common_install.sh
- Dockerfile.ubuntu-20.04
- Dockerfile.ubuntu-22.04
- Dockerfile.ubuntu-24.04
- Dockerfile.ubuntu-24.10
- Dockerfile.ubuntu_arm-18.04
- Dockerfile.ubuntu_arm-20.04
- rebuild_all.sh
- ubuntu-20.04_custom.list
- ubuntu-22.04_custom.list
- ubuntu-24.04_custom.list
- ubuntu-24.10_custom.list
- pre-commit
- CMakeLists.txt
- debian.compat
- debian.control
- debian.rules
- deploy_to_bintray.bat
- deploy_to_bintray.sh
- libfruit.dsc
- libfruit.install
- libfruit.spec
- PKGBUILD
- analyze_template_instantiations_clang_diagnostics.py
- ci_install_linux.sh
- ci_install_osx.sh
- filter_gcc_error.sh
- find_untested_types.sh
- find_unused_types.sh
- parser.out
- parsetab.py
- postsubmit-helper.sh
- postsubmit.bat
- postsubmit.sh
- run_benchs.sh
- test_coverage.sh
- CMakeLists.txt
- fruit-2.0.0.ebuild
- binding_deps.defn.h
- binding_deps.h
- component_storage.defn.h
- component_storage.h
- component_storage_entry.defn.h
- component_storage_entry.h
- partial_component_storage.defn.h
- partial_component_storage.h
- arena_allocator.defn.h
- arena_allocator.h
- fixed_size_allocator.defn.h
- fixed_size_allocator.h
- fixed_size_vector.defn.h
- fixed_size_vector.h
- fixed_size_vector.templates.h
- memory_pool.defn.h
- memory_pool.h
- packed_pointer_and_bool.defn.h
- packed_pointer_and_bool.h
- semistatic_graph.defn.h
- semistatic_graph.h
- semistatic_graph.templates.h
- semistatic_map.defn.h
- semistatic_map.h
- semistatic_map.templates.h
- injector_accessor_for_tests.defn.h
- injector_accessor_for_tests.h
- injector_storage.defn.h
- injector_storage.h
- algos.h
- basics.h
- component.h
- errors.h
- eval.h
- fold.h
- graph.h
- immutable_map.h
- immutable_set.h
- list.h
- logical_operations.h
- map.h
- metaprogramming.h
- numeric_operations.h
- pair.h
- proof_tree_comparison.h
- proof_trees.h
- set.h
- signatures.h
- triplet.h
- vector.h
- wrappers.h
- binding_normalization.h
- binding_normalization.templates.h
- normalized_bindings.defn.h
- normalized_bindings.h
- normalized_component_storage.defn.h
- normalized_component_storage.h
- normalized_component_storage_holder.h
- call_with_tuple.h
- demangle_type_name.h
- hash_codes.defn.h
- hash_codes.h
- hash_helpers.defn.h
- hash_helpers.h
- lambda_invoker.h
- type_info.defn.h
- type_info.h
- bindings.h
- component.defn.h
- component_function.defn.h
- component_functors.defn.h
- component_install_arg_checks.defn.h
- component_install_arg_checks.h
- fruit-config.h
- fruit_assert.h
- fruit_internal_forward_decls.h
- injection_debug_errors.h
- injection_errors.h
- injector.defn.h
- meta_operation_wrappers.h
- normalized_component.defn.h
- provider.defn.h
- component.h
- component_function.h
- fruit.h
- fruit_forward_decls.h
- injector.h
- macro.h
- normalized_component.h
- provider.h
- binding_normalization.cpp
- CMakeLists.txt
- component.cpp
- demangle_type_name.cpp
- fixed_size_allocator.cpp
- injector_storage.cpp
- memory_pool.cpp
- normalized_component_storage.cpp
- normalized_component_storage_holder.cpp
- semistatic_graph.cpp
- semistatic_map.cpp
- CMakeLists.txt
- conanfile.py
- example.cpp
- BUILD
- test_fixed_size_allocator.py
- test_fixed_size_vector.py
- test_semistatic_graph.py
- test_semistatic_map.py
- BUILD
- common.h
- test_algos.py
- test_basics.py
- test_graph.py
- test_list.py
- test_map.py
- test_meta_component.py
- test_metaprogramming.py
- test_proof_trees.py
- test_set.py
- test_vector.py
- BUILD
- test_lambda_invoker.py
- test_type_info.py
- BUILD
- build_defs.bzl
- class_construction_tracker.h
- CMakeLists.txt
- fruit_test_common.py
- test_bind_interface.py
- test_binding_clash.py
- test_binding_compression.py
- test_class_destruction.py
- test_common.cpp
- test_common.h
- test_component.py
- test_component_and_injector_params.py
- test_component_functions.py
- test_component_replacement.py
- test_defn_h_includes.py
- test_dependency_loop.py
- test_eager_injection.py
- test_include_test.py
- test_injected_provider.py
- test_injector.py
- test_injector_unsafe_get.py
- test_install.py
- test_install_component_functions.py
- test_macros.h
- test_misc.py
- test_multibindings_bind_instance.py
- test_multibindings_bind_interface.py
- test_multibindings_bind_provider.py
- test_multibindings_misc.py
- test_normalized_component.py
- test_register_constructor.py
- test_register_factory.py
- test_register_instance.py
- test_register_provider.py
- test_required_types.py
- test_semistatic_map_hash_selection.py
- test_type_alignment.py
- test_type_alignment_with_annotation.py
- tested_features.md
- valgrind_suppressions.supp
- .clang-format
- .gitattributes
- .gitignore
- BUILD
- CMakeLists.txt
- conanfile.py
- CONTRIBUTING.md
- COPYING
- README.md
# 설치 가이드
1. 코드 내려받기
git clone https://github.com/google/fruit
깃허브에서 프로젝트 코드 전체를 내 컴퓨터로 내려받습니다.
cd fruit
방금 내려받은 프로젝트 폴더 안으로 이동합니다.
2. Docker
쉬움 추천사전 준비물
- Git GitHub에서 프로젝트 코드를 내려받으려면 필요합니다.
- Docker Desktop 컨테이너를 빌드하고 실행하려면 필요합니다. 설치 후 실행해서 백그라운드에 켜두세요.
⚠️ 이 프로젝트는 규모가 큰 저장소라, 이 방법이 실제 핵심 제품이 아니라 내부 하위 패키지를 가리키는 것일 수 있습니다. README 전체를 함께 확인해보세요.
docker build -f extras/dockerfiles/Dockerfile.ubuntu-20.04 -t fruit .
Dockerfile을 기반으로 실행 가능한 이미지를 빌드합니다.
docker run -p 8080:80 fruit
빌드된 이미지를 실제 컨테이너로 실행합니다.
터미널에 docker compose ps 를 입력해 컨테이너들이 Up 상태인지 확인하세요. README에 포트 번호가 적혀있다면 브라우저에서 http://localhost:포트번호 로 접속해보세요.
3. CMake
보통사전 준비물
mkdir build && cd build
빌드 결과물을 담을 폴더를 만들고 그 안으로 이동합니다.
cmake ..
소스코드를 분석해 빌드 설정 파일을 생성합니다 (build 폴더 안에서 실행해야 함).
make
생성된 빌드 설정을 바탕으로 실제 컴파일을 진행해 실행 파일을 만듭니다.
build 폴더 안에 실행 파일이 생성됐는지 확인하고, 직접 실행해보세요 (예: ./build/앱이름).
// repository documentation
Was this content helpful?
(0 ratings)
