<Project Sdk="Microsoft.NET.Sdk">

  <Import Project="..\..\PowerShell.Common.props"/>  

  <PropertyGroup>
    <Description>PowerShell Core's System.Management.Automation project</Description>
    <NoWarn>$(NoWarn);CS1570;CS1734</NoWarn>
    <AssemblyName>System.Management.Automation</AssemblyName>
  </PropertyGroup>

  <ItemGroup>
    <ProjectReference Include="..\Microsoft.PowerShell.CoreCLR.AssemblyLoadContext\Microsoft.PowerShell.CoreCLR.AssemblyLoadContext.csproj" />
    <ProjectReference Include="..\Microsoft.PowerShell.CoreCLR.Eventing\Microsoft.PowerShell.CoreCLR.Eventing.csproj" />
    <PackageReference Include="Microsoft.Win32.Registry.AccessControl" Version="4.4.0-preview3-25423-02" />
    <PackageReference Include="Newtonsoft.Json" Version="10.0.1" />
    <PackageReference Include="System.IO.FileSystem.AccessControl" Version="4.4.0-preview3-25423-02" />
    <PackageReference Include="System.Security.AccessControl" Version="4.4.0-preview3-25423-02" />
    <PackageReference Include="System.Security.Cryptography.Pkcs" Version="4.4.0-preview3-25423-02" />
    <PackageReference Include="System.Text.Encoding.CodePages" Version="4.4.0-preview3-25423-02" />
    <PackageReference Include="Microsoft.Management.Infrastructure" Version="1.0.0-alpha*" />
  </ItemGroup>

  <PropertyGroup>
    <DefineConstants>$(DefineConstants);CORECLR</DefineConstants>
  </PropertyGroup>

  <ItemGroup>
    <Compile Remove="cimSupport\cmdletization\xml\cmdlets-over-objects.objectModel.autogen.cs" />
    <Compile Remove="cimSupport\cmdletization\xml\cmdlets-over-objects.xmlSerializer.autogen.cs" />
    <Compile Remove="engine\CodeMethods.cs" />
    <Compile Remove="engine\ComInterop\ArgBuilder.cs" />
    <Compile Remove="engine\ComInterop\BoolArgBuilder.cs" />
    <Compile Remove="engine\ComInterop\BoundDispEvent.cs" />
    <Compile Remove="engine\ComInterop\CollectionExtensions.cs" />
    <Compile Remove="engine\ComInterop\ComBinder.cs" />
    <Compile Remove="engine\ComInterop\ComBinderHelpers.cs" />
    <Compile Remove="engine\ComInterop\ComClassMetaObject.cs" />
    <Compile Remove="engine\ComInterop\ComDispIds.cs" />
    <Compile Remove="engine\ComInterop\ComEventDesc.cs" />
    <Compile Remove="engine\ComInterop\ComEventSink.cs" />
    <Compile Remove="engine\ComInterop\ComEventSinkProxy.cs" />
    <Compile Remove="engine\ComInterop\ComEventSinksContainer.cs" />
    <Compile Remove="engine\ComInterop\ComFallbackMetaObject.cs" />
    <Compile Remove="engine\ComInterop\ComHresults.cs" />
    <Compile Remove="engine\ComInterop\ComInterop.cs" />
    <Compile Remove="engine\ComInterop\ComInvokeAction.cs" />
    <Compile Remove="engine\ComInterop\ComInvokeBinder.cs" />
    <Compile Remove="engine\ComInterop\ComMetaObject.cs" />
    <Compile Remove="engine\ComInterop\ComMethodDesc.cs" />
    <Compile Remove="engine\ComInterop\ComObject.cs" />
    <Compile Remove="engine\ComInterop\ComParamDesc.cs" />
    <Compile Remove="engine\ComInterop\ComRuntimeHelpers.cs" />
    <Compile Remove="engine\ComInterop\ComType.cs" />
    <Compile Remove="engine\ComInterop\ComTypeClassDesc.cs" />
    <Compile Remove="engine\ComInterop\ComTypeDesc.cs" />
    <Compile Remove="engine\ComInterop\ComTypeEnumDesc.cs" />
    <Compile Remove="engine\ComInterop\ComTypeLibDesc.cs" />
    <Compile Remove="engine\ComInterop\ComTypeLibInfo.cs" />
    <Compile Remove="engine\ComInterop\ComTypeLibMemberDesc.cs" />
    <Compile Remove="engine\ComInterop\ConversionArgBuilder.cs" />
    <Compile Remove="engine\ComInterop\ConvertArgBuilder.cs" />
    <Compile Remove="engine\ComInterop\ConvertibleArgBuilder.cs" />
    <Compile Remove="engine\ComInterop\CurrencyArgBuilder.cs" />
    <Compile Remove="engine\ComInterop\DateTimeArgBuilder.cs" />
    <Compile Remove="engine\ComInterop\DispCallable.cs" />
    <Compile Remove="engine\ComInterop\DispCallableMetaObject.cs" />
    <Compile Remove="engine\ComInterop\DispatchArgBuilder.cs" />
    <Compile Remove="engine\ComInterop\ErrorArgBuilder.cs" />
    <Compile Remove="engine\ComInterop\Errors.cs" />
    <Compile Remove="engine\ComInterop\ExcepInfo.cs" />
    <Compile Remove="engine\ComInterop\Helpers.cs" />
    <Compile Remove="engine\ComInterop\IDispatchComObject.cs" />
    <Compile Remove="engine\ComInterop\IDispatchMetaObject.cs" />
    <Compile Remove="engine\ComInterop\IPseudoComObject.cs" />
    <Compile Remove="engine\ComInterop\NullArgBuilder.cs" />
    <Compile Remove="engine\ComInterop\SimpleArgBuilder.cs" />
    <Compile Remove="engine\ComInterop\SplatCallSite.cs" />
    <Compile Remove="engine\ComInterop\StringArgBuilder.cs" />
    <Compile Remove="engine\ComInterop\TypeEnumMetaObject.cs" />
    <Compile Remove="engine\ComInterop\TypeLibInfoMetaObject.cs" />
    <Compile Remove="engine\ComInterop\TypeLibMetaObject.cs" />
    <Compile Remove="engine\ComInterop\TypeUtils.cs" />
    <Compile Remove="engine\ComInterop\UnknownArgBuilder.cs" />
    <Compile Remove="engine\ComInterop\VarEnumSelector.cs" />
    <Compile Remove="engine\ComInterop\Variant.cs" />
    <Compile Remove="engine\ComInterop\VariantArgBuilder.cs" />
    <Compile Remove="engine\ComInterop\VariantArray.cs" />
    <Compile Remove="engine\ComInterop\VariantBuilder.cs" />
    <Compile Remove="engine\ExtraAdapter.cs" />
    <Compile Remove="engine\ManagementObjectAdapter.cs" />
    <Compile Remove="engine\PSMI\PSNegotiationData.cs" />
    <Compile Remove="engine\PSMI\PSPowerShellPipeline.cs" />
    <Compile Remove="engine\PSMI\Serialization\InternalMISerializer.cs" />
    <Compile Remove="engine\PSMI\Serialization\KnownMITypes.cs" />
    <Compile Remove="engine\PSMI\Serialization\MISerializer.cs" />
    <Compile Remove="engine\PSMI\Serialization\MITypeSerializationInfo.cs" />
    <Compile Remove="engine\PSMI\Serialization\PSMISerializer.cs" />
    <Compile Remove="engine\TransactedString.cs" />
    <Compile Remove="engine\TransactionManager.cs" />
    <Compile Remove="engine\hostifaces\NativeCultureResolver.cs" />
    <Compile Remove="engine\hostifaces\RunspaceInvoke.cs" />
    <Compile Remove="logging\eventlog\EventLogLogProvider.cs" />
    <Compile Remove="namespaces\SafeTransactionHandle.cs" />
    <Compile Remove="namespaces\SafeRegistryHandle.cs" />
    <Compile Remove="namespaces\TransactedRegistry.cs" />
    <Compile Remove="namespaces\TransactedRegistryKey.cs" />
    <Compile Remove="namespaces\TransactedRegistrySecurity.cs" />
    <Compile Remove="security\wldpNativeMethods.cs" />
    <Compile Remove="singleshell\Commands\ConsoleCommands.cs" />
    <Compile Remove="singleshell\Commands\MshSnapinCommands.cs" />
    <Compile Remove="singleshell\config\RegistryStringResourceIndirect.cs" />
    <Compile Remove="singleshell\installer\CustomMshSnapin.cs" />
    <Compile Remove="singleshell\installer\MshCoreMshSnapin.cs" />
    <Compile Remove="singleshell\installer\MshInstaller.cs" />
    <Compile Remove="singleshell\installer\MshSnapin.cs" />
    <Compile Remove="singleshell\installer\MshSnapinInstaller.cs" />
    <Compile Remove="utils\BackgroundDispatcher.cs" />
    <Compile Remove="utils\GraphicalHostReflectionWrapper.cs" />
    <Compile Remove="utils\perfCounters\CounterSetInstanceBase.cs" />
    <Compile Remove="utils\perfCounters\CounterSetRegistrarBase.cs" />
    <Compile Remove="utils\perfCounters\PSPerfCountersMgr.cs" />
    <Compile Remove="gen\CoreMshSnapinResources.cs" />
    <Compile Remove="gen\ErrorPackageRemoting.cs" />
    
    <EmbeddedResource Remove="resources\CoreMshSnapinResources.resx" />
    <EmbeddedResource Remove="resources\ErrorPackageRemoting.resx" />
  </ItemGroup>

  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
    <DebugType>portable</DebugType>
  </PropertyGroup>

  <PropertyGroup Condition=" '$(Configuration)' == 'Linux' ">
    <DefineConstants>$(DefineConstants);UNIX</DefineConstants>
  </PropertyGroup>

  <PropertyGroup Condition=" '$(Configuration)' == 'CodeCoverage' ">
    <DebugType>full</DebugType>
  </PropertyGroup>

</Project>
