You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@celix.apache.org by pe...@apache.org on 2023/08/22 09:56:26 UTC

[celix] branch feature/483-conan-2-support updated (6d25aa62 -> 73f44eaf)

This is an automated email from the ASF dual-hosted git repository.

pengzheng pushed a change to branch feature/483-conan-2-support
in repository https://gitbox.apache.org/repos/asf/celix.git


    from 6d25aa62 Implement dynamic defaults.
     new c181c050 Simplify options settings.
     new 73f44eaf Fix version conflict of openssl caused by civetweb.

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 conanfile.py | 99 +++++++++++++++---------------------------------------------
 1 file changed, 24 insertions(+), 75 deletions(-)


[celix] 01/02: Simplify options settings.

Posted by pe...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

pengzheng pushed a commit to branch feature/483-conan-2-support
in repository https://gitbox.apache.org/repos/asf/celix.git

commit c181c050ebc9f4b1834e27999184d092f0a83df5
Author: PengZheng <ho...@gmail.com>
AuthorDate: Tue Aug 22 15:12:30 2023 +0800

    Simplify options settings.
---
 conanfile.py | 97 ++++++++++++++----------------------------------------------
 1 file changed, 23 insertions(+), 74 deletions(-)

diff --git a/conanfile.py b/conanfile.py
index 718a4580..c1325948 100644
--- a/conanfile.py
+++ b/conanfile.py
@@ -15,7 +15,7 @@
 # specific language governing permissions and limitations
 # under the License.
 
-from conan import ConanFile, tools
+from conan import ConanFile, conan_version
 from conan.errors import ConanInvalidConfiguration
 from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain
 from conan.tools.scm import Version
@@ -39,71 +39,6 @@ class CelixConan(ConanFile):
                   "It is a framework to develop (dynamic) modular software applications " \
                   "using component and/or service-oriented programming."
 
-    _celix_options = {
-        "enable_testing": [True, False],
-        "enable_code_coverage": [True, False],
-        "enable_address_sanitizer": [True, False],
-        "enable_undefined_sanitizer": [True, False],
-        "enable_thread_sanitizer": [True, False],
-        "enable_testing_dependency_manager_for_cxx11": [True, False],
-        "enable_testing_for_cxx14": [True, False],
-        "build_all": [True, False],
-        "build_deployment_admin": [True, False],
-        "build_http_admin": [True, False],
-        "build_log_service": [True, False],
-        "build_log_helper": [True, False],
-        "build_log_service_api": [True, False],
-        "build_syslog_writer": [True, False],
-        "build_pubsub": [True, False],
-        "build_pubsub_wire_protocol_v1": [True, False],
-        "build_pubsub_wire_protocol_v2": [True, False],
-        "build_pubsub_json_serializer": [True, False],
-        "build_pubsub_avrobin_serializer": [True, False],
-        "build_pubsub_psa_zmq": [True, False],
-        "build_pubsub_examples": [True, False],
-        "build_pubsub_integration": [True, False],
-        "build_pubsub_psa_tcp": [True, False],
-        "build_pubsub_psa_udp_mc": [True, False],
-        "build_pubsub_psa_ws": [True, False],
-        "build_pubsub_discovery_etcd": [True, False],
-        "build_cxx_remote_service_admin": [True, False],
-        "build_cxx_rsa_integration": [True, False],
-        "build_remote_service_admin": [True, False],
-        "build_rsa_remote_service_admin_dfi": [True, False],
-        "build_rsa_discovery_common": [True, False],
-        "build_rsa_discovery_configured": [True, False],
-        "build_rsa_discovery_etcd": [True, False],
-        "build_rsa_remote_service_admin_shm_v2": [True, False],
-        "build_rsa_json_rpc": [True, False],
-        "build_rsa_discovery_zeroconf": [True, False],
-        "build_shell": [True, False],
-        "build_shell_api": [True, False],
-        "build_remote_shell": [True, False],
-        "build_shell_bonjour": [True, False],
-        "build_shell_tui": [True, False],
-        "build_shell_wui": [True, False],
-        "build_components_ready_check": [True, False],
-        "build_examples": [True, False],
-        "build_celix_etcdlib": [True, False],
-        "build_launcher": [True, False],
-        "build_promises": [True, False],
-        "build_pushstreams": [True, False],
-        "build_experimental": [True, False],
-        "build_celix_dfi": [True, False],
-        "build_dependency_manager": [True, False],
-        "build_dependency_manager_cxx": [True, False],
-        "build_framework": [True, False],
-        "build_rcm": [True, False],
-        "build_utils": [True, False],
-        "celix_cxx14": [True, False],
-        "celix_cxx17": [True, False],
-        "celix_install_deprecated_api": [True, False],
-        "celix_use_compression_for_bundle_zips": [True, False],
-        "celix_err_buffer_size": ["ANY"],
-        "enable_cmake_warning_tests": [True, False],
-        "enable_testing_on_ci": [True, False],
-        "framework_curlinit": [True, False],
-    }
     _celix_defaults = {
         "enable_testing": False,
         "enable_code_coverage": False,
@@ -164,13 +99,21 @@ class CelixConan(ConanFile):
         "celix_cxx17": True,
         "celix_install_deprecated_api": False,
         "celix_use_compression_for_bundle_zips": True,
-        "celix_err_buffer_size": 512,
         "enable_cmake_warning_tests": False,
         "enable_testing_on_ci": False,
         "framework_curlinit": True,
     }
+    options = {
+        "celix_err_buffer_size": ["ANY"],
+    }
+    default_options = {
+        "celix_err_buffer_size": 512,
+    }
+
+    for comp in _celix_defaults.keys():
+        options[comp] = [True, False]
+    del comp
 
-    options = _celix_options
     _cmake = None
 
     def validate(self):
@@ -212,9 +155,9 @@ class CelixConan(ConanFile):
             self.test_requires("cpputest/4.0")
 
     def configure(self):
-        # copy options to _celix_options, fill in defaults if not set
+        # copy options to options, fill in defaults if not set
         options = {}
-        for opt in self._celix_options.keys():
+        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]
@@ -392,10 +335,10 @@ class CelixConan(ConanFile):
         if options["celix_cxx17"]:
             options["celix_cxx14"] = True
 
-        for opt in self._celix_options.keys():
+        for opt in self._celix_defaults.keys():
             setattr(self.options, opt, options[opt])
 
-        # Once we drop Conan1 support, the following could be merged into requirements()
+        # 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
@@ -406,6 +349,7 @@ class CelixConan(ConanFile):
                 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.build_deployment_admin:
             self.options['zlib'].shared = True
         if self.options.enable_testing:
@@ -420,6 +364,7 @@ class CelixConan(ConanFile):
         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_celix_dfi or self.options.build_celix_etcdlib:
@@ -455,12 +400,16 @@ class CelixConan(ConanFile):
             # TODO: To be replaced with mdnsresponder/1790.80.10, resolve some problems of mdnsresponder
             # https://github.com/conan-io/conan-center-index/pull/16254
             self.requires("mdnsresponder/1310.140.1")
+        # A stop gap for https://github.com/conan-io/conan/issues/14535
+        lst = [x.ref.name for x in self.requires.values()]
+        if "libcurl" in lst or "civetweb" in lst:
+            self.requires("openssl/1.1.1t")
         self.validate()
 
     def generate(self):
         tc = CMakeToolchain(self)
-        for opt in self._celix_options.keys():
-            tc.cache_variables[opt.upper()] = self.options.get_safe(opt, self._celix_defaults[opt])
+        for opt in self._celix_defaults.keys():
+            tc.cache_variables[opt.upper()] = self.options.get_safe(opt)
         if self.options.enable_testing:
             for k in self.deps_cpp_info.deps:
                 if k == "mdnsresponder":


[celix] 02/02: Fix version conflict of openssl caused by civetweb.

Posted by pe...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

pengzheng pushed a commit to branch feature/483-conan-2-support
in repository https://gitbox.apache.org/repos/asf/celix.git

commit 73f44eafda02a03e75e85754ba750ef1eb64c500
Author: PengZheng <ho...@gmail.com>
AuthorDate: Tue Aug 22 17:56:13 2023 +0800

    Fix version conflict of openssl caused by civetweb.
---
 conanfile.py | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/conanfile.py b/conanfile.py
index c1325948..d010c56a 100644
--- a/conanfile.py
+++ b/conanfile.py
@@ -337,6 +337,7 @@ class CelixConan(ConanFile):
 
         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
@@ -391,7 +392,7 @@ class CelixConan(ConanFile):
             self.requires("czmq/4.2.0")
         if self.options.build_http_admin or self.options.build_rsa_discovery_common \
                 or self.options.build_rsa_remote_service_admin_dfi:
-            self.requires("civetweb/1.15")
+            self.requires("civetweb/1.16")
         if self.options.build_celix_dfi:
             self.requires("libffi/[>=3.2.1 <4.0.0]")
         if self.options.build_celix_dfi or self.options.build_celix_etcdlib:
@@ -400,10 +401,8 @@ class CelixConan(ConanFile):
             # TODO: To be replaced with mdnsresponder/1790.80.10, resolve some problems of mdnsresponder
             # https://github.com/conan-io/conan-center-index/pull/16254
             self.requires("mdnsresponder/1310.140.1")
-        # A stop gap for https://github.com/conan-io/conan/issues/14535
-        lst = [x.ref.name for x in self.requires.values()]
-        if "libcurl" in lst or "civetweb" in lst:
-            self.requires("openssl/1.1.1t")
+        # the latest civetweb (1.16) is not ready for openssl3
+        self.requires("openssl/1.1.1t", override=True)
         self.validate()
 
     def generate(self):
@@ -425,6 +424,7 @@ class CelixConan(ConanFile):
         tc.cache_variables["CELIX_MAJOR"] = v.major.value
         tc.cache_variables["CELIX_MINOR"] = v.minor.value
         tc.cache_variables["CELIX_MICRO"] = v.patch.value
+        tc.user_presets_path = False
         tc.generate()
 
     def _configure_cmake(self):