From cd6ae525b976d85524bedfec67b7aa01e46ba179 Mon Sep 17 00:00:00 2001 From: SpaceIm <30052553+SpaceIm@users.noreply.github.com> Date: Mon, 13 Feb 2023 10:54:29 +0100 Subject: [PATCH] (#15933) libbacktrace: modernize more for conan v2 --- recipes/libbacktrace/all/conanfile.py | 21 ++++++++----------- .../all/test_v1_package/CMakeLists.txt | 8 +++---- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/recipes/libbacktrace/all/conanfile.py b/recipes/libbacktrace/all/conanfile.py index 9d9b580e644f3..2fa71b8e36228 100644 --- a/recipes/libbacktrace/all/conanfile.py +++ b/recipes/libbacktrace/all/conanfile.py @@ -1,14 +1,14 @@ from conan import ConanFile from conan.errors import ConanInvalidConfiguration from conan.tools.apple import fix_apple_shared_install_name -from conan.tools.env import Environment, VirtualBuildEnv +from conan.tools.env import VirtualBuildEnv from conan.tools.files import apply_conandata_patches, copy, export_conandata_patches, get, rename, rm from conan.tools.gnu import Autotools, AutotoolsToolchain from conan.tools.layout import basic_layout from conan.tools.microsoft import check_min_vs, is_msvc, unix_path import os -required_conan_version = ">=1.53.0" +required_conan_version = ">=1.54.0" class LibbacktraceConan(ConanFile): @@ -18,6 +18,7 @@ class LibbacktraceConan(ConanFile): homepage = "https://github.com/ianlancetaylor/libbacktrace" license = "BSD-3-Clause" topics = ("backtrace", "stack-trace") + package_type = "library" settings = "os", "arch", "compiler", "build_type" options = { "shared": [True, False], @@ -50,20 +51,19 @@ def layout(self): def validate(self): check_min_vs(self, "180") - if is_msvc(self) and self.info.options.shared: + if is_msvc(self) and self.options.shared: raise ConanInvalidConfiguration("libbacktrace shared is not supported with Visual Studio") def build_requirements(self): if self._settings_build.os == "Windows": self.win_bash = True - if not self.conf.get("tools.microsoft.bash:path", default=False, check_type=bool): + if not self.conf.get("tools.microsoft.bash:path", check_type=str): self.tool_requires("msys2/cci.latest") if is_msvc(self): self.tool_requires("automake/1.16.5") def source(self): - get(self, **self.conan_data["sources"][self.version], - destination=self.source_folder, strip_root=True) + get(self, **self.conan_data["sources"][self.version], strip_root=True) def generate(self): env = VirtualBuildEnv(self) @@ -73,10 +73,8 @@ def generate(self): if is_msvc(self): # https://github.com/conan-io/conan/issues/6514 tc.extra_cflags.append("-FS") - tc.generate() - + env = tc.environment() if is_msvc(self): - env = Environment() compile_wrapper = unix_path(self, self.conf.get("user.automake:compile-wrapper")) ar_wrapper = unix_path(self, self.conf.get("user.automake:lib-wrapper")) env.define("CC", f"{compile_wrapper} cl -nologo") @@ -87,7 +85,7 @@ def generate(self): env.define("OBJDUMP", ":") env.define("RANLIB", ":") env.define("STRIP", ":") - env.vars(self).save_script("conanbuild_libbacktrace_msvc") + tc.generate(env) def build(self): apply_conandata_patches(self) @@ -98,8 +96,7 @@ def build(self): def package(self): copy(self, "LICENSE", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses")) autotools = Autotools(self) - # see https://github.com/conan-io/conan/issues/12006 - autotools.install(args=[f"DESTDIR={unix_path(self, self.package_folder)}"]) + autotools.install() lib_folder = os.path.join(self.package_folder, "lib") rm(self, "*.la", lib_folder) fix_apple_shared_install_name(self) diff --git a/recipes/libbacktrace/all/test_v1_package/CMakeLists.txt b/recipes/libbacktrace/all/test_v1_package/CMakeLists.txt index ee84a5e843025..0d20897301b68 100644 --- a/recipes/libbacktrace/all/test_v1_package/CMakeLists.txt +++ b/recipes/libbacktrace/all/test_v1_package/CMakeLists.txt @@ -1,10 +1,8 @@ cmake_minimum_required(VERSION 3.1) -project(test_package LANGUAGES C) +project(test_package) include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) conan_basic_setup(TARGETS) -find_package(libbacktrace REQUIRED CONFIG) - -add_executable(test_package ../test_package/test_package.c) -target_link_libraries(test_package PRIVATE libbacktrace::libbacktrace) +add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package + ${CMAKE_CURRENT_BINARY_DIR}/test_package)