X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=tools%2Foffsets-tool%2FMonoAotOffsetsDumper.cs;h=81c438f810af4e969dfb95dccf4da9fc120f8f9f;hb=2b2fbe074acbeb118f23ee68a4419638e3a98723;hp=f167566eef3609d121bcb9ebcc3ac6cf0d860d85;hpb=c63aa7cd12a077ef1b2b90b119bfef7687c800d0;p=mono.git diff --git a/tools/offsets-tool/MonoAotOffsetsDumper.cs b/tools/offsets-tool/MonoAotOffsetsDumper.cs index f167566eef3..81c438f810a 100644 --- a/tools/offsets-tool/MonoAotOffsetsDumper.cs +++ b/tools/offsets-tool/MonoAotOffsetsDumper.cs @@ -28,6 +28,7 @@ namespace CppSharp static string AndroidNdkPath = @""; static string MaccoreDir = @""; static string TargetDir = @""; + static bool GenIOS; public enum TargetPlatform { @@ -125,7 +126,7 @@ namespace CppSharp });*/ foreach (var target in AndroidTargets) - target.Defines.AddRange (new string[] { "PLATFORM_ANDROID", + target.Defines.AddRange (new string[] { "HOST_ANDROID", "TARGET_ANDROID", "MONO_CROSS_COMPILE", "USE_MONO_CTX" }); } @@ -147,7 +148,7 @@ namespace CppSharp }); foreach (var target in iOSTargets) { - target.Defines.AddRange (new string[] { "PLATFORM_DARWIN", + target.Defines.AddRange (new string[] { "HOST_DARWIN", "TARGET_IOS", "TARGET_MACH", "MONO_CROSS_COMPILE", "USE_MONO_CTX", "_XOPEN_SOURCE" }); @@ -161,7 +162,7 @@ namespace CppSharp }); foreach (var target in DarwinTargets) { - target.Defines.AddRange (new string[] { "PLATFORM_DARWIN", + target.Defines.AddRange (new string[] { "HOST_DARWIN", "TARGET_IOS", "TARGET_MACH", "MONO_CROSS_COMPILE", "USE_MONO_CTX", "_XOPEN_SOURCE" }); @@ -206,7 +207,7 @@ namespace CppSharp MaccoreDir = Path.Combine (maccoreDir); } - if (Directory.Exists(MaccoreDir)) + if (Directory.Exists(MaccoreDir) || GenIOS) SetupiOSTargets(); foreach (var target in Targets) @@ -219,8 +220,7 @@ namespace CppSharp var options = new DriverOptions(); - var log = new TextDiagnosticPrinter(); - var driver = new Driver(options, log); + var driver = new Driver(options); Setup(driver, target); driver.Setup(); @@ -245,6 +245,7 @@ namespace CppSharp source.Options.AddDefines ("HAVE_SGEN_GC"); source.Options.AddDefines ("HAVE_MOVING_COLLECTOR"); + source.Options.AddDefines("MONO_GENERATING_OFFSETS"); } } @@ -275,6 +276,7 @@ namespace CppSharp { "android-ndk=", "Path to Android NDK", v => AndroidNdkPath = v }, { "targetdir=", "Path to the directory containing the mono build", v =>TargetDir = v }, { "mono=", "include directory", v => MonoDir = v }, + { "gen-ios", "generate iOS offsets", v => GenIOS = v != null }, { "h|help", "show this message and exit", v => showHelp = v != null }, }; @@ -308,6 +310,7 @@ namespace CppSharp parserOptions.AddArguments("-xc"); parserOptions.AddArguments("-std=gnu99"); parserOptions.AddDefines("CPPSHARP"); + parserOptions.AddDefines("MONO_GENERATING_OFFSETS"); foreach (var define in target.Defines) parserOptions.AddDefines(define); @@ -338,10 +341,14 @@ namespace CppSharp break; case TargetPlatform.WatchOS: case TargetPlatform.iOS: { - string targetPath = Path.Combine (MaccoreDir, "builds"); - if (!Directory.Exists (MonoDir)) - MonoDir = Path.GetFullPath (Path.Combine (targetPath, "../../mono")); - targetBuild = Path.Combine(targetPath, target.Build); + if (!string.IsNullOrEmpty (TargetDir)) { + targetBuild = TargetDir; + } else { + string targetPath = Path.Combine (MaccoreDir, "builds"); + if (!Directory.Exists (MonoDir)) + MonoDir = Path.GetFullPath (Path.Combine (targetPath, "../../mono")); + targetBuild = Path.Combine(targetPath, target.Build); + } break; } default: @@ -354,11 +361,11 @@ namespace CppSharp var includeDirs = new[] { targetBuild, - Path.Combine(targetBuild, "eglib", "src"), + Path.Combine(targetBuild, "mono", "eglib"), MonoDir, Path.Combine(MonoDir, "mono"), Path.Combine(MonoDir, "mono", "mini"), - Path.Combine(MonoDir, "eglib", "src") + Path.Combine(MonoDir, "mono", "eglib") }; foreach (var inc in includeDirs) @@ -780,7 +787,8 @@ namespace CppSharp "MonoTypedRef", "MonoThreadsSync", "SgenThreadInfo", - "SgenClientThreadInfo" + "SgenClientThreadInfo", + "MonoProfilerCallContext" }; DumpClasses(writer, ctx, types); @@ -810,6 +818,7 @@ namespace CppSharp "SeqPointInfo", "DynCallArgs", "MonoLMFTramp", + "InterpMethodArguments", }; DumpClasses(writer, ctx, optionalTypes, optional: true);