Beispiel #1
0
        private static void PackageHandler_OnVersionChanged(PackageHandler handler, SemVer.Version version)
        {
            // Perform Android.mk, c_cpp_properties.json, bmbfmod.json edits to version
            var props = propertiesProvider.GetProperties();

            if (props != null)
            {
                props.UpdateVersion(version);
                propertiesProvider.SerializeProperties(props);
            }
            var mod = bmbfmodProvider.GetMod();

            if (mod != null)
            {
                mod.UpdateVersion(version);
                bmbfmodProvider.SerializeMod(mod);
            }
            var conf = configProvider.GetConfig();

            if (conf is null)
            {
                throw new ConfigException("Config is null!");
            }
            if (conf.Info is null)
            {
                throw new ConfigException("Config info is null!");
            }
            if (conf.Info.Id is null)
            {
                throw new ConfigException("Config ID is null!");
            }
            bool overrodeName = conf.Info.AdditionalData.TryGetValue(SupportedPropertiesCommand.OverrideSoName, out var overridenName);
            var  mk           = androidMkProvider.GetFile();

            if (mk != null)
            {
                var module = mk.Modules.LastOrDefault();
                if (module != null)
                {
                    module.AddDefine("VERSION", version.ToString());
                    if (overrodeName)
                    {
                        module.Id = overridenName.GetString().ReplaceFirst("lib", "").ReplaceLast(".so", "");
                    }
                    else
                    {
                        module.EnsureIdIs(conf.Info.Id, version);
                    }
                    androidMkProvider.SerializeFile(mk);
                }
            }
        }
        internal void Complete()
        {
            // Write Android.mk file
            var val = GetMk();

            if (val != null)
            {
                androidMkProvider.SerializeFile(val);
            }
        }