예제 #1
0
 static string make_mt_path(
     string name,
     TFM tfm
     )
 {
     return(make_mt_path(name, name, tfm));
 }
예제 #2
0
    static string make_mt_path(
        string dir_name,
        string assembly_name,
        TFM tfm
        )
    {
        switch (tfm)
        {
        case TFM.ANDROID:
            return(Path.Combine(
                       "$src_path$",
                       dir_name,
                       "bin",
                       "Release",
                       "monoandroid80",
                       "80", // TODO why does the android build end up with this extra subdir?
                       string.Format("{0}.dll", assembly_name)
                       ));

        default:
            return(Path.Combine(
                       "$src_path$",
                       dir_name,
                       "bin",
                       "Release",
                       tfm.AsString(),
                       string.Format("{0}.dll", assembly_name)
                       ));
        }
    }
예제 #3
0
    static string AsString(this TFM e)
    {
        switch (e)
        {
        case TFM.NONE: throw new Exception("TFM.NONE.AsString()");

        case TFM.IOS: return("Xamarin.iOS10");

        case TFM.TVOS: return("Xamarin.tvOS10");

        case TFM.ANDROID: return("MonoAndroid80");

        case TFM.UWP: return("uap10.0");

        case TFM.NETSTANDARD20: return("netstandard2.0");

        case TFM.XAMARIN_MAC: return("Xamarin.Mac20");

        case TFM.NET461: return("net461");

        case TFM.NETCOREAPP22: return("netcoreapp2.2");

        case TFM.NETCOREAPP30: return("netcoreapp3.0");

        default:
            throw new NotImplementedException(string.Format("TFM.AsString for {0}", e));
        }
    }
예제 #4
0
 private static void write_nuspec_file_entry_nativeassets(string src, string rid, TFM tfm, string filename, XmlWriter f)
 {
     write_nuspec_file_entry(
         src,
         string.Format("runtimes\\{0}\\nativeassets\\{1}\\{2}", rid, tfm.AsString(), filename),
         f
         );
 }
예제 #5
0
 private static void write_nuspec_file_entry_lib_batteries(string basename, TFM tfm_build, TFM tfm_dest, XmlWriter f)
 {
     write_nuspec_file_entry(
         make_mt_path_batteries(basename, tfm_build),
         string.Format("lib\\{0}\\", tfm_dest.AsString()),
         f
         );
 }
예제 #6
0
 private static void write_nuspec_file_entry_lib_mt(string name, TFM tfm, XmlWriter f)
 {
     write_nuspec_file_entry(
         make_mt_path(name, tfm),
         string.Format("lib\\{0}\\", tfm.AsString()),
         f
         );
 }
예제 #7
0
 private static void write_nuspec_file_entry_lib(string src, TFM tfm, XmlWriter f)
 {
     write_nuspec_file_entry(
         src,
         string.Format("lib\\{0}\\", tfm.AsString()),
         f
         );
 }
예제 #8
0
    private static void write_empty(XmlWriter f, TFM tfm)
    {
        f.WriteComment("empty directory in lib to avoid nuget adding a reference");

        f.WriteStartElement("file");
        f.WriteAttributeString("src", "empty\\");
        f.WriteAttributeString("target", string.Format("lib\\{0}", tfm.AsString()));
        f.WriteEndElement(); // file
    }
예제 #9
0
 private static void write_nuspec_file_entry_lib_batteries(string basename, TFM tfm_both, XmlWriter f)
 {
     write_nuspec_file_entry_lib_batteries(
         basename,
         tfm_build: tfm_both,
         tfm_dest: tfm_both,
         f
         );
 }
예제 #10
0
 static string make_mt_path_batteries(
     string basename,
     TFM tfm
     )
 {
     return(make_mt_path(
                $"SQLitePCLRaw.batteries_v2.{basename}",
                "SQLitePCLRaw.batteries_v2",
                tfm
                ));
 }
예제 #11
0
    private static void write_bundle_dependency_group(
        XmlWriter f,
        WhichProvider prov,
        WhichLib what,
        TFM tfm
        )
    {
        f.WriteStartElement("group");
        if (tfm != TFM.NONE)
        {
            f.WriteAttributeString("targetFramework", tfm.AsString());
        }

        add_dep_core(f);

        f.WriteStartElement("dependency");
        f.WriteAttributeString("id", string.Format("{0}.provider.{1}", gen.ROOT_NAME, prov.AsString()));
        f.WriteAttributeString("version", "$version$");
        f.WriteEndElement(); // dependency

        if (what == WhichLib.E_SQLITE3)
        {
            string id;
            switch (tfm)
            {
            case TFM.IOS:
                id = string.Format("{0}.lib.e_sqlite3.ios", gen.ROOT_NAME);
                break;

            case TFM.TVOS:
                id = string.Format("{0}.lib.e_sqlite3.tvos", gen.ROOT_NAME);
                break;

            case TFM.ANDROID:
                id = string.Format("{0}.lib.e_sqlite3.android", gen.ROOT_NAME);
                break;

            default:
                id = string.Format("{0}.lib.e_sqlite3", gen.ROOT_NAME);
                break;
            }
            f.WriteStartElement("dependency");
            f.WriteAttributeString("id", id);
            f.WriteAttributeString("version", "$version$");
            f.WriteEndElement(); // dependency
        }
        else if (what == WhichLib.E_SQLCIPHER)
        {
            string id;
            switch (tfm)
            {
            case TFM.IOS:
                id = string.Format("{0}.lib.e_sqlcipher.ios", gen.ROOT_NAME);
                break;

            case TFM.TVOS:
                id = string.Format("{0}.lib.e_sqlcipher.tvos", gen.ROOT_NAME);
                break;

            case TFM.ANDROID:
                id = string.Format("{0}.lib.e_sqlcipher.android", gen.ROOT_NAME);
                break;

            default:
                id = string.Format("{0}.lib.e_sqlcipher", gen.ROOT_NAME);
                break;
            }
            f.WriteStartElement("dependency");
            f.WriteAttributeString("id", id);
            f.WriteAttributeString("version", "$version$");
            f.WriteEndElement(); // dependency
        }
        else if (what == WhichLib.NONE)
        {
        }
        else
        {
            throw new NotImplementedException();
        }

        f.WriteEndElement(); // group
    }
예제 #12
0
 private static void write_nuspec_file_entry_lib_mt(string dir_name, string assembly_name, TFM tfm_build, TFM tfm_dest, XmlWriter f)
 {
     write_nuspec_file_entry(
         make_mt_path(dir_name, assembly_name, tfm_build),
         string.Format("lib\\{0}\\", tfm_dest.AsString()),
         f
         );
 }