From 2b5c2cb021401218b32787e05acbf211237ede78 Mon Sep 17 00:00:00 2001 From: Yaroslav Gurov Date: Tue, 17 Mar 2026 20:16:36 +0100 Subject: [PATCH] conan: use lib linking instead of QT_EXTRA_LIBS for OVPN --- client/cmake/android.cmake | 7 +----- recipes/awg-android/conanfile.py | 3 +++ recipes/openvpn-pt-android/conanfile.py | 32 ++++--------------------- 3 files changed, 9 insertions(+), 33 deletions(-) diff --git a/client/cmake/android.cmake b/client/cmake/android.cmake index 3cdffe31f..5987eb55b 100644 --- a/client/cmake/android.cmake +++ b/client/cmake/android.cmake @@ -51,9 +51,4 @@ find_package(amnezia-libxray REQUIRED) file(COPY ${AMNEZIA_LIBXRAY_PATH} DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/android/xray/libXray) find_package(openvpn-pt-android REQUIRED) -set_property(TARGET ${PROJECT} APPEND PROPERTY QT_ANDROID_EXTRA_LIBS - ${AMNEZIA_ANDROID_CK_OVPN_PLUGIN_PATH} - ${AMNEZIA_ANDROID_OVPN3_PATH} - ${AMNEZIA_ANDROID_OVPNUTIL_PATH} - ${AMNEZIA_ANDROID_RSAPSS_PATH} -) +set(LIBS ${LIBS} amnezia::openvpn-pt-android) diff --git a/recipes/awg-android/conanfile.py b/recipes/awg-android/conanfile.py index 1fdcdcdfe..d32a866ed 100644 --- a/recipes/awg-android/conanfile.py +++ b/recipes/awg-android/conanfile.py @@ -16,6 +16,9 @@ class AwgAndroid(ConanFile): def layout(self): cmake_layout(self) + def build_requirements(self): + self.tool_requires("cmake/[>=3.4.1 <4]") + def validate(self): if self.settings.os != "Android": raise ConanInvalidConfiguration(f"{self.name} v{self.version} does not support {self.settings.os}") diff --git a/recipes/openvpn-pt-android/conanfile.py b/recipes/openvpn-pt-android/conanfile.py index bc0e28b3d..c08103497 100644 --- a/recipes/openvpn-pt-android/conanfile.py +++ b/recipes/openvpn-pt-android/conanfile.py @@ -1,42 +1,28 @@ from conan import ConanFile from conan.tools.cmake import cmake_layout, CMake, CMakeToolchain -from conan.tools.files import copy +from conan.tools.files import copy, collect_libs from conan.tools.scm import Git from conan.errors import ConanInvalidConfiguration import os - class OpenvpnPtAndroid(ConanFile): name = "openvpn-pt-android" version = "1.0.0" package_type = "shared-library" - settings = "os", "arch", "build_type", "compiler" - # Conan arch → Android ABI - _arch_map = { - "armv8": "arm64-v8a", - "armv7": "armeabi-v7a", - "x86": "x86", - "x86_64": "x86_64", - } - def layout(self): cmake_layout(self) def build_requirements(self): self.tool_requires("swig/4.1.1") self.tool_requires("go/1.26.0") + self.tool_requires("cmake/[>=3.4.1 <4]") def validate(self): if self.settings.os != "Android": raise ConanInvalidConfiguration(f"{self.name} only supports Android, got {self.settings.os}") - if str(self.settings.arch) not in self._arch_map: - raise ConanInvalidConfiguration(f"{self.name} does not support arch {self.settings.arch}") - - def _android_abi(self): - return self._arch_map[str(self.settings.arch)] def source(self): git = Git(self) @@ -58,17 +44,9 @@ class OpenvpnPtAndroid(ConanFile): cmake.build(target=["ck_ovpn_plugin_go", "ovpn3", "ovpnutil", "rsapss"]) def package(self): - build_dir = self.build_folder - copy(self, "libck-ovpn-plugin.so", src=build_dir, dst=os.path.join(self.package_folder, "lib"), keep_path=False) - for binary in ("ovpn3", "ovpnutil", "rsapss"): - copy(self, f"lib{binary}.so", src=build_dir, dst=os.path.join(self.package_folder, "lib"), keep_path=False) + copy(self, "*.h", src=self.build_folder, dst=os.path.join(self.package_folder, "include")) + copy(self, "*.so", src=self.build_folder, dst=os.path.join(self.package_folder, "lib")) def package_info(self): self.cpp_info.set_property("cmake_target_name", "amnezia::openvpn-pt-android") - self.cpp_info.libs = ["ck-ovpn-plugin", "ovpn3", "ovpnutil", "rsapss"] - self.cpp_info.set_property("cmake_extra_variables", { - "AMNEZIA_ANDROID_CK_OVPN_PLUGIN_PATH": os.path.join(self.package_folder, "lib", "libck-ovpn-plugin.so"), - "AMNEZIA_ANDROID_OVPN3_PATH": os.path.join(self.package_folder, "lib", "libovpn3.so"), - "AMNEZIA_ANDROID_OVPNUTIL_PATH": os.path.join(self.package_folder, "lib", "libovpnutil.so"), - "AMNEZIA_ANDROID_RSAPSS_PATH": os.path.join(self.package_folder, "lib", "librsapss.so"), - }) + self.cpp_info.libs = collect_libs(self)