public void Execute(string scriptName, string targets = BuildTargetFactory.DefaultNames, string?buildPath = null)
        {
            if (!PreExecutionChecks(true, true, true, true))
            {
                return;
            }
            if (buildPath == null)
            {
                buildPath = Build.DEFAULT_BUILD_PATH;
            }
            Build build = new Build(buildPath);

            BuildTarget[] buildTargets = BuildTargetFactory.ParseCollection(targets, build);
            if (!buildTargets.CanBuildAndWarnIfNot())
            {
                return;
            }
            BuildTargetSimple[] buildTargetsSimple = BuildTargetFactory.GetCollection(buildTargets);
            using (BuildTargetAdvancedCollection buildTargetsAdvanced = BuildTargetFactory.GetCollection(build, buildTargetsSimple))
            {
                TranspileScriptJob transpileJob = new TranspileScriptJob(buildTargetsAdvanced, scriptName);
                transpileJob.Run();
            }
            PrepareWorkspace(build, buildTargets);
            Compile(build, buildTargetsSimple);
            Console.WriteLine("Build Complete");
            string compileLog = File.ReadAllText(build.GetCompileStandardOutputPath());

            Console.WriteLine(compileLog);
        }
        public void Execute(string scriptName, string targets = BuildTarget.DEFAULT_TARGETS, string buildPath = null)
        {
            if (!PreExecutionChecks(true, true, true, true))
            {
                return;
            }
            if (buildPath == null)
            {
                buildPath = Build.DEFAULT_BUILD_PATH;
            }
            Build build = new Build(buildPath);

            using (BuildLogServices buildLogServices = new BuildLogServices(build))
            {
                BuildTargetCollection buildTargets = BuildTargetFactory.GetCollection(targets, build, buildLogServices);
                if (!buildTargets.CanBuildAndWarnIfNot())
                {
                    return;
                }
                TranspileScriptJob transpileJob = new TranspileScriptJob(buildTargets, scriptName);
#if !DEBUG
                try
                {
#endif
                transpileJob.Run();
#if !DEBUG
            }
            catch (ConversionException ex)
            {
                Console.WriteLine("Exception occured." + Environment.NewLine + ex.GetType().FullName + ":  " + ex.Message);
                return;
            }
#endif
                PrepareWorkspace(buildTargets);
                Compile(build, buildTargets);
            }
            Console.WriteLine("Build Complete");
            string compileLog = File.ReadAllText(build.GetCompileStandardOutputPath());
            Console.WriteLine(compileLog);
        }