in conanfile.py [0:0]
def configure(self):
# copy options to options, fill in defaults if not set
options = {}
for opt in self._celix_defaults.keys():
options[opt] = self.options.get_safe(opt).value
if options[opt] is None:
options[opt] = self._celix_defaults[opt]
if options["build_all"]:
for opt in options.keys():
if opt.startswith('build_'):
options[opt] = True
if options["build_event_admin_examples"]:
options["build_event_admin"] = True
options["build_log_service"] = True
options["build_shell_tui"] = True
options["build_launcher"] = True
options["build_event_admin_remote_provider_mqtt"] = True
options["build_rsa_discovery_zeroconf"] = True
if self.settings.os != "Linux":
options["build_rsa_remote_service_admin_shm_v2"] = False
options["build_rsa_discovery_zeroconf"] = False
if options["enable_code_coverage"]:
options["enable_testing"] = True
if options["build_examples"]:
options["build_shell_tui"] = True
options["build_shell_wui"] = True
options["build_log_service"] = True
options["build_syslog_writer"] = True
if options["build_event_admin_remote_provider_mqtt"]:
options["build_event_admin"] = True
options["build_remote_service_admin"] = True
options["build_shell_api"] = True
if options["build_cxx_rsa_integration"]:
options["build_cxx_remote_service_admin"] = True
options["build_pushstreams"] = True
options["build_promises"] = True
options["build_log_helper"] = True
options["build_shell"] = True
options["build_shell_tui"] = True
options["build_shell_api"] = True
if options["build_cxx_remote_service_admin"]:
options["build_framework"] = True
options["build_log_helper"] = True
options["celix_cxx17"] = True
if options["build_rsa_discovery_etcd"]:
options["build_celix_etcdlib"] = True
options["build_rsa_discovery_common"] = True
if options["build_rsa_discovery_configured"]:
options["build_rsa_discovery_common"] = True
if options["build_rsa_discovery_common"] or options["build_rsa_discovery_zeroconf"] \
or options["build_rsa_remote_service_admin_dfi"] or options["build_rsa_json_rpc"] \
or options["build_rsa_remote_service_admin_shm_v2"]:
options["build_remote_service_admin"] = True
if options["build_remote_service_admin"]:
options["build_framework"] = True
options["build_log_helper"] = True
options["build_celix_dfi"] = True
options["celix_install_deprecated_api"] = True
if options["build_event_admin"]:
options["build_framework"] = True
options["build_log_helper"] = True
if options["build_remote_shell"]:
options["build_shell"] = True
if options["build_shell_wui"]:
options["build_shell"] = True
options["build_http_admin"] = True
if options["build_shell_tui"]:
options["build_shell"] = True
if options["build_shell"]:
options["build_shell_api"] = True
options["build_log_helper"] = True
options["build_framework"] = True
if options["build_http_admin"]:
options["build_framework"] = True
if options["build_syslog_writer"]:
options["build_log_service"] = True
if options["build_log_service"]:
options["build_log_service_api"] = True
options["build_shell_api"] = True
options["build_framework"] = True
options["build_log_helper"] = True
if options["build_shell_api"]:
options["build_utils"] = True
if options["build_log_helper"]:
options["build_log_service_api"] = True
options["build_framework"] = True
if options["build_log_service_api"]:
options["build_utils"] = True
if options["celix_install_deprecated_api"]:
options["build_framework"] = True
if options["build_components_ready_check"]:
options["build_framework"] = True
if options["build_rcm"]:
options["build_utils"] = True
if options["build_launcher"]:
options["build_framework"] = True
if options["build_celix_dfi"]:
options["build_utils"] = True
if options["build_framework"]:
options["build_utils"] = True
if options["build_pushstreams"]:
options["build_promises"] = True
if options["build_promises"]:
options["celix_cxx17"] = True
if options["celix_cxx17"]:
options["celix_cxx14"] = True
for opt in self._celix_defaults.keys():
setattr(self.options, opt, options[opt])
del options
# Conan 2 does not support set dependency option in requirements()
# https://github.com/conan-io/conan/issues/14528#issuecomment-1685344080
if self.options.build_utils:
self.options['libzip'].shared = True
if self.options.build_framework:
self.options['util-linux-libuuid'].shared = True
if ((self.options.build_framework and self.options.framework_curlinit)
or self.options.build_celix_etcdlib
or self.options.build_rsa_discovery_common or self.options.build_rsa_remote_service_admin_dfi
or self.options.build_launcher):
self.options['libcurl'].shared = True
self.options['openssl'].shared = True
if self.options.enable_testing:
self.options['gtest'].shared = True
if (self.options.build_rsa_discovery_common
or (self.options.build_rsa_remote_service_admin_dfi and self.options.enable_testing)):
self.options['libxml2'].shared = True
if self.options.build_http_admin or self.options.build_rsa_discovery_common \
or self.options.build_rsa_remote_service_admin_dfi:
self.options['civetweb'].shared = True
self.options['openssl'].shared = True
if self.options.build_celix_dfi:
self.options['libffi'].shared = True
if self.options.build_utils or self.options.build_celix_dfi or self.options.build_celix_etcdlib or self.options.build_event_admin_remote_provider_mqtt:
self.options['jansson'].shared = True
if self.options.build_event_admin_remote_provider_mqtt:
self.options['mosquitto'].shared = True
if self.options.enable_testing:
self.options['mosquitto'].broker = True