diff --git a/libs/icu/icu-65.1-20200109.diff b/libs/icu/icu-65.1-20200109.diff deleted file mode 100644 index ea98ef98..00000000 --- a/libs/icu/icu-65.1-20200109.diff +++ /dev/null @@ -1,23 +0,0 @@ -diff -Nrub -x '*~' -x '*\.rej' -x '*\.orig' -x '*\.o' -x '*\.pyc' icu\source.orig/allinone/allinone.sln icu\source/allinone/allinone.sln ---- icu\source.orig/allinone/allinone.sln 2019-10-03 13:16:41.000000000 +0200 -+++ icu\source/allinone/allinone.sln 2020-01-09 21:05:30.812121200 +0100 -@@ -181,19 +181,6 @@ - {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} - EndProjectSection - EndProject --Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "makedata_uwp", "..\data\makedata_uwp.vcxproj", "{B1D53358-37BD-48BC-B27C-68BAF1E78508}" --EndProject --Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "i18n_uwp", "..\i18n\i18n_uwp.vcxproj", "{6786C051-383B-47E0-9E82-B8B994E06A25}" -- ProjectSection(ProjectDependencies) = postProject -- {0178B127-6269-407D-B112-93877BB62776} = {0178B127-6269-407D-B112-93877BB62776} -- {C10CF34B-3F79-430E-AD38-5A32DC0589C2} = {C10CF34B-3F79-430E-AD38-5A32DC0589C2} -- EndProjectSection --EndProject --Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "common_uwp", "..\common\common_uwp.vcxproj", "{C10CF34B-3F79-430E-AD38-5A32DC0589C2}" -- ProjectSection(ProjectDependencies) = postProject -- {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} -- EndProjectSection --EndProject - Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|ARM = Debug|ARM diff --git a/libs/icu/icu.py b/libs/icu/icu.py index 481e736e..c8d5bacb 100644 --- a/libs/icu/icu.py +++ b/libs/icu/icu.py @@ -1,117 +1,73 @@ # -*- coding: utf-8 -*- import info - +from Package.AutoToolsPackageBase import * class subinfo(info.infoclass): def registerOptions(self): self.parent.package.categoryInfo.platforms = CraftCore.compiler.Platforms.NotMacOS def setTargets(self): self.svnTargets["master"] = "http://source.icu-project.org/repos/icu/icu/trunk" self.targetInstSrc["master"] = "source" for ver in ["65.1"]: major, minor = ver.split(".") self.targets[ver] = f"https://github.com/unicode-org/icu/releases/download/release-{major}-{minor}/icu4c-{major}_{minor}-src.tgz" self.targetDigestUrls[ver] = ([f"https://github.com/unicode-org/icu/releases/download/release-{major}-{minor}/SHASUM512.txt"], CraftHash.HashAlgorithm.SHA512) self.targetInstSrc[ver] = os.path.join("icu", "source") for ver in ["62.1", "63.1"]: ver2 = ver.replace(".", "_") self.targets[ver] = f"http://download.icu-project.org/files/icu4c/{ver}/icu4c-{ver2}-src.tgz" if CraftVersion(ver) < "63.1": self.targetDigestUrls[ver] = ([f"https://ssl.icu-project.org/files/icu4c/{ver}/icu4c-src-{ver2}.md5"], CraftHash.HashAlgorithm.MD5) else: self.targetDigestUrls[ver] = ([f"https://ssl.icu-project.org/files/icu4c/{ver}/SHASUM512.txt"], CraftHash.HashAlgorithm.SHA512) if CraftVersion(ver) == "63.1": self.targets[ver] = f"https://files.kde.org/craft/sources/libs/icu/icu4c-{ver2}-src.tgz" self.targetDigestUrls[ver] = ([f"https://files.kde.org/craft/sources/libs/icu/SHASUM512.txt"], CraftHash.HashAlgorithm.SHA512) self.targetInstSrc[ver] = os.path.join("icu", "source") self.patchToApply[ver] = [("icu-msys.diff", 2)] self.patchToApply["63.1"] += [("icu-63.1-20181212.diff", 1), ("icu-63.1-20181215.diff", 2), # backport https://github.com/unicode-org/icu/pull/228 ] - self.patchToApply["65.1"] = [ - ("icu-65.1-20200109.diff", 2), - ] self.defaultTarget = "63.1" def setDependencies(self): self.buildDependencies["virtual/base"] = None self.buildDependencies["dev-utils/pkg-config"] = None if CraftCore.compiler.isMinGW(): self.buildDependencies["dev-utils/msys"] = None -from Package.MSBuildPackageBase import * - - -class PackageCMake(MSBuildPackageBase): - def __init__(self, **args): - MSBuildPackageBase.__init__(self) - self.subinfo.options.configure.projectFile = os.path.join(self.sourceDir(), "allinone", "allinone.sln") - - def install(self): - self.cleanImage() - if not MSBuildPackageBase.install(self, installHeaders=False, - buildDirs=[os.path.join(self.sourceDir(), "..", dir) for dir in - ["bin", "bin64", "lib", "lib64"]]): - return False - utils.copyDir(os.path.join(self.sourceDir(), "..", "include"), os.path.join(self.imageDir(), "include")) - - if CraftCore.compiler.isMSVC() and self.buildType() == "Debug": - imagedir = os.path.join(self.installDir(), "lib") - filelist = os.listdir(imagedir) - for f in filelist: - if f.endswith("d.lib"): - utils.copyFile(os.path.join(imagedir, f), os.path.join(imagedir, f.replace("d.lib", ".lib"))) - - return True - - -from Package.AutoToolsPackageBase import * - -class PackageMSys(AutoToolsPackageBase): +class Package(AutoToolsPackageBase): def __init__(self): AutoToolsPackageBase.__init__(self) + self.shell.useMSVCCompatEnv = True self.subinfo.options.configure.autoreconf = False + self.subinfo.options.configure.args += " --enable-samples --enable-release=yes --enable-debug=no " + if CraftCore.compiler.isWindows: + self.subinfo.options.configure.args += " --with-data-packaging=dll" + if CraftCore.compiler.isMSVC(): + self.subinfo.options.configure.args += " --enable-extras=no" def make(self): - datafile = os.path.join(os.path.dirname(os.path.abspath(__file__)), "icudt55l.dat") - if os.path.exists(datafile): - datafileDestination = os.path.join(self.sourceDir(), "data", "in", "icudt55l.dat") - if os.path.exists(datafileDestination): - os.remove(datafileDestination) - utils.copyFile(datafile, datafileDestination) - - return AutoToolsPackageBase.make(self) + utils.createDir(Path(self.buildDir()) / "data/out/tmp/") + return super().make() def install(self): - if not AutoToolsPackageBase.install(self): + if not super().install(): return False files = os.listdir(os.path.join(self.installDir(), "lib")) for dll in files: if dll.endswith(".dll"): - utils.copyFile(os.path.join(self.installDir(), "lib", dll), os.path.join(self.installDir(), "bin", dll)) + utils.moveFile(os.path.join(self.installDir(), "lib", dll), os.path.join(self.installDir(), "bin", dll)) return True - -if CraftCore.compiler.isGCCLike(): - class PackageSuper(PackageMSys): - pass -else: - class PackageSuper(PackageCMake): - pass - - -class Package(PackageSuper): - def __init__(self, **args): - PackageSuper.__init__(self) - def postInstall(self): res = True path = os.path.join(self.installDir(), "bin/icu-config") if os.path.exists(path): res = self.patchInstallPrefix([path], self.subinfo.buildPrefix, CraftCore.standardDirs.craftRoot()) return res