mirror of
https://github.com/alliedmodders/amxmodx.git
synced 2024-12-26 06:45:37 +03:00
Deleted bad file
This commit is contained in:
parent
1fcf7628a3
commit
8f97ed7934
@ -1,282 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Diagnostics;
|
|
||||||
using System.IO;
|
|
||||||
|
|
||||||
namespace AMXXRelease
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Summary description for Class1.
|
|
||||||
/// </summary>
|
|
||||||
class Builder
|
|
||||||
{
|
|
||||||
public Config m_Cfg;
|
|
||||||
private string m_AmxxPc;
|
|
||||||
|
|
||||||
public Builder()
|
|
||||||
{
|
|
||||||
m_Cfg = new Config();
|
|
||||||
|
|
||||||
m_AmxxPc = m_Cfg.GetSourceTree() + "\\plugins\\amxxpc.exe";
|
|
||||||
}
|
|
||||||
|
|
||||||
[STAThread]
|
|
||||||
static void Main(string[] args)
|
|
||||||
{
|
|
||||||
Builder b = new Builder();
|
|
||||||
Release15 r15 = new Release15();
|
|
||||||
|
|
||||||
if (!b.Build(r15))
|
|
||||||
{
|
|
||||||
System.Console.WriteLine("Build failed: " + r15.GetName());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
System.Console.WriteLine("Build succeeded!");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool Build(ABuild build)
|
|
||||||
{
|
|
||||||
int num = build.GetMods();
|
|
||||||
|
|
||||||
AMod mod;
|
|
||||||
for (int i=0; i<num; i++)
|
|
||||||
{
|
|
||||||
mod = build.GetMod(i);
|
|
||||||
if (!BuildMod(mod))
|
|
||||||
{
|
|
||||||
System.Console.WriteLine("Mod failed to build: " + mod.GetName());
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
ZipDir(build.GetName() + "-" + mod.GetName() + ".zip", mod.GetName() + "\\*.*");
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool BuildMod(AMod mod)
|
|
||||||
{
|
|
||||||
CopyConfigs(mod);
|
|
||||||
if (!BuildModModules(mod))
|
|
||||||
return false;
|
|
||||||
if (!BuildModPlugins(mod))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
string basedir = m_Cfg.OutputPath() + "\\" + mod.GetModPath();
|
|
||||||
string sourcetree = m_Cfg.GetSourceTree();
|
|
||||||
|
|
||||||
if (!mod.CopyExtraFiles(basedir, sourcetree))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ZipDir(string target, string dir)
|
|
||||||
{
|
|
||||||
ProcessStartInfo info = new ProcessStartInfo();
|
|
||||||
|
|
||||||
info.FileName = m_Cfg.PathToZip();
|
|
||||||
info.WorkingDirectory = m_Cfg.OutputPath();
|
|
||||||
info.Arguments = "-r " + target + " " + dir;
|
|
||||||
info.UseShellExecute = false;
|
|
||||||
|
|
||||||
Process p = Process.Start(info);
|
|
||||||
p.WaitForExit();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void CopyConfigs(AMod mod)
|
|
||||||
{
|
|
||||||
string basedir = m_Cfg.OutputPath() + "\\" + mod.GetModPath() + "\\configs";
|
|
||||||
|
|
||||||
if (!Directory.Exists(basedir))
|
|
||||||
Directory.CreateDirectory(basedir);
|
|
||||||
|
|
||||||
string srcdir = m_Cfg.GetSourceTree() + "\\configs";
|
|
||||||
|
|
||||||
if (!Directory.Exists(srcdir))
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (mod.GetPluginDir() != null)
|
|
||||||
srcdir += "\\" + mod.GetBaseName();
|
|
||||||
|
|
||||||
CopyNormal(srcdir, basedir);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void CopyNormal(string src, string dest)
|
|
||||||
{
|
|
||||||
string[] files = Directory.GetFiles(src);
|
|
||||||
|
|
||||||
if (!Directory.Exists(dest))
|
|
||||||
Directory.CreateDirectory(dest);
|
|
||||||
|
|
||||||
for (int i=0; i<files.Length; i++)
|
|
||||||
{
|
|
||||||
File.Copy(files[i],
|
|
||||||
dest + "\\" + GetFileName(files[i]),
|
|
||||||
true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool BuildModPlugins(AMod mod)
|
|
||||||
{
|
|
||||||
int num = mod.GetPlugins();
|
|
||||||
|
|
||||||
Plugin plugin;
|
|
||||||
string binary, basedir;
|
|
||||||
|
|
||||||
basedir = m_Cfg.OutputPath();
|
|
||||||
basedir += "\\" + mod.GetModPath();
|
|
||||||
|
|
||||||
string dir, file, target;
|
|
||||||
for (int i=0; i<num; i++)
|
|
||||||
{
|
|
||||||
plugin = mod.GetPlugin(i);
|
|
||||||
binary = BuildPlugin(mod, plugin);
|
|
||||||
file = m_Cfg.GetSourceTree() + "\\plugins\\" + GetFileName(binary);
|
|
||||||
if (!File.Exists(file))
|
|
||||||
{
|
|
||||||
System.Console.WriteLine("Plugin failed to compile: " +
|
|
||||||
mod.GetName() + "::" + plugin.name);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
dir = basedir + "\\" + plugin.outdir;
|
|
||||||
if (!Directory.Exists(dir))
|
|
||||||
Directory.CreateDirectory(dir);
|
|
||||||
target = dir + "\\" + plugin.name + ".amxx";
|
|
||||||
if (File.Exists(target))
|
|
||||||
File.Delete(target);
|
|
||||||
File.Move(file,
|
|
||||||
target);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Copy all files from the plugins dir to scripting
|
|
||||||
|
|
||||||
string search_dir = m_Cfg.GetSourceTree() + "\\plugins";
|
|
||||||
if (mod.GetPluginDir() != null)
|
|
||||||
search_dir += "\\" + mod.GetPluginDir();
|
|
||||||
|
|
||||||
string dest;
|
|
||||||
if (Directory.Exists(search_dir))
|
|
||||||
{
|
|
||||||
string[] files = Directory.GetFiles(search_dir);
|
|
||||||
if (!Directory.Exists(basedir + "\\scripting"))
|
|
||||||
Directory.CreateDirectory(basedir + "\\scripting");
|
|
||||||
for (int i=0; i<files.Length; i++)
|
|
||||||
{
|
|
||||||
dest = basedir + "\\scripting\\" + GetFileName(files[i]);
|
|
||||||
File.Copy(files[i], dest, true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static string GetFileName(string input)
|
|
||||||
{
|
|
||||||
for (int i=input.Length-1; i>=0; i--)
|
|
||||||
{
|
|
||||||
if (input[i] == '\\' && i != input.Length-1)
|
|
||||||
{
|
|
||||||
return input.Substring(i+1, input.Length-i-1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return input;
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool BuildModModules(AMod mod)
|
|
||||||
{
|
|
||||||
int num = mod.GetModules();
|
|
||||||
|
|
||||||
Module module;
|
|
||||||
string binary, basedir;
|
|
||||||
|
|
||||||
basedir = m_Cfg.OutputPath();
|
|
||||||
basedir += "\\" + mod.GetModPath();
|
|
||||||
|
|
||||||
string dir;
|
|
||||||
for (int i=0; i<num; i++)
|
|
||||||
{
|
|
||||||
module = mod.GetModule(i);
|
|
||||||
binary = BuildModule(module);
|
|
||||||
|
|
||||||
if (binary == null)
|
|
||||||
{
|
|
||||||
System.Console.WriteLine("Module failed to compile: " +
|
|
||||||
mod.GetName() + "::" + module.projname + ".dll");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
dir = basedir + "\\" + module.outdir;
|
|
||||||
if (!Directory.Exists(dir))
|
|
||||||
Directory.CreateDirectory(dir);
|
|
||||||
File.Copy(binary,
|
|
||||||
dir + "\\" + module.projname + ".dll",
|
|
||||||
true);
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public string BuildPlugin(AMod mod, Plugin pl)
|
|
||||||
{
|
|
||||||
string modoffs = mod.GetPluginDir();
|
|
||||||
string pldir;
|
|
||||||
|
|
||||||
if (modoffs != null)
|
|
||||||
pldir = modoffs + "\\";
|
|
||||||
else
|
|
||||||
pldir = "";
|
|
||||||
|
|
||||||
AmxxPc(pldir + pl.source, pl.options);
|
|
||||||
|
|
||||||
string outfile = pldir + pl.name + ".amxx";
|
|
||||||
|
|
||||||
return outfile;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void AmxxPc(string inpath, string args)
|
|
||||||
{
|
|
||||||
ProcessStartInfo info = new ProcessStartInfo();
|
|
||||||
|
|
||||||
info.WorkingDirectory = m_Cfg.GetSourceTree() + "\\plugins";
|
|
||||||
info.FileName = (string)m_AmxxPc.Clone();
|
|
||||||
info.Arguments = inpath + ".sma";
|
|
||||||
if (args != null)
|
|
||||||
info.Arguments += " " + args;
|
|
||||||
info.UseShellExecute = false;
|
|
||||||
|
|
||||||
Process p = Process.Start(info);
|
|
||||||
p.WaitForExit();
|
|
||||||
}
|
|
||||||
|
|
||||||
public string BuildModule(Module module)
|
|
||||||
{
|
|
||||||
ProcessStartInfo info = new ProcessStartInfo();
|
|
||||||
|
|
||||||
string dir = m_Cfg.GetSourceTree() + "\\" + module.sourcedir;
|
|
||||||
if (module.bindir != null)
|
|
||||||
dir += "\\" + module.bindir;
|
|
||||||
string file = dir;
|
|
||||||
if (module.bindir == null)
|
|
||||||
file += "\\" + module.bindir;
|
|
||||||
file += "\\" + module.build + "\\" + module.projname + ".dll";
|
|
||||||
|
|
||||||
if (File.Exists(file))
|
|
||||||
File.Delete(file);
|
|
||||||
|
|
||||||
info.WorkingDirectory = dir;
|
|
||||||
info.FileName = m_Cfg.DevenvPath();
|
|
||||||
info.Arguments = "/build " + module.build + " " + module.vcproj + ".vcproj";
|
|
||||||
info.UseShellExecute = false;
|
|
||||||
|
|
||||||
Process p = Process.Start(info);
|
|
||||||
p.WaitForExit();
|
|
||||||
|
|
||||||
if (!File.Exists(file))
|
|
||||||
return null;
|
|
||||||
|
|
||||||
return file;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user