void GenerateCPPConfigureMinGW(ref VCCppProperties vcCppProperties, string NameConfigurate, int idp, int idc, string Name, string[] Defines) { VCCppProperties.Configurate configurate = new VCCppProperties.Configurate(); List <string> list = new List <string>(); GenerateProject.GetInclude(Name, ref list); for (int i = 0; i < list.Count; i++) { list[i] = list[i].Replace('\\', '/'); } configurate.includePath = list; List <string> defines = GenerateProject.MapProjects[PlatfromsType[idp]][ConfigurationsType[idc]][Name].Defines.ToList(); defines.AddRange(Defines); configurate.defines = defines; configurate.compilerPath = Path.Combine(Config.Global.MinGWPath, "bin", "g++.exe").Replace('\\', '/'); configurate.name = NameConfigurate; vcCppProperties.configurations.Add(configurate); }
public void Write() { if (Config.Global.IsWindows) { List <string> GlobalDefines = new List <string>(); GlobalDefines.AddRange(new string[] { "WINDOWS", "LIB", "_LIB" }); if (Config.Global.UNICODE) { GlobalDefines.Add("_UNICODE;"); GlobalDefines.Add("UNICODE"); } VCCppProperties vcCppProperties = new VCCppProperties(); string[][] PlatfromsDefines = { new string[] { "WIN64", "X64" } }; string[][] ConfigurationsDefines = { new string[] { "DEBUG", "_DEBUG", "GCC" }, new string[] { "MIXED", "DEBUG", "GCC" }, new string[] { "NDEBUG", "GCC" } }; { for (int i = 0; i < Platfroms.Length; i++) { for (int a = 0; a < Configurations.Length; a++) { List <string> LocalDefines = new List <string>(); LocalDefines.AddRange(GlobalDefines); LocalDefines.AddRange(PlatfromsDefines[i]); LocalDefines.AddRange(ConfigurationsDefines[a]); GenerateCPPConfigureMinGW(ref vcCppProperties, Platfroms[i], i, a, Name, LocalDefines.ToArray()); } } File.WriteAllText(Path.Combine(VCDirectory, "c_cpp_properties.json"), JsonConvert.SerializeObject(vcCppProperties, Formatting.Indented)); } if (General) { { VCTasks vcTasks = new VCTasks(); for (int i = 0; i < Platfroms.Length; i++) { for (int a = 0; a < Configurations.Length; a++) { GenerateTasksMinGW(ref vcTasks, Name, Configurations[a], Platfroms[i]); } } File.WriteAllText(Path.Combine(VCDirectory, "tasks.json"), JsonConvert.SerializeObject(vcTasks, Formatting.Indented)); } { VCLaunch vcLaunch = new VCLaunch(); GenerateLaunchMinGW(ref vcLaunch, "Debug", "debug"); GenerateLaunchMinGW(ref vcLaunch, "Mixed", "mixed"); GenerateLaunchMinGW(ref vcLaunch, "Release", ""); File.WriteAllText(Path.Combine(VCDirectory, "launch.json"), JsonConvert.SerializeObject(vcLaunch, Formatting.Indented)); } } } else { { } } }