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/23 04:39:52 UTC
[celix] branch feature/483-conan-2-support updated: Add test_package for Conan2.
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
The following commit(s) were added to refs/heads/feature/483-conan-2-support by this push:
new 00336571 Add test_package for Conan2.
00336571 is described below
commit 00336571046022d1d932db56befe0005cfeb45a4
Author: PengZheng <ho...@gmail.com>
AuthorDate: Wed Aug 23 12:39:41 2023 +0800
Add test_package for Conan2.
---
conanfile.py | 4 +-
examples/conan_test_package_v2/CMakeLists.txt | 19 +++
examples/conan_test_package_v2/conanfile.py | 178 ++++++++++++++++++++++++++
3 files changed, 200 insertions(+), 1 deletion(-)
diff --git a/conanfile.py b/conanfile.py
index d010c56a..9c1e2c60 100644
--- a/conanfile.py
+++ b/conanfile.py
@@ -19,6 +19,7 @@ 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
+from conan.tools.files import copy
import os
@@ -440,7 +441,7 @@ class CelixConan(ConanFile):
cmake.build()
def package(self):
- self.copy("LICENSE", dst="licenses", src=self.source_folder)
+ copy(self, "LICENSE", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses"))
cmake = self._configure_cmake()
cmake.install()
@@ -451,3 +452,4 @@ class CelixConan(ConanFile):
self.cpp_info.build_modules["cmake"].append(os.path.join("lib", "cmake", "Celix", "CelixConfig.cmake"))
self.cpp_info.build_modules["cmake_find_package"].append(os.path.join("lib", "cmake",
"Celix", "CelixConfig.cmake"))
+ self.cpp_info.set_property("cmake_build_modules", [os.path.join("lib", "cmake", "Celix", "CelixConfig.cmake")])
diff --git a/examples/conan_test_package_v2/CMakeLists.txt b/examples/conan_test_package_v2/CMakeLists.txt
new file mode 100644
index 00000000..6ab3a201
--- /dev/null
+++ b/examples/conan_test_package_v2/CMakeLists.txt
@@ -0,0 +1,19 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+cmake_minimum_required (VERSION 3.14)
+project(test_package_v2)
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../conan_test_package ${CMAKE_CURRENT_BINARY_DIR}/conan_test_package)
\ No newline at end of file
diff --git a/examples/conan_test_package_v2/conanfile.py b/examples/conan_test_package_v2/conanfile.py
new file mode 100644
index 00000000..587a6acb
--- /dev/null
+++ b/examples/conan_test_package_v2/conanfile.py
@@ -0,0 +1,178 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+from conan import ConanFile
+from conan.tools.cmake import CMake, CMakeToolchain, cmake_layout
+from conan.tools.build import can_run
+import os
+
+
+class TestPackageConan(ConanFile):
+ settings = "os", "arch", "compiler", "build_type"
+ generators = "CMakeDeps", "VirtualRunEnv"
+ test_type = "explicit"
+
+ def layout(self):
+ cmake_layout(self)
+
+ def requirements(self):
+ self.requires(self.tested_reference_str)
+
+ def generate(self):
+ tc = CMakeToolchain(self)
+ celix_options = self.dependencies["celix"].options
+ tc.cache_variables["TEST_FRAMEWORK"] = celix_options.build_framework
+ tc.cache_variables["TEST_HTTP_ADMIN"] = celix_options.build_http_admin
+ tc.cache_variables["TEST_LOG_SERVICE"] = celix_options.build_log_service
+ tc.cache_variables["TEST_SYSLOG_WRITER"] = celix_options.build_syslog_writer
+ tc.cache_variables["TEST_PUBSUB"] = celix_options.build_pubsub
+ tc.cache_variables["TEST_PSA_ZMQ"] = celix_options.build_pubsub_psa_zmq
+ tc.cache_variables["TEST_PSA_TCP"] = celix_options.build_pubsub_psa_tcp
+ tc.cache_variables["TEST_PSA_UDP_MC"] = celix_options.build_pubsub_psa_udp_mc
+ tc.cache_variables["TEST_PSA_WS"] = celix_options.build_pubsub_psa_ws
+ tc.cache_variables["TEST_PSA_DISCOVERY_ETCD"] = celix_options.build_pubsub_discovery_etcd
+ tc.cache_variables["TEST_RSA"] = celix_options.build_remote_service_admin
+ tc.cache_variables["TEST_RSA_DFI"] = celix_options.build_rsa_remote_service_admin_dfi
+ tc.cache_variables["TEST_RSA_SHM_V2"] = celix_options.build_rsa_remote_service_admin_shm_v2
+ tc.cache_variables["TEST_RSA_RPC_JSON"] = celix_options.build_rsa_json_rpc
+ tc.cache_variables["TEST_RSA_DISCOVERY_CONFIGURED"] = celix_options.build_rsa_discovery_configured
+ tc.cache_variables["TEST_RSA_DISCOVERY_ETCD"] = celix_options.build_rsa_discovery_etcd
+ tc.cache_variables["TEST_RSA_DISCOVERY_ZEROCONF"] = celix_options.build_rsa_discovery_zeroconf
+ tc.cache_variables["TEST_SHELL"] = celix_options.build_shell
+ if celix_options.build_shell:
+ tc.cache_variables["TEST_CXX_SHELL"] = celix_options.celix_cxx17 or celix_options.celix_cxx14
+ tc.cache_variables["TEST_REMOTE_SHELL"] = celix_options.build_remote_shell
+ tc.cache_variables["TEST_SHELL_TUI"] = celix_options.build_shell_tui
+ tc.cache_variables["TEST_SHELL_WUI"] = celix_options.build_shell_wui
+ tc.cache_variables["TEST_ETCD_LIB"] = celix_options.build_celix_etcdlib
+ tc.cache_variables["TEST_LAUNCHER"] = celix_options.build_launcher
+ tc.cache_variables["TEST_PROMISES"] = celix_options.build_promises
+ tc.cache_variables["TEST_PUSHSTREAMS"] = celix_options.build_pushstreams
+ tc.cache_variables["TEST_DEPLOYMENT_ADMIN"] = celix_options.build_deployment_admin
+ tc.cache_variables["TEST_LOG_HELPER"] = celix_options.build_log_helper
+ tc.cache_variables["TEST_LOG_SERVICE_API"] = celix_options.build_log_service_api
+ tc.cache_variables["TEST_PUBSUB_WIRE_PROTOCOL_V1"] = celix_options.build_pubsub_wire_protocol_v1
+ tc.cache_variables["TEST_PUBSUB_WIRE_PROTOCOL_V2"] = celix_options.build_pubsub_wire_protocol_v2
+ tc.cache_variables["TEST_PUBSUB_JSON_SERIALIZER"] = celix_options.build_pubsub_json_serializer
+ tc.cache_variables["TEST_PUBSUB_AVROBIN_SERIALIZER"] = celix_options.build_pubsub_avrobin_serializer
+ tc.cache_variables["TEST_CXX_REMOTE_SERVICE_ADMIN"] = celix_options.build_cxx_remote_service_admin
+ tc.cache_variables["TEST_SHELL_API"] = celix_options.build_shell_api
+ tc.cache_variables["TEST_SHELL_BONJOUR"] = celix_options.build_shell_bonjour
+ tc.cache_variables["TEST_CELIX_DFI"] = celix_options.build_celix_dfi
+ tc.cache_variables["TEST_UTILS"] = celix_options.build_utils
+ tc.cache_variables["TEST_COMPONENTS_READY_CHECK"] = celix_options.build_components_ready_check
+ tc.user_presets_path = False
+ tc.generate()
+
+ def build(self):
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def test(self):
+ if can_run(self):
+ celix_options = self.dependencies["celix"].options
+ if celix_options.build_framework:
+ self.run("./use_framework", run_environment=True)
+ if celix_options.build_http_admin:
+ self.run("./use_http_admin", cwd=os.path.join("deploy", "use_http_admin"), run_environment=True)
+ if celix_options.build_log_service:
+ self.run("./use_log_writer", cwd=os.path.join("deploy", "use_log_writer"), run_environment=True)
+ if celix_options.build_syslog_writer:
+ self.run("./use_syslog_writer", cwd=os.path.join("deploy", "use_syslog_writer"), run_environment=True)
+ if celix_options.build_pubsub:
+ self.run("./use_my_psa", cwd=os.path.join("deploy", "use_my_psa"), run_environment=True)
+ if celix_options.build_pubsub_psa_zmq:
+ self.run("./use_psa_zmq", cwd=os.path.join("deploy", "use_psa_zmq"), run_environment=True)
+ if celix_options.build_pubsub_psa_tcp:
+ self.run("./use_psa_tcp", cwd=os.path.join("deploy", "use_psa_tcp"), run_environment=True)
+ if celix_options.build_pubsub_psa_udp_mc:
+ self.run("./use_psa_udp_mc", cwd=os.path.join("deploy", "use_psa_udp_mc"), run_environment=True)
+ if celix_options.build_pubsub_psa_ws:
+ self.run("./use_psa_ws", cwd=os.path.join("deploy", "use_psa_ws"), run_environment=True)
+ if celix_options.build_pubsub_discovery_etcd and celix_options.build_launcher:
+ self.run("./use_psa_discovery_etcd",
+ cwd=os.path.join("deploy", "use_psa_discovery_etcd"), run_environment=True)
+ if celix_options.build_remote_service_admin:
+ self.run("./use_my_rsa", cwd=os.path.join("deploy", "use_my_rsa"), run_environment=True)
+ self.run("./use_c_rsa_spi", run_environment=True)
+ if celix_options.build_rsa_remote_service_admin_dfi and celix_options.build_launcher:
+ self.run("./use_rsa_dfi", cwd=os.path.join("deploy", "use_rsa_dfi"), run_environment=True)
+ if celix_options.build_rsa_remote_service_admin_shm_v2:
+ self.run("./use_rsa_shm_v2", cwd=os.path.join("deploy", "use_rsa_shm_v2"), run_environment=True)
+ if celix_options.build_rsa_json_rpc:
+ self.run("./use_rsa_rpc_json", cwd=os.path.join("deploy", "use_rsa_rpc_json"), run_environment=True)
+ if celix_options.build_rsa_discovery_configured and celix_options.build_launcher:
+ self.run("./use_rsa_configured", cwd=os.path.join("deploy", "use_rsa_configured"), run_environment=True)
+ if celix_options.build_rsa_discovery_etcd and celix_options.build_launcher:
+ self.run("./use_rsa_etcd", cwd=os.path.join("deploy", "use_rsa_etcd"), run_environment=True)
+ if celix_options.build_rsa_discovery_zeroconf:
+ self.run("./use_rsa_discovery_zeroconf",
+ cwd=os.path.join("deploy", "use_rsa_discovery_zeroconf"), run_environment=True)
+ if celix_options.build_shell:
+ self.run("./use_shell", run_environment=True)
+ if celix_options.celix_cxx17 or celix_options.celix_cxx14:
+ self.run("./use_cxx_shell", run_environment=True)
+ if celix_options.build_remote_shell:
+ self.run("./use_remote_shell", cwd=os.path.join("deploy", "use_remote_shell"), run_environment=True)
+ if celix_options.build_shell_tui:
+ self.run("./use_shell_tui", cwd=os.path.join("deploy", "use_shell_tui"), run_environment=True)
+ if celix_options.build_shell_wui:
+ self.run("./use_shell_wui", cwd=os.path.join("deploy", "use_shell_wui"), run_environment=True)
+ if celix_options.build_celix_etcdlib:
+ self.run("./use_etcd_lib", run_environment=True)
+ if celix_options.build_launcher:
+ self.run("./use_launcher", cwd=os.path.join("deploy", "use_launcher"), run_environment=True)
+ if celix_options.build_promises:
+ self.run("./use_promises", run_environment=True)
+ if celix_options.build_pushstreams:
+ self.run("./use_pushstreams", run_environment=True)
+ if celix_options.build_deployment_admin:
+ self.run("./use_deployment_admin",
+ cwd=os.path.join("deploy", "use_deployment_admin"), run_environment=True)
+ if celix_options.build_log_helper:
+ self.run("./use_log_helper", run_environment=True)
+ if celix_options.build_log_service_api:
+ self.run("./use_log_service_api", run_environment=True)
+ if celix_options.build_pubsub_wire_protocol_v1:
+ self.run("./use_pubsub_wire_protocol_v1",
+ cwd=os.path.join("deploy", "use_pubsub_wire_protocol_v1"), run_environment=True)
+ if celix_options.build_pubsub_wire_protocol_v2:
+ self.run("./use_pubsub_wire_protocol_v2",
+ cwd=os.path.join("deploy", "use_pubsub_wire_protocol_v2"), run_environment=True)
+ if celix_options.build_pubsub_json_serializer:
+ self.run("./use_pubsub_json_serializer",
+ cwd=os.path.join("deploy", "use_pubsub_json_serializer"), run_environment=True)
+ if celix_options.build_pubsub_avrobin_serializer:
+ self.run("./use_pubsub_avrobin_serializer",
+ cwd=os.path.join("deploy", "use_pubsub_avrobin_serializer"), run_environment=True)
+ if celix_options.build_cxx_remote_service_admin:
+ self.run("./use_cxx_remote_service_admin",
+ cwd=os.path.join("deploy", "use_cxx_remote_service_admin"), run_environment=True)
+ self.run("./use_rsa_spi", run_environment=True)
+ if celix_options.build_shell_api:
+ self.run("./use_shell_api", run_environment=True)
+ if celix_options.build_shell_bonjour:
+ self.run("./use_shell_bonjour",
+ cwd=os.path.join("deploy", "use_shell_bonjour"), run_environment=True)
+ if celix_options.build_celix_dfi:
+ self.run("./use_celix_dfi", run_environment=True)
+ if celix_options.build_utils:
+ self.run("./use_utils", run_environment=True)
+ if celix_options.build_components_ready_check:
+ self.run("./use_components_ready_check",
+ cwd=os.path.join("deploy", "use_components_ready_check"), run_environment=True)