From 886a93aff8679f1dc97a75c1a8c2840894143e2b Mon Sep 17 00:00:00 2001 From: SpaceIm <30052553+SpaceIm@users.noreply.github.com> Date: Sat, 22 Jan 2022 01:09:50 +0100 Subject: [PATCH 1/3] modernize --- recipes/ogg/all/conanfile.py | 38 ++++++++++++++++----- recipes/ogg/all/test_package/CMakeLists.txt | 2 +- recipes/ogg/all/test_package/conanfile.py | 4 +-- 3 files changed, 32 insertions(+), 12 deletions(-) diff --git a/recipes/ogg/all/conanfile.py b/recipes/ogg/all/conanfile.py index e9a10bb2e02f2..093025f6e5cfd 100644 --- a/recipes/ogg/all/conanfile.py +++ b/recipes/ogg/all/conanfile.py @@ -1,20 +1,28 @@ from conans import ConanFile, CMake, tools import os +required_conan_version = ">=1.43.0" + class OggConan(ConanFile): name = "ogg" description = "The OGG library" - topics = ("conan", "ogg", "codec", "audio", "lossless") + topics = ("ogg", "codec", "audio", "lossless") url = "https://github.com/conan-io/conan-center-index" homepage = "https://github.com/xiph/ogg" license = "BSD-2-Clause" - exports_sources = ["CMakeLists.txt", "patches/*"] - generators = "cmake" + settings = "os", "arch", "build_type", "compiler" - options = {"shared": [True, False], "fPIC": [True, False]} - default_options = {"shared": False, "fPIC": True} + options = { + "shared": [True, False], + "fPIC": [True, False], + } + default_options = { + "shared": False, + "fPIC": True, + } + generators = "cmake" _cmake = None @property @@ -25,6 +33,11 @@ def _source_subfolder(self): def _build_subfolder(self): return "build_subfolder" + def export_sources(self): + self.copy("CMakeLists.txt") + for patch in self.conan_data.get("patches", {}).get(self.version, []): + self.copy(patch["patch_file"]) + def config_options(self): if self.settings.os == "Windows": del self.options.fPIC @@ -36,9 +49,8 @@ def configure(self): del self.settings.compiler.cppstd def source(self): - tools.get(**self.conan_data["sources"][self.version]) - extracted_dir = self.name + "-" + self.version - os.rename(extracted_dir, self._source_subfolder) + tools.get(**self.conan_data["sources"][self.version], + destination=self._source_subfolder, strip_root=True) def _configure_cmake(self): if self._cmake: @@ -62,8 +74,16 @@ def package(self): tools.rmdir(os.path.join(self.package_folder, "share")) def package_info(self): + self.cpp_info.set_property("cmake_file_name", "Ogg") + self.cpp_info.set_property("cmake_target_name", "Ogg::ogg") + self.cpp_info.set_property("pkg_config_name", "ogg") + # TODO: back to global scope in conan v2 once cmake_find_package_* generators removed + self.cpp_info.components["ogglib"].libs = ["ogg"] + + # TODO: to remove in conan v2 once cmake_find_package_* generators removed self.cpp_info.names["cmake_find_package"] = "Ogg" self.cpp_info.names["cmake_find_package_multi"] = "Ogg" self.cpp_info.components["ogglib"].names["cmake_find_package"] = "ogg" self.cpp_info.components["ogglib"].names["cmake_find_package_multi"] = "ogg" - self.cpp_info.components["ogglib"].libs = ["ogg"] + self.cpp_info.components["ogglib"].set_property("cmake_target_name", "Ogg::ogg") + self.cpp_info.components["ogglib"].set_property("pkg_config_name", "ogg") diff --git a/recipes/ogg/all/test_package/CMakeLists.txt b/recipes/ogg/all/test_package/CMakeLists.txt index 1f15f65860aa0..f1218f88cd659 100644 --- a/recipes/ogg/all/test_package/CMakeLists.txt +++ b/recipes/ogg/all/test_package/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.1) project(test_package C) include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) -conan_basic_setup() +conan_basic_setup(TARGETS) find_package(Ogg REQUIRED CONFIG) diff --git a/recipes/ogg/all/test_package/conanfile.py b/recipes/ogg/all/test_package/conanfile.py index 7e2dfe859bb27..38f4483872d47 100644 --- a/recipes/ogg/all/test_package/conanfile.py +++ b/recipes/ogg/all/test_package/conanfile.py @@ -3,7 +3,7 @@ class TestPackageConan(ConanFile): - settings = "os", "compiler", "build_type", "arch" + settings = "os", "arch", "compiler", "build_type" generators = "cmake", "cmake_find_package_multi" def build(self): @@ -12,6 +12,6 @@ def build(self): cmake.build() def test(self): - if not tools.cross_building(self.settings): + if not tools.cross_building(self): bin_path = os.path.join("bin", "test_package") self.run(bin_path, run_environment=True) From f4efe3b1938f9077e88c11f9b574047064730d48 Mon Sep 17 00:00:00 2001 From: SpaceIm <30052553+SpaceIm@users.noreply.github.com> Date: Sat, 29 Jan 2022 01:14:54 +0100 Subject: [PATCH 2/3] relocatable shared lib on macOS --- recipes/ogg/all/CMakeLists.txt | 10 +++------- recipes/ogg/all/conanfile.py | 2 ++ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/recipes/ogg/all/CMakeLists.txt b/recipes/ogg/all/CMakeLists.txt index cdeeef45d13c1..61f3d3b039e2b 100644 --- a/recipes/ogg/all/CMakeLists.txt +++ b/recipes/ogg/all/CMakeLists.txt @@ -1,11 +1,7 @@ -cmake_minimum_required(VERSION 2.8.12) +cmake_minimum_required(VERSION 3.1) project(cmake_wrapper) -if(EXISTS "${CMAKE_BINARY_DIR}/conanbuildinfo.cmake") - include("${CMAKE_BINARY_DIR}/conanbuildinfo.cmake") -else() - include(conanbuildinfo.cmake) -endif() -conan_basic_setup() +include(conanbuildinfo.cmake) +conan_basic_setup(KEEP_RPATHS) add_subdirectory("source_subfolder") diff --git a/recipes/ogg/all/conanfile.py b/recipes/ogg/all/conanfile.py index 093025f6e5cfd..48a2a1ccce170 100644 --- a/recipes/ogg/all/conanfile.py +++ b/recipes/ogg/all/conanfile.py @@ -56,6 +56,8 @@ def _configure_cmake(self): if self._cmake: return self._cmake self._cmake = CMake(self) + # Generate a relocatable shared lib on Macos + self._cmake.definitions["CMAKE_POLICY_DEFAULT_CMP0042"] = "NEW" self._cmake.configure(build_folder=self._build_subfolder) return self._cmake From d863df645da0bfec85b2c5c57f72be2a3861ddac Mon Sep 17 00:00:00 2001 From: SpaceIm <30052553+SpaceIm@users.noreply.github.com> Date: Sat, 29 Jan 2022 01:18:02 +0100 Subject: [PATCH 3/3] add ogg/1.3.5 --- recipes/ogg/all/conandata.yml | 3 +++ recipes/ogg/config.yml | 2 ++ 2 files changed, 5 insertions(+) diff --git a/recipes/ogg/all/conandata.yml b/recipes/ogg/all/conandata.yml index ea765cdd05245..e3359de3a895a 100644 --- a/recipes/ogg/all/conandata.yml +++ b/recipes/ogg/all/conandata.yml @@ -1,4 +1,7 @@ sources: + "1.3.5": + url: "https://github.com/xiph/ogg/archive/refs/tags/v1.3.5.tar.gz" + sha256: "f6f1b04cfa4e98b70ffe775d5e302d9c6b98541f05159af6de2d6617817ed7d6" "1.3.4": url: "https://github.com/xiph/ogg/archive/v1.3.4.tar.gz" sha256: "3da31a4eb31534b6f878914b7379b873c280e610649fe5c07935b3d137a828bc" diff --git a/recipes/ogg/config.yml b/recipes/ogg/config.yml index a81e52666d075..28671be32f45e 100644 --- a/recipes/ogg/config.yml +++ b/recipes/ogg/config.yml @@ -1,3 +1,5 @@ versions: + "1.3.5": + folder: all "1.3.4": folder: all