Reviewed-on: https://git.avroid.tech/Conan/conan_build/pulls/16 Co-authored-by: aleksandr.vodyanov <aleksandr.vodyanov@avroid.team> Co-committed-by: aleksandr.vodyanov <aleksandr.vodyanov@avroid.team>
58 lines
2.4 KiB
Python
58 lines
2.4 KiB
Python
from conan import ConanFile, conan_version
|
|
from conan.errors import ConanInvalidConfiguration
|
|
from conan.tools.files import copy, get, rmdir
|
|
from conan.tools.scm import Version
|
|
import os
|
|
|
|
required_conan_version = ">=1.52.0"
|
|
|
|
|
|
class StrawberryPerlConan(ConanFile):
|
|
name = "strawberryperl"
|
|
description = "Strawberry Perl for Windows."
|
|
license = ("Artistic-1.0", "GPL-1.0")
|
|
homepage = "http://strawberryperl.com"
|
|
url = "https://github.com/conan-io/conan-center-index"
|
|
topics = ("perl", "interpreter", "windows")
|
|
package_type = "application"
|
|
settings = "os", "arch", "compiler", "build_type"
|
|
|
|
def layout(self):
|
|
self.folders.build = "build"
|
|
|
|
def package_id(self):
|
|
del self.info.settings.compiler
|
|
del self.info.settings.build_type
|
|
|
|
def validate(self):
|
|
if self.settings.os != "Windows":
|
|
raise ConanInvalidConfiguration(f"{self.ref} is only intended to be used on Windows.")
|
|
if self.settings.arch not in ("x86", "x86_64"):
|
|
raise ConanInvalidConfiguration(f"{self.ref} is only available for x86 and x86_64 architectures.")
|
|
|
|
def source(self):
|
|
pass
|
|
|
|
def build(self):
|
|
get(self, **self.conan_data["sources"][self.version][str(self.settings.arch)], destination=self.build_folder)
|
|
|
|
def package(self):
|
|
copy(self, pattern="License.rtf*", src=os.path.join(self.build_folder, "licenses"), dst=os.path.join(self.package_folder, "licenses"))
|
|
copy(self, pattern="*", src=os.path.join(self.build_folder, "perl", "bin"), dst=os.path.join(self.package_folder, "bin"))
|
|
copy(self, pattern="*", src=os.path.join(self.build_folder, "perl", "lib"), dst=os.path.join(self.package_folder, "lib"))
|
|
copy(self, pattern="*", src=os.path.join(self.build_folder, "perl", "vendor", "lib"), dst=os.path.join(self.package_folder, "lib"))
|
|
rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig"))
|
|
|
|
def package_info(self):
|
|
self.cpp_info.libdirs = []
|
|
self.cpp_info.includedirs = []
|
|
|
|
perl_path = os.path.join(self.package_folder, "bin", "perl.exe").replace("\\", "/")
|
|
self.conf_info.define("user.strawberryperl:perl", perl_path)
|
|
|
|
# TODO remove once conan v2 is the only support and recipes have been migrated
|
|
if Version(conan_version).major < 2:
|
|
bin_path = os.path.join(self.package_folder, "bin")
|
|
self.env_info.PATH.append(bin_path)
|
|
self.user_info.perl = perl_path
|