/// <summary> /// Creates a new project and adds it to the current solution /// </summary> public static Project AddNewProjectToSolution(Solution sln, AbstractLanguageBinding Binding, FileTemplate ProjectType, string Name, string BaseDir) { var prj = CreateNewProject(Binding, ProjectType, Name, BaseDir); if (prj != null) { prj.Save(); sln.AddProject(prj); sln.Save(); } Instance.UpdateGUI(); return prj; }
/// <summary> /// Note: The current solution will not be touched /// </summary> public static Solution CreateNewProjectAndSolution(AbstractLanguageBinding Binding, FileTemplate ProjectType, string Name, string BaseDir, string SolutionName) { var baseDir = BaseDir.Trim('\\', ' ', '\t'); var sln = new Solution(); sln.Name = SolutionName; sln.FileName = baseDir + "\\" + Path.ChangeExtension(Util.PurifyFileName(Name), Solution.SolutionExtension); AddNewProjectToSolution(sln, Binding, ProjectType, Name, baseDir); return sln; }
public NewSrcDlg() { DataContext = this; InitializeComponent(); if (List_Languages.Items.Count > 0) List_Languages.SelectedIndex = 0; if (List_FileTypes.Items.Count > 0) { _FileType = List_FileTypes.Items[0] as FileTemplate; List_FileTypes.SelectedIndex = 0; } }
/// <summary> /// Creates a new project. /// Doesn't add it to the current solution. /// Doesn't modify the current solution. /// </summary> public static Project CreateNewProject(AbstractLanguageBinding Binding, FileTemplate ProjectType, string Name, string BaseDir) { /* * Enforce the creation of a new project directory */ var baseDir = BaseDir.Trim('\\', ' ', '\t') + "\\" + Util.PurifyDirName(Name); if (Directory.Exists(baseDir)) { MessageBox.Show("Project directory "+baseDir+" exists already","Project directory creation error"); return null; } Util.CreateDirectoryRecursively(baseDir); var prj = Binding.CreateEmptyProject(Name, baseDir + "\\" + Path.ChangeExtension(Util.PurifyFileName(Name), ProjectType.Extensions[0]), ProjectType); return prj; }
public NewProjectDlg(DialogMode NewProjectDialogMode) { DataContext = this; InitializeComponent(); if (List_Languages.Items.Count > 0) List_Languages.SelectedIndex = 0; if (List_FileTypes.Items.Count > 0) { _FileType = List_FileTypes.Items[0] as FileTemplate; List_FileTypes.SelectedIndex = 0; } NewProjectDlgMode = NewProjectDialogMode; }
public override Project CreateEmptyProject(string name, string prjfile,FileTemplate FileType) { var prj=new DProject(); prj.Name = name; prj.FileName = prjfile; switch (_ProjectTypes.IndexOf(FileType)) { case 0: // Console app prj.OutputType = OutputTypes.Executable; var mainFile = prj.BaseDirectory+ "\\main.d"; File.WriteAllText(mainFile, DResources.helloWorldConsoleApp); prj.Add(mainFile); prj.Save(); break; case 1: // Win32 app prj.OutputType = OutputTypes.CommandWindowLessExecutable; // Create main file var mainFile2 = prj.BaseDirectory + "\\main.d"; File.WriteAllText(mainFile2, DResources.winsamp_d); prj.Add(mainFile2); // Add library references prj.LinkedLibraries.AddRange(new[]{"kernel32.lib","gdi32.lib"}); // Create Resources-directory var resDir = prj.BaseDirectory + "\\Resources"; Util.CreateDirectoryRecursively(resDir); prj.SubDirectories.Add(resDir); // Create manifest & resource file var manifest=resDir+"\\Win32.manifest"; File.WriteAllText(manifest,DResources.Win32Manifest); var manifestModule=prj.Add(manifest); // Prevent compilation of the manifest file manifestModule.Action = SourceModule.BuildAction.None; var rc = resDir + "\\Resources.rc"; File.WriteAllText(rc, DResources.defResource); prj.Add(rc); // Finally save changes to the project prj.Save(); break; case 2: // DLL prj.OutputType = OutputTypes.DynamicLibary; // We have explicitly reference to phobos library when linking to a .dll prj.LinkedLibraries.Add("phobos.lib"); break; case 3:// Lib prj.OutputType = OutputTypes.StaticLibrary; var libmainFile = prj.BaseDirectory + Path.DirectorySeparatorChar + prj.Name.Replace(' ','_')+".d"; File.WriteAllText(libmainFile, DResources.libExample); prj.Add(libmainFile); prj.Save(); break; default: return null; } return prj; }
public virtual Project CreateEmptyProject(string Name, string ProjectFile, FileTemplate ProjectType) { throw new NotImplementedException(); }
/// <summary> /// Adds a new project to the current solution /// </summary> public static Project AddNewProjectToSolution(AbstractLanguageBinding Binding, FileTemplate ProjectType, string Name, string BaseDir) { return AddNewProjectToSolution(CurrentSolution, Binding, ProjectType, Name, BaseDir); }
public virtual Project CreateEmptyProject(string Name, string ProjectFile,FileTemplate ProjectType) { throw new NotImplementedException(); }