3 using System.Diagnostics;
7 public class LinuxBuilder : ABuilder
9 public LinuxBuilder(Config _cfg)
14 public override string GetPawnCompilerName()
19 public override string CompressPackage(Package pkg)
21 string lpath = null, ltarget = null;
23 pkg.GetCompressBases(ref lpath, ref ltarget);
25 string local_dir = Config.PathFormat("{0}/{1}",
29 string name = PackageBuildName(pkg) + ".tar.gz";
31 ProcessStartInfo info = new ProcessStartInfo();
32 info.FileName = cfg.Compressor;
33 info.WorkingDirectory = local_dir;
34 info.Arguments = "zcvf \"" + name + "\" \"" + ltarget + "\"";
35 info.UseShellExecute = false;
37 Process p = Process.Start(info);
40 local_dir = Config.PathFormat("{0}/{1}", local_dir, name);
42 if (!File.Exists(local_dir))
51 public override bool BuildLibrary(Package pkg, Library lib, ref string _binName, ref string _binPath)
53 ProcessStartInfo info = new ProcessStartInfo();
55 string path = Config.PathFormat("{0}/{1}",
59 /* PlatformExt ignored for us */
60 string binName = lib.Name;
62 if (!lib.IsExecutable)
66 binName += "_i486.so";
74 string binpath = Config.PathFormat("{0}/{1}/{2}",
79 if (File.Exists(binpath))
84 /* Clean the project first */
85 info.WorkingDirectory = path;
86 info.FileName = cfg.BuilderPath;
87 info.Arguments = "clean";
88 info.UseShellExecute = false;
90 Process p = Process.Start(info);
95 info.WorkingDirectory = path;
96 info.FileName = cfg.BuilderPath;
98 info.UseShellExecute = false;
100 if (cfg.BuildOptions != null)
102 info.Arguments += " " + cfg.BuildOptions;
105 p = Process.Start(info);
109 if (!File.Exists(binpath))