3 using System.Diagnostics;
7 public class LinuxBuilder : ABuilder
9 public LinuxBuilder(Config _cfg)
14 public override string GetPawnCompilerName()
19 public override bool BuildLibrary(Package pkg, Library lib)
21 ProcessStartInfo info = new ProcessStartInfo();
23 string path = Config.PathFormat("{0}/{1}",
27 /* PlatformExt ignored for us */
28 string binName = lib.binary_name;
30 if (!lib.is_executable)
32 if (lib.has_platform_ext)
34 binName += "_i486.so";
42 string output_folder = (lib.release_mode == ReleaseMode.ReleaseMode_Release) ? "Release" : "Debug";
44 if (lib.build_mode == BuildMode.BuildMode_Episode2)
46 output_folder += ".orangebox";
48 else if (lib.build_mode == BuildMode.BuildMode_OldMetamod)
50 output_folder += ".original";
53 string binpath = Config.PathFormat("{0}/{1}/{2}",
58 if (File.Exists(binpath))
63 string makefile_args = "";
65 if (lib.build_mode == BuildMode.BuildMode_Episode1)
69 else if (lib.build_mode == BuildMode.BuildMode_Episode2)
71 makefile_args = "ENGINE=\"orangebox\"";
73 else if (lib.build_mode == BuildMode.BuildMode_OldMetamod)
75 makefile_args = "ENGINE=\"original\"";
78 /* Clean the project first */
79 info.WorkingDirectory = path;
80 info.FileName = cfg.builder_path;
81 info.Arguments = makefile_args + " clean";
82 info.UseShellExecute = false;
84 Process p = Process.Start(info);
89 info.WorkingDirectory = path;
90 info.FileName = cfg.builder_path;
91 info.Arguments = makefile_args;
92 info.UseShellExecute = false;
94 if (cfg.build_options != null)
96 info.Arguments += " " + cfg.build_options;
99 p = Process.Start(info);
103 if (!File.Exists(binpath))
108 path = Config.PathFormat("{0}/{1}/{2}/{3}",
113 File.Copy(binpath, path, true);