Apache Celix is a framework for C and C++14 to develop dynamic modular software applications using component and in-process service-oriented programming.
Currently Celix::framework depends on CURL::libcurl, but the only usage of libcurl is curl_global_init in the celixLauncher_launchWithProperties. Previously, Celix used libcurl to download bundle from external URL, but that has been removed from the framework. In resource-constrained environment, it is too much of a luxury to depend on libcurl just to use Celix framework.
IMHO, libcurl is not the only library needing global initialization (e.g. OpenSSL is another example), and does not really deserve any special treatment.
Instead of doing this kind of global initialization in the framework, we could advise our users to setup the global environment in a custom launcher. For Celix's internal use, I will let Celix::launcher depend on libcurl.
Considering libcurl initialization is already part of the celixLauncher_launchWithProperties API, I will add an Conan/CMake option to opt out libcurl dependency.
Currently
Celix::framework
depends onCURL::libcurl
, but the only usage of libcurl iscurl_global_init
in thecelixLauncher_launchWithProperties
. Previously, Celix used libcurl to download bundle from external URL, but that has been removed from the framework. In resource-constrained environment, it is too much of a luxury to depend on libcurl just to use Celix framework.IMHO, libcurl is not the only library needing global initialization (e.g. OpenSSL is another example), and does not really deserve any special treatment. Instead of doing this kind of global initialization in the framework, we could advise our users to setup the global environment in a custom launcher. For Celix's internal use, I will let
Celix::launcher
depend on libcurl.Considering libcurl initialization is already part of the
celixLauncher_launchWithProperties
API, I will add an Conan/CMake option to opt out libcurl dependency.