| # 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 conans import CMake, ConanFile, tools |
| import os |
| |
| |
| class TestPackageConan(ConanFile): |
| settings = "os", "arch", "compiler", "build_type" |
| generators = "cmake_paths", "cmake_find_package" |
| # requires = "celix/2.3.0@docker/test" |
| |
| def build(self): |
| cmake = CMake(self) |
| cmake.definitions["ENABLE_ADDRESS_SANITIZER"] = self.options["celix"].enable_address_sanitizer |
| cmake.definitions["TEST_FRAMEWORK"] = self.options["celix"].build_framework |
| cmake.definitions["TEST_HTTP_ADMIN"] = self.options["celix"].build_http_admin |
| cmake.definitions["TEST_LOG_SERVICE"] = self.options["celix"].build_log_service |
| cmake.definitions["TEST_SYSLOG_WRITER"] = self.options["celix"].build_syslog_writer |
| cmake.definitions["TEST_RSA"] = self.options["celix"].build_remote_service_admin |
| cmake.definitions["TEST_RSA_DFI"] = self.options["celix"].build_rsa_remote_service_admin_dfi |
| cmake.definitions["TEST_RSA_SHM_V2"] = self.options["celix"].build_rsa_remote_service_admin_shm_v2 |
| cmake.definitions["TEST_RSA_RPC_JSON"] = self.options["celix"].build_rsa_json_rpc |
| cmake.definitions["TEST_RSA_DISCOVERY_CONFIGURED"] = self.options["celix"].build_rsa_discovery_configured |
| cmake.definitions["TEST_RSA_DISCOVERY_ETCD"] = self.options["celix"].build_rsa_discovery_etcd |
| cmake.definitions["TEST_RSA_DISCOVERY_ZEROCONF"] = self.options["celix"].build_rsa_discovery_zeroconf |
| cmake.definitions["TEST_SHELL"] = self.options["celix"].build_shell |
| if self.options["celix"].build_shell: |
| cmake.definitions["TEST_CXX_SHELL"] = self.options["celix"].celix_cxx17 or self.options["celix"].celix_cxx14 |
| cmake.definitions["TEST_REMOTE_SHELL"] = self.options["celix"].build_remote_shell |
| cmake.definitions["TEST_SHELL_TUI"] = self.options["celix"].build_shell_tui |
| cmake.definitions["TEST_SHELL_WUI"] = self.options["celix"].build_shell_wui |
| cmake.definitions["TEST_ETCD_LIB"] = self.options["celix"].build_celix_etcdlib |
| cmake.definitions["TEST_LAUNCHER"] = self.options["celix"].build_launcher |
| cmake.definitions["TEST_PROMISES"] = self.options["celix"].build_promises |
| cmake.definitions["TEST_PUSHSTREAMS"] = self.options["celix"].build_pushstreams |
| cmake.definitions["TEST_LOG_HELPER"] = self.options["celix"].build_log_helper |
| cmake.definitions["TEST_LOG_SERVICE_API"] = self.options["celix"].build_log_service_api |
| cmake.definitions["TEST_CXX_REMOTE_SERVICE_ADMIN"] = self.options["celix"].build_cxx_remote_service_admin |
| cmake.definitions["TEST_SHELL_API"] = self.options["celix"].build_shell_api |
| cmake.definitions["TEST_CELIX_DFI"] = self.options["celix"].build_celix_dfi |
| cmake.definitions["TEST_UTILS"] = self.options["celix"].build_utils |
| cmake.definitions["TEST_EVENT_ADMIN"] = self.options["celix"].build_event_admin |
| cmake.definitions["TEST_EVENT_ADMIN_REMOTE_PROVIDER_MQTT"] = self.options["celix"].build_event_admin_remote_provider_mqtt |
| cmake.definitions["TEST_COMPONENTS_READY_CHECK"] = self.options["celix"].build_components_ready_check |
| cmake.definitions["CMAKE_PROJECT_test_package_INCLUDE"] = os.path.join(self.build_folder, "conan_paths.cmake") |
| # the following is workaround https://github.com/conan-io/conan/issues/7192 |
| if self.settings.os == "Linux": |
| cmake.definitions["CMAKE_EXE_LINKER_FLAGS"] = "-Wl,--unresolved-symbols=ignore-in-shared-libs" |
| cmake.configure() |
| cmake.build() |
| |
| def test(self): |
| if not tools.cross_building(self, skip_x64_x86=True): |
| if self.options["celix"].build_framework: |
| self.run("./use_framework", run_environment=True) |
| if self.options["celix"].build_http_admin: |
| self.run("./use_http_admin", cwd=os.path.join("deploy", "use_http_admin"), run_environment=True) |
| if self.options["celix"].build_log_service: |
| self.run("./use_log_writer", cwd=os.path.join("deploy", "use_log_writer"), run_environment=True) |
| if self.options["celix"].build_syslog_writer: |
| self.run("./use_syslog_writer", cwd=os.path.join("deploy", "use_syslog_writer"), run_environment=True) |
| if self.options["celix"].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) |
| self.run("./use_rsa_utils", run_environment=True) |
| if self.options["celix"].build_rsa_remote_service_admin_dfi and self.options["celix"].build_launcher: |
| self.run("./use_rsa_dfi", cwd=os.path.join("deploy", "use_rsa_dfi"), run_environment=True) |
| if self.options["celix"].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 self.options["celix"].build_rsa_json_rpc: |
| self.run("./use_rsa_rpc_json", cwd=os.path.join("deploy", "use_rsa_rpc_json"), run_environment=True) |
| if self.options["celix"].build_rsa_discovery_configured and self.options["celix"].build_launcher: |
| self.run("./use_rsa_configured", cwd=os.path.join("deploy", "use_rsa_configured"), run_environment=True) |
| if self.options["celix"].build_rsa_discovery_etcd and self.options["celix"].build_launcher: |
| self.run("./use_rsa_etcd", cwd=os.path.join("deploy", "use_rsa_etcd"), run_environment=True) |
| if self.options["celix"].build_rsa_discovery_zeroconf: |
| self.run("./use_rsa_discovery_zeroconf", |
| cwd=os.path.join("deploy", "use_rsa_discovery_zeroconf"), run_environment=True) |
| if self.options["celix"].build_shell: |
| self.run("./use_shell", run_environment=True) |
| if self.options["celix"].celix_cxx17 or self.options["celix"].celix_cxx14: |
| self.run("./use_cxx_shell", run_environment=True) |
| if self.options["celix"].build_remote_shell: |
| self.run("./use_remote_shell", cwd=os.path.join("deploy", "use_remote_shell"), run_environment=True) |
| if self.options["celix"].build_shell_tui: |
| self.run("./use_shell_tui", cwd=os.path.join("deploy", "use_shell_tui"), run_environment=True) |
| if self.options["celix"].build_shell_wui: |
| self.run("./use_shell_wui", cwd=os.path.join("deploy", "use_shell_wui"), run_environment=True) |
| if self.options["celix"].build_celix_etcdlib: |
| self.run("./use_etcd_lib", run_environment=True) |
| if self.options["celix"].build_launcher: |
| self.run("./use_launcher", cwd=os.path.join("deploy", "use_launcher"), run_environment=True) |
| if self.options["celix"].build_promises: |
| self.run("./use_promises", run_environment=True) |
| if self.options["celix"].build_pushstreams: |
| self.run("./use_pushstreams", run_environment=True) |
| if self.options["celix"].build_log_helper: |
| self.run("./use_log_helper", run_environment=True) |
| if self.options["celix"].build_log_service_api: |
| self.run("./use_log_service_api", run_environment=True) |
| if self.options["celix"].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 self.options["celix"].build_shell_api: |
| self.run("./use_shell_api", run_environment=True) |
| if self.options["celix"].build_celix_dfi: |
| self.run("./use_celix_dfi", run_environment=True) |
| if self.options["celix"].build_utils: |
| self.run("./use_utils", run_environment=True) |
| if self.options["celix"].build_event_admin: |
| self.run("./use_event_admin", |
| cwd=os.path.join("deploy", "use_event_admin"), run_environment=True) |
| self.run("./use_event_admin_api", run_environment=True) |
| self.run("./use_event_admin_spi", run_environment=True) |
| if self.options["celix"].build_event_admin_remote_provider_mqtt: |
| self.run("./use_event_admin_remote_provider_mqtt", |
| cwd=os.path.join("deploy", "use_event_admin_remote_provider_mqtt"), run_environment=True) |
| if self.options["celix"].build_components_ready_check: |
| self.run("./use_components_ready_check", |
| cwd=os.path.join("deploy", "use_components_ready_check"), run_environment=True) |