Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(440)

Unified Diff: obsolete/Microsoft.VisualStudio.Project/GlobalPropertyHandler.cs

Issue 10928195: First round of dead file removal (Closed) Base URL: https://github.com/samclegg/nativeclient-sdk.git@master
Patch Set: Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: obsolete/Microsoft.VisualStudio.Project/GlobalPropertyHandler.cs
diff --git a/obsolete/Microsoft.VisualStudio.Project/GlobalPropertyHandler.cs b/obsolete/Microsoft.VisualStudio.Project/GlobalPropertyHandler.cs
deleted file mode 100644
index 1544cb0bfd9931027ec0fd2772ea83eb3ea5ebfb..0000000000000000000000000000000000000000
--- a/obsolete/Microsoft.VisualStudio.Project/GlobalPropertyHandler.cs
+++ /dev/null
@@ -1,356 +0,0 @@
-/// Copyright (c) Microsoft Corporation. All rights reserved.
-
-using System;
-using System.Diagnostics;
-using System.IO;
-using Microsoft.VisualStudio;
-using Microsoft.VisualStudio.Shell.Interop;
-using Microsoft.Win32;
-using IServiceProvider = System.IServiceProvider;
-using MSBuild = Microsoft.Build.BuildEngine;
-using VSRegistry = Microsoft.VisualStudio.Shell.VSRegistry;
-
-namespace Microsoft.VisualStudio.Project
-{
- /// <summary>
- /// This class defines and sets the so called global properties that are needed to be provided
- /// before a project builds.
- /// </summary>
- internal class GlobalPropertyHandler : IDisposable
- {
- #region constants
- /// <summary>
- /// The registry relative path entry for finding the fxcop installdir
- /// </summary>
- private const string FxCopRegistryRelativePathEntry = "Setup\\EDev";
-
- /// <summary>
- /// The registry installation Directory key name.
- /// </summary>
- private const string FxCopRegistryInstallDirKeyName = "FxCopDir";
-
- /// <summary>
- /// This is the constant that will be set as the value of the VSIDEResolvedNonMSBuildProjectOutputs global property.
- /// </summary>
- private const string VSIDEResolvedNonMSBuildProjectOutputsValue = "<VSIDEResolvedNonMSBuildProjectOutputs></VSIDEResolvedNonMSBuildProjectOutputs>";
-
-
- #endregion
-
- #region fields
- /// <summary>
- /// Raised when the active project configuration for a project in the solution has changed.
- /// </summary>
- internal event EventHandler<ActiveConfigurationChangedEventArgs> ActiveConfigurationChanged;
-
- /// <summary>
- /// Defines the global properties of the associated build project.
- /// </summary>
- private MSBuild.BuildPropertyGroup globalProjectProperties;
-
- /// <summary>
- /// Defines the global properties of the associated build engine.
- /// </summary>
- private MSBuild.BuildPropertyGroup globalEngineProperties;
-
- /// <summary>
- /// Flag determining if the object has been disposed.
- /// </summary>
- private bool isDisposed;
-
- /// <summary>
- /// Defines an object that will be a mutex for this object for synchronizing thread calls.
- /// </summary>
- private static volatile object Mutex = new object();
-
- /// <summary>
- /// Defines the configuration change listener.
- /// </summary>
- private UpdateConfigPropertiesListener configurationChangeListener;
- #endregion
-
- #region constructors
- /// <summary>
- /// Overloaded constructor.
- /// </summary>
- /// <param name="project">An instance of a build project</param>
- /// <exception cref="ArgumentNullException">Is thrown if the passed Project is null.</exception>
- internal GlobalPropertyHandler(MSBuild.Project project)
- {
- Debug.Assert(project != null, "The project parameter passed cannot be null");
-
- this.globalProjectProperties = project.GlobalProperties;
-
- Debug.Assert(project.ParentEngine != null, "The parent engine has not been initialized");
-
- this.globalEngineProperties = project.ParentEngine.GlobalProperties;
- }
- #endregion
-
- #region IDisposable Members
-
- /// <summary>
- /// The IDispose interface Dispose method for disposing the object determinastically.
- /// </summary>
- public void Dispose()
- {
- this.Dispose(true);
- GC.SuppressFinalize(this);
- }
-
- #endregion
-
- #region methods
- /// <summary>
- /// Initializes MSBuild project properties. This method is called before the first project re-evaluation happens in order to set the global properties.
- /// </summary>
- [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase")]
- internal virtual void InitializeGlobalProperties()
- {
-
- // Set the BuildingInsideVisualStudio property to true.
- this.SetGlobalProperty(GlobalProperty.BuildingInsideVisualStudio.ToString(), "true");
-
- // Set the ResolvedNonMSBuildProjectOutputs property to empty. This is so that it has some deterministic value, even
- // if it's empty. This is important because of the way global properties are merged together when one
- // project is calling the <MSBuild> task on another project.
- this.SetGlobalProperty(GlobalProperty.VSIDEResolvedNonMSBuildProjectOutputs.ToString(), VSIDEResolvedNonMSBuildProjectOutputsValue);
-
- // Set the RunCodeAnalysisOverride property to false. This is so that it has some deterministic value.
- // This is important because of the way global properties are merged together when one
- // project is calling the <MSBuild> task on another project.
- this.SetGlobalProperty(GlobalProperty.RunCodeAnalysisOnce.ToString(), "false");
-
- // Set Configuration=Debug. This is a perf optimization, not strictly required for correct functionality.
- // Since most people keep most of their projects with Active Configuration = "Debug" during development,
- // setting this up front makes it faster to load the project. This way, we don't have to change the
- // value of Configuration down the road, forcing MSBuild to have to re-evaluate the project.
- this.SetGlobalProperty(GlobalProperty.Configuration.ToString(), ProjectConfig.Debug);
-
- // Set Platform=AnyCPU. This is a perf optimization, not strictly required for correct functionality.
- // Since most people keep most of their projects with Active Platform = "AnyCPU" during development,
- // setting this up front makes it faster to load the project. This way, we don't have to change the
- // value of Platform down the road, forcing MSBuild to have to re-evaluate the project.
- this.SetGlobalProperty(GlobalProperty.Platform.ToString(), ProjectConfig.AnyCPU);
-
- // Set the solution related msbuild global properties.
- this.SetSolutionProperties();
-
- // Set the VS location global property.
- this.SetGlobalProperty(GlobalProperty.DevEnvDir.ToString(), GetEnvironmentDirectoryLocation());
-
- // Set the fxcop location global property.
- this.SetGlobalProperty(GlobalProperty.FxCopDir.ToString(), GetFxCopDirectoryLocation());
- }
-
- /// <summary>
- /// Initializes the internal configuration change listener.
- /// </summary>
- /// <param name="hierarchy">The associated service hierarchy.</param>
- /// <param name="serviceProvider">The associated service provider.</param>
- internal void RegisterConfigurationChangeListener(IVsHierarchy hierarchy, IServiceProvider serviceProvider)
- {
- Debug.Assert(hierarchy != null, "The passed hierarchy cannot be null");
- Debug.Assert(serviceProvider != null, "The passed service provider cannot be null");
- Debug.Assert(this.configurationChangeListener == null, "The configuration change listener has already been initialized");
- this.configurationChangeListener = new UpdateConfigPropertiesListener(this, serviceProvider);
- }
-
- /// <summary>
- /// The method that does the cleanup.
- /// </summary>
- /// <param name="disposing">true if called from IDispose.Dispose; false if called from Finalizer.</param>
- protected virtual void Dispose(bool disposing)
- {
- // Everybody can go here.
- if(!this.isDisposed)
- {
- // Synchronize calls to the Dispose simultaniously.
- lock(Mutex)
- {
- if(disposing)
- {
- this.configurationChangeListener.Dispose();
- }
-
- this.isDisposed = true;
- }
- }
- }
-
- /// <summary>
- /// Called when the active project configuration for a project in the solution has changed.
- /// </summary>
- /// <param name="hierarchy">The project whose configuration has changed.</param>
- private void RaiseActiveConfigurationChanged(IVsHierarchy hierarchy)
- {
- // Save event in temporary variable to avoid race condition.
- EventHandler<ActiveConfigurationChangedEventArgs> tempEvent = this.ActiveConfigurationChanged;
- if(tempEvent != null)
- {
- tempEvent(this, new ActiveConfigurationChangedEventArgs(hierarchy));
- }
- }
-
- /// <summary>
- /// Sets the solution related global properties (SolutionName, SolutionFileName, SolutionPath, SolutionDir, SolutionExt).
- /// </summary>
- private void SetSolutionProperties()
- {
- IVsSolution solution = Microsoft.VisualStudio.Shell.Package.GetGlobalService(typeof(IVsSolution)) as IVsSolution;
- Debug.Assert(solution != null, "Could not retrieve the solution service from the global service provider");
-
- string solutionDirectory, solutionFile, userOptionsFile;
-
- // We do not want to throw. If we cannot set the solution related constants we set them to empty string.
- ErrorHandler.ThrowOnFailure(solution.GetSolutionInfo(out solutionDirectory, out solutionFile, out userOptionsFile));
-
- if(solutionDirectory == null)
- {
- solutionDirectory = String.Empty;
- }
-
- this.SetGlobalProperty(GlobalProperty.SolutionDir.ToString(), solutionDirectory);
-
- if(solutionFile == null)
- {
- solutionFile = String.Empty;
- }
-
- this.SetGlobalProperty(GlobalProperty.SolutionPath.ToString(), solutionFile);
-
- string solutionFileName = (solutionFile.Length == 0) ? String.Empty : Path.GetFileName(solutionFile);
- this.SetGlobalProperty(GlobalProperty.SolutionFileName.ToString(), solutionFileName);
-
- string solutionName = (solutionFile.Length == 0) ? String.Empty : Path.GetFileNameWithoutExtension(solutionFile);
- this.SetGlobalProperty(GlobalProperty.SolutionName.ToString(), solutionName);
-
- string solutionExtension = String.Empty;
- if(solutionFile.Length > 0 && Path.HasExtension(solutionFile))
- {
- solutionExtension = Path.GetExtension(solutionFile);
- }
-
- this.SetGlobalProperty(GlobalProperty.SolutionExt.ToString(), solutionExtension);
- }
-
- /// <summary>
- /// Retrieves the Devenv installation directory.
- /// </summary>
- private static string GetEnvironmentDirectoryLocation()
- {
- IVsShell shell = Microsoft.VisualStudio.Shell.Package.GetGlobalService(typeof(IVsShell)) as IVsShell;
- Debug.Assert(shell != null, "Could not retrieve the IVsShell service from the global service provider");
-
- object installDirAsObject;
-
- // We do not want to throw. If we cannot set the solution related constants we set them to empty string.
- ErrorHandler.ThrowOnFailure(shell.GetProperty((int)__VSSPROPID.VSSPROPID_InstallDirectory, out installDirAsObject));
-
- string installDir = ((string)installDirAsObject);
-
- if(String.IsNullOrEmpty(installDir))
- {
- return String.Empty;
- }
-
- // Ensure that we have traimnling backslash as this is done for the langproj macros too.
- if(installDir[installDir.Length - 1] != Path.DirectorySeparatorChar)
- {
- installDir += Path.DirectorySeparatorChar;
- }
-
- return installDir;
- }
-
-
- /// <summary>
- /// Retrieves the fxcop dierctory location
- /// </summary>
- private static string GetFxCopDirectoryLocation()
- {
- using(RegistryKey root = VSRegistry.RegistryRoot(__VsLocalRegistryType.RegType_Configuration))
- {
- if(null == root)
- {
- return String.Empty;
- }
-
- using(RegistryKey key = root.OpenSubKey(FxCopRegistryRelativePathEntry))
- {
- if(key != null)
- {
- string fxcopInstallDir = key.GetValue(FxCopRegistryInstallDirKeyName) as string;
-
- return (fxcopInstallDir == null) ? String.Empty : fxcopInstallDir;
- }
- }
- }
-
- return String.Empty;
- }
-
- /// <summary>
- /// Sets a global property on the associated build project and build engine.
- /// </summary>
- /// <param name="propertyName">The name of teh property to set.</param>
- /// <param name="propertyValue">Teh value of teh property.</param>
- private void SetGlobalProperty(string propertyName, string propertyValue)
- {
- this.globalProjectProperties.SetProperty(propertyName, propertyValue, true);
-
- // Set the same global property on the parent Engine object. The Project
- // object, when it was created, got a clone of the global properties from
- // the engine. So changing it in the Project doesn't impact the Engine.
- // However, we do need the Engine to have this new global property setting
- // as well, because with project-to-project references, any child projects
- // are going to get their initial global properties from the Engine when
- // they are created.
- this.globalEngineProperties.SetProperty(propertyName, propertyValue, true);
- }
- #endregion
-
- #region nested types
- /// <summary>
- /// Defines a class that will listen to configuration changes and will update platform and configuration name changes accordingly.
- /// </summary>
- private class UpdateConfigPropertiesListener : UpdateSolutionEventsListener
- {
- #region fields
-
- /// <summary>
- /// Defines the containing object.
- /// </summary>
- private GlobalPropertyHandler globalPropertyHandler;
- #endregion
-
- #region constructors
- /// <summary>
- /// Overloaded constructor.
- /// </summary>
- /// <param name="globalProperties"></param>
- /// <param name="associatedHierachy">The associated hierrachy.</param>
- /// <param name="serviceProvider">The associated service provider</param>
- internal UpdateConfigPropertiesListener(GlobalPropertyHandler globalPropertyHandler, IServiceProvider serviceProvider)
- : base(serviceProvider)
- {
- this.globalPropertyHandler = globalPropertyHandler;
- }
- #endregion
-
- #region methods
- /// <summary>
- /// Called when the active project configuration for a project in the solution has changed.
- /// </summary>
- /// <param name="hierarchy">The project whose configuration has changed.</param>
- /// <returns>If the method succeeds, it returns S_OK. If it fails, it returns an error code.</returns>
- public override int OnActiveProjectCfgChange(IVsHierarchy hierarchy)
- {
- this.globalPropertyHandler.RaiseActiveConfigurationChanged(hierarchy);
- return VSConstants.S_OK;
- }
- #endregion
- }
- #endregion
- }
-}
« no previous file with comments | « obsolete/Microsoft.VisualStudio.Project/FolderNode.cs ('k') | obsolete/Microsoft.VisualStudio.Project/GlobalSuppressions.cs » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698