public override void RunJob( string projectRoot, ProjectConfig project, ProjectBuildTarget target, ProjectBuildJob job) { string old = Directory.GetCurrentDirectory(); Directory.SetCurrentDirectory(projectRoot); ProgramBuilder.Build(job.Arguments); if (job.Arguments.TryGetValue("export:labels", out string headerFiles)) { string headerFile = Path.Combine(projectRoot, "header.vhlheader"); string[] list = headerFiles.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries). Select(x => x.Trim()). ToArray(); BuildJobMakeHeader.MakeHeader(headerFile, list); } Directory.SetCurrentDirectory(old); }
private static ProjectBuildTarget CreateReleaseTarget() { ProjectBuildTarget release = new ProjectBuildTarget(); release.TargetName = "Release"; ProjectBuildJob restoreJob = new ProjectBuildJob(); restoreJob.BuildJobRunner = "restore"; restoreJob.JobName = "Restore %NAME%@%VERSION%"; restoreJob.Arguments["origin"] = "local"; release.Jobs.Add(restoreJob); ProjectBuildJob externalJob = new ProjectBuildJob(); externalJob.BuildJobRunner = "external-build"; externalJob.JobName = "Building Dependencies of %NAME%@%VERSION%"; externalJob.Arguments["path"] = ""; externalJob.Arguments["target"] = "%TARGET%"; release.Jobs.Add(externalJob); ProjectBuildJob mergeBuildJob = new ProjectBuildJob(); mergeBuildJob.JobName = "Merged Release Build"; mergeBuildJob.BuildJobRunner = "merged"; mergeBuildJob.Arguments["merge:include"] = "%VISDIR%common/jobs/release_build.json"; mergeBuildJob.Arguments["build:input"] = "Program.vhl"; release.Jobs.Add(mergeBuildJob); return(release); }
public override void RunJob( string projectRoot, ProjectConfig project, ProjectBuildTarget target, ProjectBuildJob job) { string input = job.Arguments["source"]; string output = job.Arguments["destination"]; if (Directory.Exists(input)) { Directory.CreateDirectory(output); ProjectPackSubSystem.CopyTo(input, output); } else if (File.Exists(input)) { if (Directory.Exists(output)) { File.Copy(input, Path.Combine(output, Path.GetFileName(input)), true); } else { File.Copy(input, output, true); } } }
public override void RunJob( string projectRoot, ProjectConfig project, ProjectBuildTarget target, ProjectBuildJob job) { ProjectCleanSubSystem.Clean(projectRoot); }
public override void RunJob( string projectRoot, ProjectConfig project, ProjectBuildTarget target, ProjectBuildJob job) { foreach (string argumentsKey in job.Arguments.Keys) { RemoveOriginSubSystem.RemoveOrigin(argumentsKey); } }
public override void RunJob( string projectRoot, ProjectConfig project, ProjectBuildTarget target, ProjectBuildJob job) { foreach (KeyValuePair <string, string> keyValuePair in job.Arguments) { AddOriginSubSystem.AddOrigin(keyValuePair.Key, keyValuePair.Value); } }
public override void RunJob( string projectRoot, ProjectConfig project, ProjectBuildTarget target, ProjectBuildJob job) { foreach (KeyValuePair <string, string> buildJobs in job.Arguments) { ProjectBuildJob subJob = ProjectBuildJob.Load(buildJobs.Value); project.RunJob(projectRoot, target, subJob); } }
public override void RunJob( string projectRoot, ProjectConfig project, ProjectBuildTarget target, ProjectBuildJob job) { string old = Directory.GetCurrentDirectory(); Directory.SetCurrentDirectory(projectRoot); ProgramRunner.Run(job.Arguments); Directory.SetCurrentDirectory(old); }
public override void RunJob( string projectRoot, ProjectConfig project, ProjectBuildTarget target, ProjectBuildJob job) { foreach (KeyValuePair <string, string> keyValuePair in job.Arguments) { ProjectConfig info = ProjectResolver.Resolve(keyValuePair.Key, keyValuePair.Value); info.Manager.Get(info, Path.Combine(projectRoot, info.ProjectName)); } }
public override void RunJob( string projectRoot, ProjectConfig project, ProjectBuildTarget target, ProjectBuildJob job) { if (!job.Arguments.TryGetValue("origin", out string repo)) { repo = "local"; } ProjectRestoreSubSystem.Restore(projectRoot, repo); }
public override void RunJob( string projectRoot, ProjectConfig project, ProjectBuildTarget target, ProjectBuildJob job) { if (job.Arguments.TryGetValue("files", out string linkerPath)) { string[] list = linkerPath.Split(new [] { ';' }, StringSplitOptions.RemoveEmptyEntries).Select(x => x.Trim()).ToArray(); string headerFile = Path.Combine(projectRoot, "header.vhlheader"); MakeHeader(headerFile, list); } }
private static ProjectBuildTarget CreateRunTarget() { ProjectBuildTarget release = new ProjectBuildTarget(); release.TargetName = "Run"; release.DependsOn = new string[0]; ProjectBuildJob mergeRunJob = new ProjectBuildJob(); mergeRunJob.JobName = "Merged Run"; mergeRunJob.BuildJobRunner = "merged"; mergeRunJob.Arguments["merge:include"] = "%VISDIR%common/jobs/release_run.json"; mergeRunJob.Arguments["run:input"] = "Program.vbin"; release.Jobs.Add(mergeRunJob); return(release); }
private static ProjectBuildTarget CreateDebugRunTarget() { ProjectBuildTarget debug = new ProjectBuildTarget(); debug.TargetName = "DebugRun"; debug.DependsOn = new[] { "Debug" }; ProjectBuildJob mergeRunJob = new ProjectBuildJob(); mergeRunJob.JobName = "Merged Debug Run"; mergeRunJob.BuildJobRunner = "merged"; mergeRunJob.Arguments["merge:include"] = "%VISDIR%common/jobs/debug_run.json"; mergeRunJob.Arguments["run:input"] = "Program.vbin"; debug.Jobs.Add(mergeRunJob); return(debug); }
public override void RunJob( string projectRoot, ProjectConfig project, ProjectBuildTarget target, ProjectBuildJob job) { ProjectBuildJob includeJob = ProjectBuildJob.Load(job.Arguments["merge:include"]); foreach (KeyValuePair <string, string> buildJobs in job.Arguments) { if (buildJobs.Key != "merge:include") { includeJob.Arguments[buildJobs.Key] = buildJobs.Value; } } project.RunJob(projectRoot, target, includeJob); }
public static ProjectConfig GenerateProjectConfig(string name, string version) { ProjectConfig config = new ProjectConfig(); if (name != null) { config.ProjectName = name; } if (version != null) { config.ProjectVersion = version; } ProjectBuildTarget debugTarget = CreateDebugTarget(); ProjectBuildTarget debugRunTarget = CreateDebugRunTarget(); ProjectBuildTarget releaseTarget = CreateReleaseTarget(); ProjectBuildTarget releaseRunTarget = CreateReleaseRunTarget(); ProjectBuildTarget runTarget = CreateRunTarget(); ProjectBuildTarget publishTarget = new ProjectBuildTarget(); publishTarget.TargetName = "Publish"; ProjectBuildJob publishJob = new ProjectBuildJob(); publishJob.JobName = "Publish Project"; publishJob.BuildJobRunner = "merged"; publishJob.Arguments["merge:include"] = "%VISDIR%common/jobs/newVersion.json"; publishTarget.Jobs.Add(publishJob); config.BuildTargets["Publish"] = publishTarget; config.BuildTargets["Debug"] = debugTarget; config.BuildTargets["DebugRun"] = debugRunTarget; config.BuildTargets["Release"] = releaseTarget; config.BuildTargets["ReleaseRun"] = releaseRunTarget; config.BuildTargets["Run"] = runTarget; return(config); }
public override void RunJob( string projectRoot, ProjectConfig project, ProjectBuildTarget target, ProjectBuildJob job) { string input = job.Arguments["source"]; string output = job.Arguments["destination"]; if (Directory.Exists(input)) { if (Directory.Exists(output)) { Directory.Delete(output); } Directory.Move(input, output); } else if (File.Exists(input)) { if (Directory.Exists(output)) { string path = Path.Combine(output, Path.GetFileName(input)); if (File.Exists(path)) { File.Delete(path); } File.Move(input, path); } else { if (File.Exists(output)) { File.Delete(output); } File.Move(input, output); } } }
public override void RunJob( string projectRoot, ProjectConfig project, ProjectBuildTarget target, ProjectBuildJob job) { ProjectPackSubSystem.PackOptions opts = new ProjectPackSubSystem.PackOptions(); ProjectPublishSubSystem.PublishOptions pops = new ProjectPublishSubSystem.PublishOptions(); if (job.Arguments.TryGetValue("version", out string ver)) { opts.VersionString = ver; } if (job.Arguments.TryGetValue("origin", out string origin)) { pops.Repository = origin; } ProjectPublishSubSystem.Publish(projectRoot, pops, opts); }
public override void RunJob( string projectRoot, ProjectConfig project, ProjectBuildTarget target, ProjectBuildJob job) { string path = job.Arguments["path"]; string[] projects = path.Split(';'); job.Arguments.TryGetValue("target", out string externalTarget); foreach (string projJson in projects) { if (string.IsNullOrWhiteSpace(projJson)) { continue; } string projectPath = Path.GetFullPath(projJson); ProjectConfig external = ProjectConfig.Load(projectPath); external.RunTarget(Path.GetDirectoryName(projectPath), externalTarget); } }
public abstract void RunJob( string projectRoot, ProjectConfig project, ProjectBuildTarget target, ProjectBuildJob job);