コード例 #1
0
ファイル: DCompilerOptions.cs プロジェクト: nazriel/Mono-D
        public void Load(DCompilerConfiguration config)
        {
            configuration = config;
            //for now, using Executable target compiler command for all targets source compiling
            LinkTargetConfiguration targetConfig;

            targetConfig     = config.GetTargetConfiguration(DCompileTarget.Executable);
            txtCompiler.Text = targetConfig.Compiler;

            //linker targets
            targetConfig             = config.GetTargetConfiguration(DCompileTarget.Executable);
            txtConsoleAppLinker.Text = targetConfig.Linker;

            targetConfig         = config.GetTargetConfiguration(DCompileTarget.ConsolelessExecutable);
            txtGUIAppLinker.Text = targetConfig.Linker;

            targetConfig            = config.GetTargetConfiguration(DCompileTarget.SharedLibrary);
            txtSharedLibLinker.Text = targetConfig.Linker;

            targetConfig            = config.GetTargetConfiguration(DCompileTarget.StaticLibrary);
            txtStaticLibLinker.Text = targetConfig.Linker;

            releaseArgumentsDialog.Load(config, false);
            debugArgumentsDialog.Load(config, true);

            defaultLibStore.Clear();
            foreach (string lib in config.DefaultLibraries)
            {
                defaultLibStore.AppendValues(lib);
            }

            includePathStore.Clear();
            foreach (var p in config.GlobalParseCache.DirectoryPaths)
            {
                includePathStore.AppendValues(p);
            }
        }
コード例 #2
0
        public void Load(DCompilerConfiguration config, bool isDebug)
        {
            Configuration = config;
            this.isDebug  = isDebug;

            LinkTargetConfiguration targetConfig;
            BuildConfiguration      arguments;

            //compiler targets
            targetConfig = config.GetTargetConfiguration(DCompileTarget.ConsolelessExecutable);
            arguments    = targetConfig.GetArguments(isDebug);
            guiCompiler  = arguments.CompilerArguments;

            targetConfig    = config.GetTargetConfiguration(DCompileTarget.Executable);
            arguments       = targetConfig.GetArguments(isDebug);
            consoleCompiler = arguments.CompilerArguments;

            targetConfig      = config.GetTargetConfiguration(DCompileTarget.SharedLibrary);
            arguments         = targetConfig.GetArguments(isDebug);
            sharedlibCompiler = arguments.CompilerArguments;

            targetConfig      = config.GetTargetConfiguration(DCompileTarget.StaticLibrary);
            arguments         = targetConfig.GetArguments(isDebug);
            staticlibCompiler = arguments.CompilerArguments;


            //linker targets
            targetConfig = config.GetTargetConfiguration(DCompileTarget.ConsolelessExecutable);
            arguments    = targetConfig.GetArguments(isDebug);
            guiLinker    = arguments.LinkerArguments;

            targetConfig  = config.GetTargetConfiguration(DCompileTarget.Executable);
            arguments     = targetConfig.GetArguments(isDebug);
            consoleLinker = arguments.LinkerArguments;

            targetConfig    = config.GetTargetConfiguration(DCompileTarget.SharedLibrary);
            arguments       = targetConfig.GetArguments(isDebug);
            sharedlibLinker = arguments.LinkerArguments;

            targetConfig    = config.GetTargetConfiguration(DCompileTarget.StaticLibrary);
            arguments       = targetConfig.GetArguments(isDebug);
            staticlibLinker = arguments.LinkerArguments;
        }
コード例 #3
0
ファイル: DCompilerOptions.cs プロジェクト: nazriel/Mono-D
        public bool Store()
        {
            if (configuration == null)
            {
                return(false);
            }

            Gtk.TreeIter iter;
            string       line;

            //for now, using Executable target compiler command for all targets source compiling
            LinkTargetConfiguration targetConfig;

            targetConfig          = configuration.GetTargetConfiguration(DCompileTarget.Executable);
            targetConfig.Compiler = txtCompiler.Text;

            //linker targets
            targetConfig        = configuration.GetTargetConfiguration(DCompileTarget.Executable);
            targetConfig.Linker = txtConsoleAppLinker.Text;

            targetConfig        = configuration.GetTargetConfiguration(DCompileTarget.ConsolelessExecutable);
            targetConfig.Linker = txtGUIAppLinker.Text;

            targetConfig        = configuration.GetTargetConfiguration(DCompileTarget.SharedLibrary);
            targetConfig.Linker = txtSharedLibLinker.Text;

            targetConfig        = configuration.GetTargetConfiguration(DCompileTarget.StaticLibrary);
            targetConfig.Linker = txtStaticLibLinker.Text;

            releaseArgumentsDialog.Store();
            debugArgumentsDialog.Store();

            defaultLibStore.GetIterFirst(out iter);
            configuration.DefaultLibraries.Clear();
            while (defaultLibStore.IterIsValid(iter))
            {
                line = (string)defaultLibStore.GetValue(iter, 0);
                configuration.DefaultLibraries.Add(line);
                defaultLibStore.IterNext(ref iter);
            }

            // Store new include paths
            includePathStore.GetIterFirst(out iter);
            configuration.GlobalParseCache.ParsedGlobalDictionaries.Clear();
            while (includePathStore.IterIsValid(iter))
            {
                line = (string)includePathStore.GetValue(iter, 0);
                // Add it to the compiler's global parse cache
                configuration.GlobalParseCache.Add(line);
                includePathStore.IterNext(ref iter);
            }

            try
            {
                // Update parse cache immediately
                configuration.GlobalParseCache.UpdateCache();
            }
            catch (Exception ex)
            {
                LoggingService.LogError("Include path analysis error", ex);
            }

            return(true);
        }