/// <summary>
        /// Main entry point for the task
        /// </summary>
        /// <returns></returns>
        public override bool Execute()
        {
            Log.LogMessage(MessageImportance.Normal, "Iron Python Compilation Task");

            // Create the compiler if it does not already exist
            CompilerErrorSink errorSink = new CompilerErrorSink(this.Log);

            errorSink.ProjectDirectory = ProjectPath;
            if (compiler == null)
            {
                if (UseExperimentalCompiler)
                {
                    compiler = new ExperimentalCompiler(new List <string>(this.SourceFiles), this.OutputAssembly, errorSink);
                }
                else
                {
                    compiler = new Compiler(new List <string>(this.SourceFiles), this.OutputAssembly, errorSink);
                }
            }

            if (!InitializeCompiler())
            {
                return(false);
            }

            // Call the compiler and report errors and warnings
            compiler.Compile();

            return(errorSink.BuildSucceeded);
        }
        /// <summary>
        /// Main entry point for the task
        /// </summary>
        /// <returns></returns>
        public override bool Execute()
        {
            Log.LogMessage(MessageImportance.Normal, "Iron Python Compilation Task");

            // Create the compiler if it does not already exist
            CompilerErrorSink errorSink = new CompilerErrorSink(this.Log);
            errorSink.ProjectDirectory = ProjectPath;
            if (compiler == null)
            {
                if (UseExperimentalCompiler)
                    compiler = new ExperimentalCompiler(new List<string>(this.SourceFiles), this.OutputAssembly, errorSink);
                else
                    compiler = new Compiler(new List<string>(this.SourceFiles), this.OutputAssembly, errorSink);
            }

            if (!InitializeCompiler())
                return false;

            // Call the compiler and report errors and warnings
            compiler.Compile();

            return errorSink.BuildSucceeded;
        }