static string AndroidNdkPath = @"";
static string MaccoreDir = @"";
static string TargetDir = @"";
+ static bool GenIOS;
public enum TargetPlatform
{
});*/
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"
});
}
});
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"
});
});
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"
});
MaccoreDir = Path.Combine (maccoreDir);
}
- if (Directory.Exists(MaccoreDir))
+ if (Directory.Exists(MaccoreDir) || GenIOS)
SetupiOSTargets();
foreach (var target in Targets)
source.Options.AddDefines ("HAVE_SGEN_GC");
source.Options.AddDefines ("HAVE_MOVING_COLLECTOR");
+ source.Options.AddDefines("MONO_GENERATING_OFFSETS");
}
}
{ "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 },
};
parserOptions.AddArguments("-xc");
parserOptions.AddArguments("-std=gnu99");
parserOptions.AddDefines("CPPSHARP");
+ parserOptions.AddDefines("MONO_GENERATING_OFFSETS");
foreach (var define in target.Defines)
parserOptions.AddDefines(define);
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:
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)
"MonoTypedRef",
"MonoThreadsSync",
"SgenThreadInfo",
- "SgenClientThreadInfo"
+ "SgenClientThreadInfo",
+ "MonoProfilerCallContext"
};
DumpClasses(writer, ctx, types);
"SeqPointInfo",
"DynCallArgs",
"MonoLMFTramp",
+ "InterpMethodArguments",
};
DumpClasses(writer, ctx, optionalTypes, optional: true);