public static void AddProjectDefines(
            XmlDocument project, MonoNativeFlavor flavor,
            string platform = null, string config = null)
        {
            switch (flavor)
            {
            case MonoNativeFlavor.Compat:
                if (platform != null)
                {
                    project.AddAdditionalDefines("MONO_NATIVE_COMPAT", platform, config);
                }
                else
                {
                    project.AddAdditionalDefines("MONO_NATIVE_COMPAT");
                }
                break;

            case MonoNativeFlavor.Unified:
                if (platform != null)
                {
                    project.AddAdditionalDefines("MONO_NATIVE_UNIFIED", platform, config);
                }
                else
                {
                    project.AddAdditionalDefines("MONO_NATIVE_UNIFIED");
                }
                break;

            default:
                throw new Exception($"Unknown MonoNativeFlavor: {flavor}");
            }
        }
Beispiel #2
0
 public MonoNativeInfo(DevicePlatform platform, MonoNativeFlavor flavor, string rootDirectory, Action <int, string> logAction = null)
 {
     DevicePlatform     = platform;
     this.log           = logAction;
     this.rootDirectory = rootDirectory ?? throw new ArgumentNullException(nameof(rootDirectory));
     this.Flavor        = flavor;
 }
 public static void AddProjectDefines(
     XmlDocument project, MonoNativeFlavor flavor, MonoNativeLinkMode link,
     string platform, string config)
 {
     AddProjectDefines(project, flavor, platform, config);
     AddProjectDefines(project, link, platform, config);
 }
        public MacMonoNativeInfo(Harness harness, MonoNativeFlavor flavor, MacFlavors macFlavor)
            : base(harness, flavor)
        {
            if (macFlavor == MacFlavors.All)
            {
                throw new ArgumentException("Each target must be a specific flavor");
            }

            MacFlavor = macFlavor;
        }
        public static string GetDynamicLibraryName(MonoNativeFlavor flavor)
        {
            switch (flavor)
            {
            case MonoNativeFlavor.Compat:
                return("libmono-native-compat.dylib");

            case MonoNativeFlavor.Unified:
                return("libmono-native-unified.dylib");

            default:
                Assert.Fail($"Invalid MonoNativeFlavor: {flavor}");
                throw new NotImplementedException();
            }
        }
Beispiel #6
0
        public static string GetMinimumOSVersion(DevicePlatform platform, MonoNativeFlavor flavor)
        {
            switch (flavor)
            {
            case MonoNativeFlavor.Compat:
                switch (platform)
                {
                case DevicePlatform.iOS:
                    return("8.0");

                case DevicePlatform.tvOS:
                    return("9.0");

                case DevicePlatform.watchOS:
                    return("2.0");

                case DevicePlatform.macOS:
                    return("10.9");

                default:
                    throw new Exception($"Unknown DevicePlatform: {platform}");
                }

            case MonoNativeFlavor.Unified:
                switch (platform)
                {
                case DevicePlatform.iOS:
                    return("10.0");

                case DevicePlatform.tvOS:
                    return("10.1");                    // Can't use 10.0 due to http://openradar.appspot.com/radar?id=4966840983879680.

                case DevicePlatform.watchOS:
                    return("4.0");

                case DevicePlatform.macOS:
                    return("10.12");

                default:
                    throw new Exception($"Unknown DevicePlatform: {platform}");
                }

            default:
                throw new Exception($"Unknown MonoNativeFlavor: {flavor}");
            }
        }
        public static string GetPInvokeLibraryName(MonoNativeFlavor flavor, MonoNativeLinkMode link)
        {
            switch (link)
            {
            case MonoNativeLinkMode.Static:
                return(null);

            case MonoNativeLinkMode.Dynamic:
                return(GetDynamicLibraryName(flavor));

            case MonoNativeLinkMode.Symlink:
                return("libmono-native.dylib");

            default:
                Assert.Fail($"Invalid link mode: {MonoNativeConfig.LinkMode}");
                throw new NotImplementedException();
            }
        }
 public MonoNativeInfo(Harness harness, MonoNativeFlavor flavor)
 {
     Harness = harness;
     Flavor  = flavor;
 }
 public MacMonoNativeInfo(Harness harness, MonoNativeFlavor flavor)
     : base(harness, flavor)
 {
 }
Beispiel #10
0
 public MacMonoNativeInfo(MonoNativeFlavor flavor, string rootDirectory, Action <int, string> logAction)
     : base(flavor, rootDirectory, logAction)
 {
 }