1 struct PackageMode : Moveable<PackageMode> { 2 int debug; 3 int blitz; 4 SerializePackageMode5 void Serialize(Stream& s) { s / debug / blitz / blitz; } 6 PackageModePackageMode7 PackageMode() { debug = blitz = Null; } 8 }; 9 10 struct TargetMode { 11 bool target_override; 12 String target; 13 int linkmode; 14 bool createmap; 15 String version; 16 PackageMode def; 17 VectorMap<String, PackageMode> package; 18 19 void Serialize(Stream& s); 20 TargetModeTargetMode21 TargetMode() { def.debug = def.blitz = 0; target_override = false; linkmode = 0; createmap = false; } 22 }; 23 24 String NoCr(const char *s); 25 int CharFilterSlash(int c); 26 27 String GetDefaultMethod(); 28 VectorMap<String, String> GetMethodVars(const String& method); 29 30 class MakeBuild { 31 public: 32 virtual void ConsoleShow() = 0; // ShowConsole(); console.Sync(); 33 virtual void ConsoleSync() = 0; // console.Sync() 34 virtual void ConsoleClear() = 0; 35 virtual void SetupDefaultMethod() = 0; 36 virtual Vector<String> PickErrors() = 0; //console.PickErrors() 37 virtual void BeginBuilding(bool sync_files, bool clear_console) = 0; 38 virtual void EndBuilding(bool ok) = 0; 39 virtual void ClearErrorEditor() = 0; 40 virtual void DoProcessEvents() = 0; 41 virtual void ReQualifyCodeBase() = 0; 42 virtual void SetErrorEditor() = 0; 43 virtual String GetMain() = 0; 44 45 struct TransferFileInfo 46 { 47 String sourcepath; 48 int filetime; 49 int filesize; 50 }; 51 52 ArrayMap<String, TransferFileInfo> transferfilecache; 53 String method; 54 int targetmode; 55 TargetMode debug; 56 TargetMode release; 57 String cmdout; 58 String target; 59 String onefile; 60 bool stoponerrors; 61 bool use_target; 62 String mainconfigparam; 63 String add_includes; 64 String main_conf; 65 Index<String> cfg; 66 FileTime start_time; 67 68 bool makefile_svn_revision = true; 69 70 const TargetMode& GetTargetMode(); 71 Index<String> PackageConfig(const Workspace& wspc, int package, const VectorMap<String, String>& bm, 72 String mainparam, Host& host, Builder& b, String *target = NULL); 73 // bool SyncHostFiles(RemoteHost& host); 74 One<Host> CreateHost(bool darkmode, bool disable_uhd); 75 One<Builder> CreateBuilder(Host *host); 76 String OutDir(const Index<String>& cfg, const String& package, 77 const VectorMap<String, String>& bm, bool use_target = false); 78 void PkgConfig(const Workspace& wspc, const Index<String>& config, Index<String>& pkg_config); 79 bool BuildPackage(const Workspace& wspc, int pkindex, int pknumber, int pkcount, 80 String mainparam, String outfile, Vector<String>& linkfile, Vector<String>& immfile, 81 String& linkopt, bool link = false); 82 void SetHdependDirs(); 83 Vector<String> GetAllUses(const Workspace& wspc, int f, const VectorMap<String, String>& bm, 84 String mainparam, Host& host, Builder& builder); 85 Vector<String> GetAllLibraries(const Workspace& wspc, int index, 86 const VectorMap<String, String>& bm, String mainparam, 87 Host& host, Builder& builder); 88 bool Build(const Workspace& wspc, String mainparam, String outfile, bool clear_console = true); 89 bool Build(); 90 void CleanPackage(const Workspace& wspc, int package); 91 void Clean(); 92 void RebuildAll(); 93 void SaveMakeFile(const String& fn, bool exporting); 94 95 MakeBuild(); 96 97 private: 98 static String GetInvalidBuildMethodError(const String& method); 99 }; 100 101 extern bool output_per_assembly; 102