diff --git a/libs/icu/icu-63.1-20181212.diff b/libs/icu/icu-63.1-20181212.diff new file mode 100644 index 00000000..ee215b8d --- /dev/null +++ b/libs/icu/icu-63.1-20181212.diff @@ -0,0 +1,23 @@ +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 2018-09-29 02:34:41.000000000 +0200 ++++ source/allinone/allinone.sln 2018-12-12 19:21:49.747003400 +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 e87a94f6..8c97968a 100644 --- a/libs/icu/icu.py +++ b/libs/icu/icu.py @@ -1,97 +1,98 @@ # -*- coding: utf-8 -*- import info class subinfo(info.infoclass): def registerOptions(self): self.parent.package.categoryInfo.platforms = CraftCore.compiler.Platforms.NotMacOS def setTargets(self): self.svnTargets["svnHEAD"] = "http://source.icu-project.org/repos/icu/icu/trunk" self.targetInstSrc["svnHEAD"] = "source" for ver in ["53.1", "55.1", "58.2", "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) self.targetInstSrc[ver] = os.path.join("icu", "source") + self.patchToApply["63.1"] = [("icu-63.1-20181212.diff", 1)] if CraftCore.compiler.isMSVC2015() or CraftCore.compiler.isMinGW(): self.patchToApply["55.1"] = ("icu-20150414.diff", 2) if CraftCore.compiler.isMinGW(): self.patchToApply["55.1"] = [("icu-20150414.diff", 2), ("icu-msys.diff", 2)] self.patchToApply["58.2"] = ("0020-workaround-missing-locale.patch", 2) # https://raw.githubusercontent.com/Alexpux/MINGW-packages/master/mingw-w64-icu/0020-workaround-missing-locale.patch if CraftCore.compiler.isWindows: self.defaultTarget = "58.2" else: self.defaultTarget = "62.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): def __init__(self): AutoToolsPackageBase.__init__(self) self.subinfo.options.configure.autoreconf = False 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) def install(self): if not AutoToolsPackageBase.install(self): 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)) return True if CraftCore.compiler.isGCCLike(): class Package(PackageMSys): pass else: class Package(PackageCMake): pass