Skip to content

Commit fbefa79

Browse files
authored
Merge pull request shimat#1119 from shimat/fix_wpfextensions_dependency
fix WpfExtensions dependency
2 parents 9aab69f + 9fde65b commit fbefa79

File tree

8 files changed

+66
-31
lines changed

8 files changed

+66
-31
lines changed

.github/workflows/windows.yml

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -91,13 +91,17 @@ jobs:
9191
}
9292
9393
$windowsNuspec = "${env:GITHUB_WORKSPACE}\nuget\OpenCvSharp4.Windows.nuspec"
94-
[xml]$xml = Get-Content $windowsNuspec
95-
foreach ($group in $xml.package.metadata.dependencies.ChildNodes){
96-
foreach ($dependency in $group.ChildNodes){
97-
Write-Host "before: " $dependency.GetAttribute("id") "=" $dependency.GetAttribute("version")
98-
$dependency.SetAttribute("version", $version)
99-
Write-Host "after: " $dependency.GetAttribute("id") "=" $dependency.GetAttribute("version")
100-
$xml.Save($windowsNuspec)
94+
$wpfExtensionsNuspec = "${env:GITHUB_WORKSPACE}\nuget\OpenCvSharp4.WpfExtensions.nuspec"
95+
$nuspecFiles = @($windowsNuspec, $wpfExtensionsNuspec)
96+
foreach ( $nuspecFile in $nuspecFiles ) {
97+
[xml]$xml = Get-Content $nuspecFile
98+
foreach ($group in $xml.package.metadata.dependencies.ChildNodes){
99+
foreach ($dependency in $group.ChildNodes){
100+
Write-Host "before: " $dependency.GetAttribute("id") "=" $dependency.GetAttribute("version")
101+
$dependency.SetAttribute("version", $version)
102+
Write-Host "after: " $dependency.GetAttribute("id") "=" $dependency.GetAttribute("version")
103+
$xml.Save($nuspecFile)
104+
}
101105
}
102106
}
103107

OpenCvSharp.sln.DotSettings

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,10 +89,12 @@
8989
<s:Boolean x:Key="/Default/UserDictionary/Words/=neighbouring/@EntryIndexedValue">True</s:Boolean>
9090
<s:Boolean x:Key="/Default/UserDictionary/Words/=Niblack/@EntryIndexedValue">True</s:Boolean>
9191
<s:Boolean x:Key="/Default/UserDictionary/Words/=Niblack_0027s/@EntryIndexedValue">True</s:Boolean>
92+
<s:Boolean x:Key="/Default/UserDictionary/Words/=nupkg/@EntryIndexedValue">True</s:Boolean>
9293
<s:Boolean x:Key="/Default/UserDictionary/Words/=nuspec/@EntryIndexedValue">True</s:Boolean>
9394

9495
<s:Boolean x:Key="/Default/UserDictionary/Words/=objdetect/@EntryIndexedValue">True</s:Boolean>
9596
<s:Boolean x:Key="/Default/UserDictionary/Words/=ONNX/@EntryIndexedValue">True</s:Boolean>
97+
<s:Boolean x:Key="/Default/UserDictionary/Words/=opencv/@EntryIndexedValue">True</s:Boolean>
9698
<s:Boolean x:Key="/Default/UserDictionary/Words/=Otsu/@EntryIndexedValue">True</s:Boolean>
9799
<s:Boolean x:Key="/Default/UserDictionary/Words/=PSNR/@EntryIndexedValue">True</s:Boolean>
98100
<s:Boolean x:Key="/Default/UserDictionary/Words/=RANSAC/@EntryIndexedValue">True</s:Boolean>

nuget/OpenCvSharp4.Windows.nuspec

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,28 @@
1717
<dependencies>
1818
<group targetFramework="net48">
1919
<dependency id="OpenCvSharp4" version="4.3.0.20190901" />
20+
<dependency id="OpenCvSharp4.WpfExtensions" version="4.3.0.20190901" />
2021
<dependency id="OpenCvSharp4.runtime.win" version="4.3.0.20190901" />
2122
</group>
2223
<group targetFramework="net461">
2324
<dependency id="OpenCvSharp4" version="4.3.0.20190901" />
25+
<dependency id="OpenCvSharp4.WpfExtensions" version="4.3.0.20190901" />
2426
<dependency id="OpenCvSharp4.runtime.win" version="4.3.0.20190901" />
2527
</group>
26-
<group targetFramework="netstandard2.0">
28+
<group targetFramework="netcoreapp3.1">
2729
<dependency id="OpenCvSharp4" version="4.3.0.20190901" />
30+
<dependency id="OpenCvSharp4.WpfExtensions" version="4.3.0.20190901" />
2831
<dependency id="OpenCvSharp4.runtime.win" version="4.3.0.20190901" />
2932
</group>
30-
<group targetFramework="netstandard2.1">
33+
<group targetFramework="netcoreapp2.1">
3134
<dependency id="OpenCvSharp4" version="4.3.0.20190901" />
3235
<dependency id="OpenCvSharp4.runtime.win" version="4.3.0.20190901" />
3336
</group>
34-
<group targetFramework="netcoreapp2.1">
37+
<group targetFramework="netstandard2.0">
38+
<dependency id="OpenCvSharp4" version="4.3.0.20190901" />
39+
<dependency id="OpenCvSharp4.runtime.win" version="4.3.0.20190901" />
40+
</group>
41+
<group targetFramework="netstandard2.1">
3542
<dependency id="OpenCvSharp4" version="4.3.0.20190901" />
3643
<dependency id="OpenCvSharp4.runtime.win" version="4.3.0.20190901" />
3744
</group>

nuget/OpenCvSharp4.WpfExtensions.nuspec

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,13 @@
1616
<tags>Image Processing OpenCV Wrapper FFI opencvsharp</tags>
1717
<dependencies>
1818
<group targetFramework="net48">
19+
<dependency id="OpenCvSharp4" version="4.3.0.20190901" />
1920
</group>
2021
<group targetFramework="net461">
22+
<dependency id="OpenCvSharp4" version="4.3.0.20190901" />
2123
</group>
2224
<group targetFramework="netcoreapp3.1">
25+
<dependency id="OpenCvSharp4" version="4.3.0.20190901" />
2326
</group>
2427
</dependencies>
2528
<frameworkAssemblies>

tool/OpenCvSharp.NupkgBetaRemover/Program.cs

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,17 @@ namespace OpenCvSharp.NupkgBetaRemover
1111
class Program
1212
{
1313
[STAThread]
14-
static void Main(string[] args)
14+
private static void Main(string[] args)
1515
{
1616
var nupkgFiles = SelectNupkgFiles();
1717
if (nupkgFiles == null)
1818
return;
1919

2020
foreach (var nupkgFile in nupkgFiles)
21-
{
22-
Match fileNameMatch;
21+
{
2322
if (nupkgFile.Contains("ubuntu"))
24-
//fileNameMatch = Regex.Match(nupkgFile, @"OpenCvSharp4\.runtime\.ubuntu\.(?<ubuntu_version>.*).(?<opencv_version>\d{1,2}\.\d{1,2}\.\d{1,2})\.(?<date>\d{8})\.s?nupkg");
2523
continue;
26-
else
27-
fileNameMatch = Regex.Match(nupkgFile, @"OpenCvSharp4\..*(?<date>\d{8})(?<beta_version>-beta\d+)\.s?nupkg");
24+
var fileNameMatch = Regex.Match(nupkgFile, @"OpenCvSharp4\..*(?<date>\d{8})(?<beta_version>-beta\d*)\.s?nupkg");
2825
if (!fileNameMatch.Success)
2926
throw new Exception($"Unexpected .nupkg/.snupkg file name ({nupkgFile})");
3027
var dateString = fileNameMatch.Groups["date"].Value;
@@ -52,7 +49,7 @@ static void Main(string[] args)
5249
}
5350
else
5451
{
55-
nuspecContent = Regex.Replace(nuspecContent, @"-beta-?\d+</version>", "</version>");
52+
nuspecContent = Regex.Replace(nuspecContent, @"-beta-?\d*</version>", "</version>");
5653
nuspecContent = Regex.Replace(nuspecContent, @"(?<=<dependency.*version="")(?<version>\d{1,2}\.\d{1,2}\.\d{1,2}\.\d{8})(?<betaVersion>-beta-?\d+)",
5754
match => match.Groups["version"].Value);
5855
}
@@ -62,20 +59,15 @@ static void Main(string[] args)
6259
using (var nuspecContentStreamWriter = new StreamWriter(nuspecContentStream, Encoding.UTF8))
6360
{
6461
nuspecContentStreamWriter.Write(nuspecContent);
65-
6662
}
6763
}
6864

69-
string newFileName;
70-
if (nupkgFile.Contains("ubuntu"))
71-
newFileName = Regex.Replace(nupkgFile, @"-\d+.nupkg", $".{date:yyyyMMdd}.nupkg");
72-
else
73-
newFileName = Regex.Replace(nupkgFile, @"-beta-?\d+", "");
65+
var newFileName = Regex.Replace(nupkgFile, @"-beta-?\d*", "");
7466
File.Move(nupkgFile, newFileName);
7567
}
7668
}
7769

78-
static string[] SelectNupkgFiles()
70+
private static string[] SelectNupkgFiles()
7971
{
8072
using (var dialog = new OpenFileDialog {
8173
CheckFileExists = true,

tool/OpenCvSharp.ReleaseMaker/MainForm.Designer.cs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tool/OpenCvSharp.ReleaseMaker/MainForm.cs

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -100,12 +100,24 @@ public partial class MainForm : Form
100100
@"OpenCvSharp.WpfExtensions\OpenCvSharp.WpfExtensions.xml",
101101
};
102102

103-
private static readonly Dictionary<string, string[]> platforms = new Dictionary<string, string[]>
103+
private static readonly IReadOnlyDictionary<string, string[]> architectures = new Dictionary<string, string[]>
104104
{
105105
["win"] = new[] {"x86", "x64"},
106106
["uwp"] = new[] {"x86", "x64", "ARM"},
107107
};
108108

109+
private static readonly IReadOnlyDictionary<string, string> uwpNativeDllDirectories = new Dictionary<string, string>
110+
{
111+
["x86"] = @"opencv_files\opencv451_uwp_x86\x86\vc16\bin",
112+
["x64"] = @"opencv_files\opencv451_uwp_x64\x64\vc16\bin",
113+
["ARM"] = @"opencv_files\opencv451_uwp_ARM\x86\vc16\bin",
114+
};
115+
private static readonly IReadOnlyList<string> uwpNativeDlls = new []
116+
{
117+
"opencv_world451.dll",
118+
"opencv_img_hash451.dll"
119+
};
120+
109121
private static readonly string[] languages = {
110122
"Release",
111123
"Release-JP"
@@ -244,23 +256,38 @@ private void MakeBinaryPackage(string dir, string dirDst, string opencvVersion)
244256
}
245257

246258
// OpenCvSharpExtern.dllを、Windows用とUWP用それぞれで、x86/x64それぞれを入れる
247-
foreach (var p in platforms)
259+
foreach (var p in architectures)
248260
{
249-
foreach (var pf in p.Value)
261+
foreach (var arch in p.Value)
250262
{
251263
var externDir = Path.Combine(dirSrc, "Release");
252264
if (p.Key == "uwp")
253265
externDir = Path.Combine(externDir, "uwpOpenCvSharpExtern");
254-
var pfExtern = (pf == "x86") ? "Win32" : "x64";
266+
var pfExtern = (arch == "x86") ? "Win32" : "x64";
255267
externDir = Path.Combine(externDir, pfExtern);
256268

257269
foreach (var ext in new[] {"dll", "pdb"})
258270
{
259271
var e = zf.AddFile(Path.Combine(externDir, $"OpenCvSharpExtern.{ext}"));
260272

261-
var dstDirectory = Path.Combine("NativeLib", p.Key, pf);
273+
var dstDirectory = Path.Combine("NativeLib", p.Key, arch);
262274
e.FileName = Path.Combine(dstDirectory, $"OpenCvSharpExtern.{ext}");
263275
}
276+
277+
// UWPはopencv_world.dll等も入れる
278+
if (p.Key == "uwp")
279+
{
280+
var uwpNativeDllDir = uwpNativeDllDirectories[arch];
281+
uwpNativeDllDir = Path.Combine(dir, uwpNativeDllDir);
282+
foreach (var dllName in uwpNativeDlls)
283+
{
284+
var uwpNativeDll = Path.Combine(uwpNativeDllDir, dllName);
285+
var e = zf.AddFile(uwpNativeDll);
286+
287+
var dstDirectory = Path.Combine("NativeLib", "uwp", arch);
288+
e.FileName = Path.Combine(dstDirectory, dllName);
289+
}
290+
}
264291
}
265292
}
266293

0 commit comments

Comments
 (0)