This is an automated email from the ASF dual-hosted git repository. pengzheng pushed a commit to branch feature/511-remove-resolver in repository https://gitbox.apache.org/repos/asf/celix.git
commit 4ce9a10337f5464b59b7d2c7cb6bd8bd6599c412 Merge: d6637a98 2683e8b8 Author: PengZheng <[email protected]> AuthorDate: Tue Aug 1 12:02:00 2023 +0800 Merge branch 'master' into feature/511-remove-resolver # Conflicts: # libs/framework/CMakeLists.txt .github/workflows/conan_create.yml | 71 +++++ .github/workflows/coverage.yml | 3 +- .github/workflows/macos.yml | 11 +- .github/workflows/ubuntu.yml | 17 +- CMakeLists.txt | 34 +-- bundles/CMakeLists.txt | 1 + bundles/components_ready_check/CMakeLists.txt | 50 +++ bundles/components_ready_check/README.md | 50 +++ .../api/celix_components_ready_constants.h | 20 +- .../components_ready_check/gtest/CMakeLists.txt | 57 ++++ .../gtest/src/ActiveComponentBundle.cc | 28 +- .../gtest/src/ComponentsReadyTestSuite.cc | 97 ++++++ .../ComponentsReadyWithErrorInjectionTestSuite.cc | 123 ++++++++ .../gtest/src/InactiveComponentBundle.cc | 49 ++- .../src/celix_components_ready_check.c | 158 ++++++++++ .../src/celix_components_ready_check.h | 58 ++++ .../src/celix_components_ready_check_activator.c | 20 +- .../cxx_remote_services/integration/CMakeLists.txt | 6 +- .../integration/gtest/CMakeLists.txt | 2 +- bundles/cxx_remote_services/rsa_spi/CMakeLists.txt | 1 + .../http_admin/gtest/src/http_websocket_tests.cc | 5 +- bundles/http_admin/gtest/src/sut_activator.c | 5 +- bundles/http_admin/http_admin/src/http_admin.c | 3 +- .../http_admin/http_admin/src/websocket_admin.c | 12 +- bundles/logging/log_admin/CMakeLists.txt | 2 +- bundles/logging/log_admin/gtest/CMakeLists.txt | 2 +- bundles/logging/log_admin/src/celix_log_admin.c | 5 +- bundles/logging/log_helper/CMakeLists.txt | 60 ++-- .../log_helper/error_injector}/CMakeLists.txt | 2 +- .../error_injector}/include/celix_log_helper_ei.h | 0 .../error_injector}/src/celix_log_helper_ei.cc | 0 .../log_helper/gtest/src/LogHelperTestSuite.cc | 5 + .../logging/log_helper/include/celix_log_helper.h | 3 + bundles/logging/log_service_api/CMakeLists.txt | 34 ++- .../log_service_api/include/celix_log_control.h | 1 + .../src/deprecated_log_writer_stdout_activator.c | 5 +- .../log_writers/syslog_writer/CMakeLists.txt | 2 +- .../log_writers/syslog_writer/gtest/CMakeLists.txt | 2 +- .../src/celix_syslog_writer_activator.c | 3 +- bundles/pubsub/CMakeLists.txt | 2 +- bundles/pubsub/examples/CMakeLists.txt | 28 +- .../examples/pubsub/interceptors/CMakeLists.txt | 2 +- .../examples/pubsub/publisher/CMakeLists.txt | 2 +- .../examples/pubsub/publisher2/CMakeLists.txt | 2 +- .../pubsub/pubsub_websocket/CMakeLists.txt | 5 +- .../examples/pubsub/subscriber/CMakeLists.txt | 2 +- bundles/pubsub/integration/CMakeLists.txt | 41 +-- bundles/pubsub/integration/gtest/tst_activator.c | 11 +- .../integration/gtest/tst_endpoint_activator.c | 3 +- bundles/pubsub/pubsub_admin_tcp/CMakeLists.txt | 7 +- .../pubsub/pubsub_admin_tcp/src/pubsub_tcp_admin.c | 5 +- .../pubsub_admin_tcp/src/pubsub_tcp_handler.c | 3 +- .../src/pubsub_tcp_topic_receiver.c | 3 +- .../pubsub_admin_tcp/src/pubsub_tcp_topic_sender.c | 5 +- bundles/pubsub/pubsub_admin_udp_mc/CMakeLists.txt | 5 +- .../pubsub_admin_udp_mc/src/pubsub_udpmc_admin.c | 3 +- .../src/pubsub_udpmc_topic_sender.c | 7 +- .../pubsub/pubsub_admin_websocket/CMakeLists.txt | 9 +- .../src/pubsub_websocket_admin.c | 3 +- .../src/pubsub_websocket_topic_receiver.c | 7 +- .../src/pubsub_websocket_topic_sender.c | 9 +- bundles/pubsub/pubsub_admin_zmq/CMakeLists.txt | 3 +- .../pubsub/pubsub_admin_zmq/src/pubsub_zmq_admin.c | 5 +- .../pubsub_admin_zmq/src/pubsub_zmq_topic_sender.c | 5 +- bundles/pubsub/pubsub_api/CMakeLists.txt | 1 + bundles/pubsub/pubsub_discovery/CMakeLists.txt | 7 +- .../pubsub_discovery/src/pubsub_discovery_impl.c | 3 +- .../pubsub_protocol_wire_v1/CMakeLists.txt | 51 ++-- .../src/pubsub_wire_protocol_impl.c | 23 +- .../src/pubsub_wire_protocol_impl.h | 2 +- .../pubsub_protocol_wire_v2/CMakeLists.txt | 45 +-- .../src/pubsub_wire_v2_protocol_impl.c | 7 +- .../pubsub_serializer_avrobin/CMakeLists.txt | 50 +-- .../src/pubsub_avrobin_serializer_impl.c | 3 +- .../pubsub/pubsub_serializer_json/CMakeLists.txt | 48 +-- .../src/pubsub_json_serialization_provider.c | 3 +- .../src/pubsub_serializer_impl.c | 5 +- .../pubsub/pubsub_spi/src/pubsub_endpoint_match.c | 3 +- .../pubsub_spi/src/pubsub_interceptors_handler.c | 3 +- .../src/pubsub_topology_manager.c | 17 +- .../include/pubsub_serialization_provider.h | 3 +- .../pubsub/pubsub_utils/include/pubsub_utils_url.h | 2 + .../src/pubsub_serialization_provider.c | 9 +- .../pubsub_utils/src/pubsub_serializer_handler.c | 3 +- bundles/remote_services/CMakeLists.txt | 4 +- .../discovery_common/CMakeLists.txt | 49 ++- .../{include => src}/endpoint_descriptor_common.h | 12 +- .../discovery_configured/CMakeLists.txt | 14 +- .../remote_services/discovery_etcd/CMakeLists.txt | 20 +- .../discovery_etcd/src/etcd_watcher.c | 3 +- .../remote_services/discovery_shm/CMakeLists.txt | 6 +- .../gtest/src/DiscoveryZeroconfWatcherTestSuite.cc | 13 + .../src/discovery_zeroconf_activator.c | 26 +- .../src/discovery_zeroconf_announcer.c | 73 ++--- .../src/discovery_zeroconf_announcer.h | 3 + .../src/discovery_zeroconf_watcher.c | 53 ++-- .../src/discovery_zeroconf_watcher.h | 3 + bundles/remote_services/examples/CMakeLists.txt | 5 +- .../calculator_service/src/calculator_impl.c | 7 +- .../remote_service_admin_dfi/gtest/CMakeLists.txt | 2 - .../gtest/client.properties.in | 2 +- .../gtest/src/rsa_client_server_tests.cc | 27 +- .../gtest/src/rsa_tests.cc | 7 +- .../remote_service_admin_shm_v2/CMakeLists.txt | 1 + .../rsa_shm/CMakeLists.txt | 1 + .../rsa_shm/gtest/CMakeLists.txt | 6 +- .../gtest/src/RsaShmClientServerUnitTestSuite.cc | 51 ++++ .../rsa_shm/gtest/src/shm_pool_ei.cc | 29 ++ .../rsa_shm/gtest/src/shm_pool_ei.h | 32 ++ .../rsa_shm/src/rsa_shm_activator.c | 28 +- .../rsa_shm/src/rsa_shm_client.c | 326 +++++++++----------- .../rsa_shm/src/rsa_shm_client.h | 3 + .../rsa_shm/src/rsa_shm_export_registration.c | 96 +++--- .../rsa_shm/src/rsa_shm_export_registration.h | 3 + .../rsa_shm/src/rsa_shm_impl.c | 338 ++++++++------------- .../rsa_shm/src/rsa_shm_impl.h | 3 + .../rsa_shm/src/rsa_shm_import_registration.c | 46 +-- .../rsa_shm/src/rsa_shm_server.c | 47 ++- .../shm_pool/include/shm_cache.h | 3 + .../shm_pool/include/shm_pool.h | 36 ++- .../shm_pool/src/shm_cache.c | 26 +- .../thpool/CMakeLists.txt | 0 .../thpool/LICENSE | 0 .../thpool/README.md | 0 .../thpool/include/thpool.h | 0 .../thpool/src/thpool.c | 0 .../rsa_common/src/endpoint_description.c | 22 +- .../rsa_common/src/remote_interceptors_handler.c | 3 +- .../rsa_rpc_json/src/rsa_json_rpc_activator.c | 24 +- .../rsa_rpc_json/src/rsa_json_rpc_endpoint_impl.c | 82 ++--- .../rsa_rpc_json/src/rsa_json_rpc_impl.c | 44 ++- .../rsa_rpc_json/src/rsa_json_rpc_impl.h | 3 + .../rsa_rpc_json/src/rsa_json_rpc_proxy_impl.c | 81 ++--- .../rsa_rpc_json/src/rsa_request_sender_tracker.c | 21 +- bundles/remote_services/rsa_spi/CMakeLists.txt | 3 - .../rsa_spi/include/endpoint_description.h | 3 + .../rsa_spi/include/remote_interceptors_handler.h | 3 + .../topology_manager/CMakeLists.txt | 2 +- .../topology_manager/src/topology_manager.c | 10 +- .../tms_tst/disc_mock/CMakeLists.txt | 4 +- bundles/shell/README.md | 18 +- bundles/shell/remote_shell/CMakeLists.txt | 2 +- bundles/shell/shell/CMakeLists.txt | 136 +++++---- bundles/shell/shell/gtest/src/ShellTestSuite.cc | 4 + bundles/shell/shell/src/bundle_command.c | 22 +- bundles/shell/shell/src/c_shell_activator.c | 3 +- bundles/shell/shell/src/query_command.c | 18 +- bundles/shell/shell/src/quit_command.c | 3 +- bundles/shell/shell_bonjour/CMakeLists.txt | 14 +- bundles/shell/shell_tui/CMakeLists.txt | 2 +- bundles/shell/shell_wui/CMakeLists.txt | 2 +- cmake/CelixConfig.cmake | 33 +- cmake/CelixDeps.cmake.in | 14 +- cmake/Modules/FindDNSSD.cmake | 49 +++ cmake/Modules/Findlibuuid.cmake | 18 +- cmake/celix_project/CodeCoverage.cmake | 2 +- cmake/cmake_celix/BundlePackaging.cmake | 2 +- conanfile.py | 295 ++++++++++++++---- documents/README.md | 5 + documents/building/dev_celix_with_clion.md | 2 +- documents/bundles.md | 4 +- documents/c_patterns.md | 91 ++++++ documents/components.md | 2 +- documents/framework.md | 27 ++ documents/services.md | 8 +- documents/subprojects.md | 1 + examples/celix-examples/CMakeLists.txt | 2 +- .../bundle_with_private_lib/src/activator.c | 3 +- examples/celix-examples/dm_example/CMakeLists.txt | 1 - .../dm_example/phase3/src/phase3_activator.c | 3 +- .../dm_example_cxx/phase1/src/Phase1Activator.cc | 5 +- .../log_service_example/src/activator.c | 5 +- .../component_with_provided_service_activator.c | 3 +- .../readme_c_examples/src/my_bundle_activator.c | 5 +- .../my_shell_command_provider_bundle_activator.c | 3 +- .../src/using_command_service_example.c | 7 +- .../src/using_command_service_example.c | 3 +- .../src/dynamic_consumer_example.c | 11 +- .../src/dynamic_provider_example.c | 5 +- .../src/simple_consumer_example.c | 7 +- .../track_tracker_example/src/activator.c | 5 +- examples/conan_test_package/CMakeLists.txt | 97 +++++- examples/conan_test_package/conanfile.py | 59 +++- examples/conan_test_package/hello_bundle.c | 11 +- .../conan_test_package/my_log_writer_activator.c | 12 +- examples/conan_test_package/my_psa_activator.c | 6 +- examples/conan_test_package/my_rsa_activator.c | 4 +- examples/conan_test_package/test_celix_dfi.c | 25 ++ examples/conan_test_package/test_cxx_shell.cpp | 14 +- examples/conan_test_package/test_framework.c | 15 +- .../conan_test_package/test_http_admin_activator.c | 22 +- examples/conan_test_package/test_log_helper.c | 43 +++ examples/conan_test_package/test_log_service_api.c | 25 ++ examples/conan_test_package/test_rsa_spi.cc | 25 ++ examples/conan_test_package/test_shell.c | 18 +- examples/conan_test_package/test_shell_api.c | 26 ++ examples/conan_test_package/test_utils.c | 28 ++ libs/dependency_manager/CMakeLists.txt | 65 ++-- libs/dependency_manager/src/dm_activator.c | 3 +- libs/dependency_manager_cxx/CMakeLists.txt | 36 +-- libs/dfi/CMakeLists.txt | 3 + .../dfi/error_injector}/CMakeLists.txt | 12 +- libs/{ => dfi}/error_injector/dfi/CMakeLists.txt | 2 +- libs/{ => dfi}/error_injector/dfi/include/dfi_ei.h | 0 libs/{ => dfi}/error_injector/dfi/src/dfi_ei.cc | 0 libs/dfi/gtest/src/dyn_avpr_function_tests.cpp | 17 +- libs/dfi/include/dyn_interface.h | 3 + libs/dfi/src/json_rpc.c | 3 +- libs/error_injector/CMakeLists.txt | 15 - libs/etcdlib/CMakeLists.txt | 18 +- libs/framework/CMakeLists.txt | 134 ++++---- .../framework/error_injector}/CMakeLists.txt | 13 +- .../error_injector/celix_bundle/CMakeLists.txt | 2 +- .../celix_bundle/include/celix_bundle_ei.h | 0 .../celix_bundle/src/celix_bundle_ei.cc | 0 .../error_injector/celix_bundle_ctx/CMakeLists.txt | 3 +- .../include/celix_bundle_context_ei.h | 1 + .../src/celix_bundle_context_ei.cc | 7 + libs/framework/gtest/CMakeLists.txt | 19 +- .../BundleArchiveWithErrorInjectionTestSuite.cc | 5 +- .../src/CelixBundleContextBundlesTestSuite.cc | 10 +- .../CelixBundleContextBundlesWithErrorTestSuite.cc | 7 +- .../src/CelixBundleContextServicesTestSuite.cc | 1 + .../CelixFrameworkUtilsErrorInjectionTestSuite.cc | 5 +- .../src/CondTestBundleActivator.cc} | 44 ++- .../gtest/src/CxxBundleContextTestSuite.cc | 8 +- .../gtest/src/FrameworkBundleTestSuite.cc | 122 ++++++++ .../FrameworkBundleWithErrorInjectionTestSuite.cc | 93 ++++++ ...ryTestSuite.cc => FrameworkFactoryTestSuite.cc} | 18 +- .../FrameworkFactoryWithErrorInjectionTestSuite.cc | 61 ++++ .../framework/gtest/src/ScheduledEventTestSuite.cc | 83 +++-- .../ScheduledEventWithErrorInjectionTestSuite.cc | 5 +- libs/framework/gtest/src/nop_activator.c | 5 +- libs/framework/include/celix/Constants.h | 8 + libs/framework/include/celix/Framework.h | 3 +- libs/framework/include/celix/FrameworkFactory.h | 39 ++- libs/framework/include/celix/UseServiceBuilder.h | 2 +- libs/framework/include/celix_bundle_context.h | 32 ++ libs/framework/include/celix_condition.h | 92 ++++++ libs/framework/include/celix_constants.h | 9 + libs/framework/include/celix_framework.h | 5 + libs/framework/include/celix_framework_factory.h | 5 +- libs/framework/include_deprecated/bundle_context.h | 33 ++ libs/framework/include_deprecated/framework.h | 12 + libs/framework/src/bundle_archive.c | 15 +- libs/framework/src/bundle_revision.c | 3 +- libs/framework/src/celix_bundle_cache.c | 38 ++- libs/framework/src/celix_framework_bundle.c | 176 +++++++++++ libs/framework/src/celix_framework_bundle.h | 61 ++++ libs/framework/src/celix_framework_factory.c | 22 +- libs/framework/src/celix_launcher.c | 2 +- libs/framework/src/celix_libloader.h | 6 + libs/framework/src/celix_scheduled_event.c | 6 - libs/framework/src/celix_scheduled_event.h | 23 +- libs/framework/src/dm_dependency_manager_impl.c | 5 +- libs/framework/src/dm_service_dependency.c | 5 +- libs/framework/src/framework.c | 265 ++++++++-------- libs/framework/src/framework_private.h | 6 + libs/framework/src/service_reference.c | 3 +- libs/pushstreams/CMakeLists.txt | 3 +- libs/rcm/CMakeLists.txt | 37 +-- libs/utils/CMakeLists.txt | 331 ++++++++++---------- .../utils/error_injector}/CMakeLists.txt | 16 +- .../error_injector/celix_array_list/CMakeLists.txt | 2 +- .../celix_array_list/include/celix_array_list_ei.h | 0 .../celix_array_list/src/celix_array_list_ei.cc | 0 .../error_injector/celix_hash_map/CMakeLists.txt | 2 +- .../celix_hash_map/include/celix_hash_map_ei.h | 0 .../celix_hash_map/src/celix_hash_map_ei.cc | 0 .../celix_long_hash_map/CMakeLists.txt | 2 +- .../include/celix_long_hash_map_ei.h | 0 .../src/celix_long_hash_map_ei.cc | 0 .../error_injector/celix_properties/CMakeLists.txt | 2 +- .../celix_properties/include/celix_properties_ei.h | 0 .../celix_properties/src/celix_properties_ei.cc | 0 .../error_injector/celix_threads/CMakeLists.txt | 2 +- .../celix_threads/include/celix_threads_ei.h | 0 .../celix_threads/src/celix_threads_ei.cc | 0 .../error_injector/celix_utils/CMakeLists.txt | 2 +- .../celix_utils/include/celix_utils_ei.h | 0 .../celix_utils/src/celix_utils_ei.cc | 0 .../error_injector/celix_version/CMakeLists.txt | 2 +- .../celix_version/include/celix_version_ei.h | 0 .../celix_version/src/celix_version_ei.cc | 0 libs/{ => utils}/error_injector/zip/CMakeLists.txt | 3 +- .../error_injector/zip/include/zip_ei.h | 0 libs/{ => utils}/error_injector/zip/src/zip_ei.cc | 0 libs/utils/gtest/CMakeLists.txt | 3 +- libs/utils/gtest/src/ArrayListTestSuite.cc | 5 + .../gtest/src/CelixUtilsAutoCleanupTestSuite.cc | 190 ++++++++++++ libs/utils/gtest/src/HashMapTestSuite.cc | 10 + libs/utils/gtest/src/ThreadsTestSuite.cc | 3 +- libs/utils/include/celix_array_list.h | 3 + libs/utils/include/celix_cleanup.h | 131 ++++++++ libs/utils/include/celix_compiler.h | 48 +++ libs/utils/include/celix_long_hash_map.h | 3 + libs/utils/include/celix_properties.h | 9 +- libs/utils/include/celix_stdlib_cleanup.h | 48 +++ libs/utils/include/celix_string_hash_map.h | 3 + libs/utils/include/celix_threads.h | 155 +++++++++- libs/utils/include/celix_unistd_cleanup.h | 40 +++ libs/utils/include/celix_version.h | 3 + libs/utils/private/test/properties_test.cpp | 4 + libs/utils/src/celix_cleanup.c | 20 ++ libs/utils/src/celix_log_utils.c | 3 +- libs/utils/src/celix_threads.c | 18 +- .../bundles/event_admin/CMakeLists.txt | 2 +- .../bundles/pubsub_admin_nanomsg/CMakeLists.txt | 1 - .../src/pubsub_nanomsg_admin.cc | 6 +- .../src/pubsub_nanomsg_admin.h | 5 +- .../src/pubsub_nanomsg_common.cc | 3 +- .../src/pubsub_nanomsg_topic_sender.cc | 3 +- .../src/pubsub_nanomsg_topic_sender.h | 5 +- 313 files changed, 4980 insertions(+), 2303 deletions(-) diff --cc libs/framework/CMakeLists.txt index 31235e1c,14742d3f..11278062 --- a/libs/framework/CMakeLists.txt +++ b/libs/framework/CMakeLists.txt @@@ -15,74 -15,82 +15,82 @@@ # specific language governing permissions and limitations # under the License. - find_package(ZLIB REQUIRED) - find_package(libuuid REQUIRED) - find_package(CURL REQUIRED) + celix_subproject(FRAMEWORK "Option to build the Celix Framework" ON) + if (FRAMEWORK) + find_package(libuuid REQUIRED) + find_package(CURL REQUIRED) - set(FRAMEWORK_SRC - src/attribute.c src/bundle.c src/bundle_archive.c src/celix_bundle_cache.c - src/bundle_context.c src/bundle_revision.c - src/framework.c src/manifest.c - src/manifest_parser.c src/module.c - src/requirement.c src/capability.c src/wire.c - src/service_reference.c src/service_registration.c - src/service_registry.c src/service_tracker.c src/service_tracker_customizer.c - src/celix_log.c src/celix_launcher.c - src/celix_framework_factory.c - src/dm_dependency_manager_impl.c src/dm_component_impl.c - src/dm_service_dependency.c src/celix_libloader.c - src/framework_bundle_lifecycle_handler.c - src/celix_bundle_state.c - src/celix_framework_utils.c - src/celix_scheduled_event.c - ) - set(FRAMEWORK_DEPS libuuid::libuuid CURL::libcurl ZLIB::ZLIB ${CMAKE_DL_LIBS}) + set(FRAMEWORK_SRC + src/attribute.c src/bundle.c src/bundle_archive.c src/celix_bundle_cache.c + src/bundle_context.c src/bundle_revision.c + src/framework.c src/manifest.c + src/manifest_parser.c src/module.c - src/requirement.c src/capability.c src/resolver.c src/wire.c ++ src/requirement.c src/capability.c src/wire.c + src/service_reference.c src/service_registration.c + src/service_registry.c src/service_tracker.c src/service_tracker_customizer.c + src/celix_log.c src/celix_launcher.c + src/celix_framework_factory.c + src/dm_dependency_manager_impl.c src/dm_component_impl.c + src/dm_service_dependency.c src/celix_libloader.c + src/framework_bundle_lifecycle_handler.c + src/celix_bundle_state.c + src/celix_framework_utils.c + src/celix_scheduled_event.c + src/celix_framework_bundle.c + ) + set(FRAMEWORK_DEPS libuuid::libuuid CURL::libcurl ${CMAKE_DL_LIBS}) - add_library(framework SHARED ${FRAMEWORK_SRC}) + add_library(framework SHARED ${FRAMEWORK_SRC}) - set_target_properties(framework - PROPERTIES - C_VISIBILITY_PRESET hidden - "VERSION" "${CELIX_MAJOR}.${CELIX_MINOR}.${CELIX_MICRO}" - "SOVERSION" ${CELIX_MAJOR} - OUTPUT_NAME "celix_framework") - target_include_directories(framework PUBLIC - $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include> - ) - target_include_directories(framework PRIVATE ${CMAKE_CURRENT_LIST_DIR}/include_deprecated) - target_compile_options(framework PRIVATE -DUSE_FILE32API) - target_compile_options(framework PRIVATE -Wno-deprecated-declarations) #note part of the api is deprecated, ignore this warning on own api - target_link_libraries(framework PUBLIC Celix::utils ${CELIX_OPTIONAL_EXTRA_LIBS}) - target_link_libraries(framework PRIVATE ${FRAMEWORK_DEPS}) + set_target_properties(framework + PROPERTIES + "VERSION" "${CELIX_MAJOR}.${CELIX_MINOR}.${CELIX_MICRO}" + "SOVERSION" ${CELIX_MAJOR} + OUTPUT_NAME "celix_framework") + celix_target_hide_symbols(framework) + target_include_directories(framework PUBLIC + $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include> + ) + target_include_directories(framework PRIVATE ${CMAKE_CURRENT_LIST_DIR}/include_deprecated) + target_compile_options(framework PRIVATE -DUSE_FILE32API) + target_compile_options(framework PRIVATE -Wno-deprecated-declarations) #note part of the api is deprecated, ignore this warning on own api + target_link_libraries(framework PUBLIC Celix::utils ${CELIX_OPTIONAL_EXTRA_LIBS}) + target_link_libraries(framework PRIVATE ${FRAMEWORK_DEPS}) - generate_export_header(framework - BASE_NAME "CELIX_FRAMEWORK" - EXPORT_FILE_NAME "${CMAKE_BINARY_DIR}/celix/gen/includes/framework/celix_framework_export.h") - target_include_directories(framework PUBLIC $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/celix/gen/includes/framework>) - celix_deprecated_utils_headers(framework) + generate_export_header(framework + BASE_NAME "CELIX_FRAMEWORK" + EXPORT_FILE_NAME "${CMAKE_BINARY_DIR}/celix/gen/includes/framework/celix_framework_export.h") + target_include_directories(framework PUBLIC $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/celix/gen/includes/framework>) + celix_deprecated_utils_headers(framework) - install(TARGETS framework EXPORT celix LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT framework - INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/framework) - install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/framework COMPONENT framework) - install(DIRECTORY include_deprecated/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/framework COMPONENT framework) - install(DIRECTORY ${CMAKE_BINARY_DIR}/celix/gen/includes/framework/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/framework COMPONENT framework) + install(TARGETS framework EXPORT celix LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT framework + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/framework) + install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/framework COMPONENT framework) + if (CELIX_INSTALL_DEPRECATED_API) + install(DIRECTORY include_deprecated/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/framework COMPONENT framework) + endif () + install(DIRECTORY ${CMAKE_BINARY_DIR}/celix/gen/includes/framework/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/celix/framework COMPONENT framework) - #Alias setup to match external usage - add_library(Celix::framework ALIAS framework) + #Alias setup to match external usage + add_library(Celix::framework ALIAS framework) - if (ENABLE_TESTING AND CELIX_CXX17) #framework tests are C++17 - add_library(framework_cut STATIC ${FRAMEWORK_SRC}) - target_include_directories(framework_cut PUBLIC - ${CMAKE_CURRENT_LIST_DIR}/src - ${CMAKE_CURRENT_LIST_DIR}/include - ${CMAKE_BINARY_DIR}/celix/gen/includes/framework - ${CMAKE_CURRENT_LIST_DIR}/include_deprecated - ) - target_compile_options(framework_cut PRIVATE -DUSE_FILE32API) - target_compile_options(framework_cut PRIVATE -Wno-deprecated-declarations) #note part of the api is deprecated, ignore this warning on own api - target_link_libraries(framework_cut PUBLIC Celix::utils ${CELIX_OPTIONAL_EXTRA_LIBS} ${FRAMEWORK_DEPS}) - celix_deprecated_utils_headers(framework_cut) - add_subdirectory(gtest) - endif() + if (ENABLE_TESTING AND LINKER_WRAP_SUPPORTED) + add_subdirectory(error_injector) + endif () + if (ENABLE_TESTING AND CELIX_CXX17) #framework tests are C++17 + add_library(framework_cut STATIC ${FRAMEWORK_SRC}) + target_include_directories(framework_cut PUBLIC + ${CMAKE_CURRENT_LIST_DIR}/src + ${CMAKE_CURRENT_LIST_DIR}/include + ${CMAKE_BINARY_DIR}/celix/gen/includes/framework + ${CMAKE_CURRENT_LIST_DIR}/include_deprecated + ) + target_compile_options(framework_cut PRIVATE -DUSE_FILE32API) + target_compile_options(framework_cut PRIVATE -Wno-deprecated-declarations) #note part of the api is deprecated, ignore this warning on own api + target_link_libraries(framework_cut PUBLIC Celix::utils ${CELIX_OPTIONAL_EXTRA_LIBS} ${FRAMEWORK_DEPS}) + celix_deprecated_utils_headers(framework_cut) + add_subdirectory(gtest) + endif() - add_subdirectory(benchmark) + add_subdirectory(benchmark) + endif ()
