Skip to content

Commit ca5943e

Browse files
authored
Copy versioned libraries when building unity project (#68)
Copy versioned libraries when building unity project
1 parent 010d9e5 commit ca5943e

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

src/Ros2ForUnity/Scripts/PostInstall.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,11 @@
1313
// limitations under the License.
1414

1515
#if UNITY_EDITOR
16+
using System;
17+
using System.Collections.Generic;
1618
using System.IO;
19+
using System.Linq;
20+
using System.Text.RegularExpressions;
1721
using UnityEngine;
1822
using UnityEditor;
1923
using UnityEditor.Build;
@@ -43,6 +47,16 @@ public void OnPostprocessBuild(BuildReport report)
4347
if (EditorUserBuildSettings.activeBuildTarget == BuildTarget.StandaloneLinux64) {
4448
FileUtil.CopyFileOrDirectory(
4549
r2csMeta, outputDir + "/" + execFilename + "_Data/Plugins/" + r2csMetadataName);
50+
51+
// Copy versioned libraries (Unity skips them)
52+
Regex soWithVersionReg = new Regex(@".*\.so(\.[0-9])+$");
53+
var versionedLibs = new List<String>(Directory.GetFiles(ROS2ForUnity.GetPluginPath()))
54+
.Where(path => soWithVersionReg.IsMatch(path))
55+
.ToList();
56+
foreach (var libPath in versionedLibs) {
57+
FileUtil.CopyFileOrDirectory(
58+
libPath, outputDir + "/" + execFilename + "_Data/Plugins/" + Path.GetFileName(libPath));
59+
}
4660
} else {
4761
FileUtil.CopyFileOrDirectory(
4862
r2csMeta, outputDir + "/" + execFilename + "_Data/Plugins/x86_64/" + r2csMetadataName);

0 commit comments

Comments
 (0)