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); } }
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; }
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); }