from conans import ConanFile, CMake, tools import os class LibFlacConan(ConanFile): name = "libflac" version = "1.3.2" license = "BSD-2-Clause" author = "Shawn Morford " url = "https://code.darkmorford.net/conan-pkg/libflac" description = ("FLAC stands for Free Lossless Audio Codec, an audio format similar to MP3, " "but lossless, meaning that audio is compressed in FLAC without any loss in quality.") homepage = "https://xiph.org/flac/" topics = ("media", "audio", "lossless", "xiph.org") requires = [("libogg/1.3.4@darkmorford/stable", "private")] settings = "os", "compiler", "build_type", "arch" options = {"shared": [True, False], "fPIC": [True, False]} default_options = {"shared": True, "fPIC": True} @property def subfolder(self): return os.path.join(self.source_folder, f"flac-{self.version}") def config_options(self): if self.settings.os == "Windows": self.options.remove("fPIC") def configure(self): del self.settings.compiler.cppstd del self.settings.compiler.libcxx def source(self): tools.get(**self.conan_data["sources"][self.version]) def build(self): cmake = CMake(self) cmake.configure(source_folder="hello") cmake.build() # Explicit way: # self.run('cmake %s/hello %s' # % (self.source_folder, cmake.command_line)) # self.run("cmake --build . %s" % cmake.build_config) def package(self): self.copy("*.h", dst="include", src="hello") self.copy("*hello.lib", dst="lib", keep_path=False) self.copy("*.dll", dst="bin", keep_path=False) self.copy("*.so", dst="lib", keep_path=False) self.copy("*.dylib", dst="lib", keep_path=False) self.copy("*.a", dst="lib", keep_path=False) def package_info(self): self.cpp_info.libs = ["hello"]