Improve the modular structure of cmake project, update conanfile accordingly.
authorPengZheng <howtofly@gmail.com>
Tue, 15 Mar 2022 04:55:18 +0000 (12:55 +0800)
committerPengZheng <howtofly@gmail.com>
Tue, 15 Mar 2022 04:55:18 +0000 (12:55 +0800)
commitfe5dc9ba205e63a17c85bd84cd2883e7737ee97f
tree5ece3f7b5c13d7db68371af7e28417887aec6dfb
parent9083b3de1ba12624e583d56670239d0bc4ba43de
Improve the modular structure of cmake project, update conanfile accordingly.

Replace the broken automatic dependency deduction in celix_subproject with automatic error detection. Use celix_subproject systematically to reflect the current modular structure, and thus allowing more to be opted out. Essential and non-essential usages are carefully differentiated: e.g., PUBSUB_PSA_WS uses HTTP_ADMIN essentially, while all bundles use log_helper non-essentially. Now it's possible to turn off all bundles.

Minor cmake style improvements, including: replacing add_dependencies with add_celix_bundle_dependencies; use ${CMAKE_INSTALL_INCLUDEDIR} instead of fixed `include`; replacing $<INSTALL_INTERFACE:> with INCLUDES DESTINATION.

conanfile.py is also updated according to the current project structure. The default options reflect a reasonably minimal and functionally stable configuration: framework without etcd, log_admin, http_admin, pubsub_pas_ws with no need of external discovery mechanism, rsa with preconfigured discovery.
66 files changed:
CMakeLists.txt
bundles/cxx_remote_services/CMakeLists.txt
bundles/cxx_remote_services/admin/gtest/CMakeLists.txt
bundles/cxx_remote_services/discovery_configured/gtest/CMakeLists.txt
bundles/cxx_remote_services/integration/CMakeLists.txt
bundles/cxx_remote_services/rsa_spi/CMakeLists.txt
bundles/deployment_admin/CMakeLists.txt
bundles/device_access/CMakeLists.txt
bundles/device_access/device_access/CMakeLists.txt
bundles/device_access/example/CMakeLists.txt
bundles/http_admin/CMakeLists.txt
bundles/http_admin/civetweb/CMakeLists.txt
bundles/http_admin/http_admin_api/CMakeLists.txt
bundles/logging/CMakeLists.txt
bundles/logging/log_admin/gtest/CMakeLists.txt
bundles/logging/log_helper/CMakeLists.txt
bundles/logging/log_service_api/CMakeLists.txt
bundles/logging/log_writers/CMakeLists.txt
bundles/logging/log_writers/syslog_writer/CMakeLists.txt
bundles/logging/log_writers/syslog_writer/gtest/CMakeLists.txt
bundles/pubsub/CMakeLists.txt
bundles/pubsub/examples/CMakeLists.txt
bundles/pubsub/integration/CMakeLists.txt
bundles/pubsub/pubsub_admin_tcp/CMakeLists.txt
bundles/pubsub/pubsub_admin_udp_mc/CMakeLists.txt
bundles/pubsub/pubsub_admin_websocket/CMakeLists.txt
bundles/pubsub/pubsub_admin_zmq/CMakeLists.txt
bundles/pubsub/pubsub_api/CMakeLists.txt
bundles/pubsub/pubsub_discovery/CMakeLists.txt
bundles/pubsub/pubsub_serializer_avrobin/gtest/CMakeLists.txt
bundles/pubsub/pubsub_serializer_json/CMakeLists.txt
bundles/pubsub/pubsub_serializer_json/gtest/CMakeLists.txt
bundles/pubsub/pubsub_spi/CMakeLists.txt
bundles/pubsub/pubsub_utils/CMakeLists.txt
bundles/pubsub/pubsub_utils/gtest/CMakeLists.txt
bundles/remote_services/CMakeLists.txt
bundles/remote_services/deprecated_rsa_spi/CMakeLists.txt
bundles/remote_services/discovery_configured/CMakeLists.txt
bundles/remote_services/discovery_etcd/CMakeLists.txt
bundles/remote_services/examples/interceptors/CMakeLists.txt
bundles/remote_services/remote_service_admin_dfi/CMakeLists.txt
bundles/remote_services/remote_service_admin_dfi/gtest/CMakeLists.txt
bundles/remote_services/remote_services_api/CMakeLists.txt
bundles/remote_services/topology_manager/CMakeLists.txt
bundles/remote_services/topology_manager/tms_tst/CMakeLists.txt
bundles/shell/remote_shell/CMakeLists.txt
bundles/shell/shell/CMakeLists.txt
bundles/shell/shell/gtest/CMakeLists.txt
bundles/shell/shell_bonjour/CMakeLists.txt
bundles/shell/shell_tui/CMakeLists.txt
bundles/shell/shell_wui/CMakeLists.txt
cmake/CelixConfig.cmake
cmake/celix_project/CelixProject.cmake
cmake/cmake_celix/BundlePackaging.cmake
cmake/cmake_celix/ContainerPackaging.cmake
conanfile.py
examples/celix-examples/CMakeLists.txt
libs/dependency_manager/CMakeLists.txt
libs/dfi/CMakeLists.txt
libs/etcdlib/CMakeLists.txt
libs/framework/CMakeLists.txt
libs/launcher/CMakeLists.txt
libs/promises/CMakeLists.txt
libs/pushstreams/CMakeLists.txt
libs/utils/CMakeLists.txt
misc/experimental/CMakeLists.txt