Example #1
0
        /// <summary>
        /// Executes the compiler.
        /// </summary>
        public override bool Execute()
        {
            using (compiler) {
                // Set what sort of assembly we are generating
                // (e.g. WinExe, Exe or Dll)
                compiler.TargetKind = GetPEFileKind(targetType);

                compiler.ExecutableKind = GetExecutableKind(platform);
                compiler.Machine        = GetMachine(platform);

                compiler.SourceFiles             = GetFiles(sources, false);
                compiler.ReferencedAssemblies    = GetFiles(references, true);
                compiler.ResourceFiles           = GetResourceFiles(resources);
                compiler.MainFile                = mainFile;
                compiler.OutputAssembly          = outputAssembly;
                compiler.IncludeDebugInformation = emitDebugInformation;

                // Compile the code.
                try {
                    compiler.Compile();
                    return(true);
                } catch (SyntaxErrorException ex) {
                    LogSyntaxError(ex);
                } catch (IOException ex) {
                    LogError(ex.Message);
                } catch (PythonCompilerException ex) {
                    LogError(ex.Message);
                }
            }
            return(false);
        }
        protected override BuildResult DoBuild(IProgressMonitor monitor, ConfigurationSelector configuration)
        {
            BuildResult         result;
            PythonConfiguration config;

            config = (PythonConfiguration)GetConfiguration(configuration);
            result = new BuildResult();

            if (config.Runtime != null && config.Runtime.Compiler != null)
            {
                IPythonCompiler compiler = config.Runtime.Compiler;

                foreach (ProjectFile projectFile in Files)
                {
                    if (projectFile.BuildAction != BuildAction.Compile)
                    {
                        continue;
                    }

                    compiler.Compile(this, projectFile.FilePath, config, result);
                }
            }

            return(result);
        }