1 <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2 <PropertyGroup Condition="'$(ClrProduct)'=='core_clr'">
3 <BuildTypeRet Condition="'$(_BuildType)'=='ret'">true</BuildTypeRet>
4 <DebuggingSupported>true</DebuggingSupported>
5 <DebuggingSupportedBuild>true</DebuggingSupportedBuild>
6 <EnCSupported Condition="('$(TargetArch)' == 'i386') or ('$(TargetArch)' == 'amd64')">true</EnCSupported>
7 <EnableDownlevelForNls Condition="'$(CrossTargetArchitecture)' != ''">true</EnableDownlevelForNls>
8 <FeatureCodeVersioning>true</FeatureCodeVersioning>
9 <FeatureCominteropApartmentSupport>true</FeatureCominteropApartmentSupport>
10 <FeatureDbiDebugging>true</FeatureDbiDebugging>
11 <FeatureDbiOopDebugging_HostLocal>false</FeatureDbiOopDebugging_HostLocal>
12 <FeatureDbiOopDebugging_HostWindowsx86 Condition="'$(TargetArch)' == 'i386' or '$(TargetArch)' == 'arm'">true</FeatureDbiOopDebugging_HostWindowsx86>
13 <FeatureDbiOopDebugging_HostWindowsamd64 Condition="'$(TargetArch)' == 'amd64' or '$(TargetArch)' == 'arm64'">true</FeatureDbiOopDebugging_HostWindowsamd64>
14 <FeatureDbiOopDebugging_HostOneCorex86 Condition="'$(TargetArch)' == 'i386' or '$(TargetArch)' == 'arm'">true</FeatureDbiOopDebugging_HostOneCorex86>
15 <FeatureDbiOopDebugging_HostOneCoreamd64 Condition="'$(TargetArch)' == 'amd64'">true</FeatureDbiOopDebugging_HostOneCoreamd64>
16 <FeatureEventTrace>true</FeatureEventTrace>
17 <FeatureTieredCompilation>true</FeatureTieredCompilation>
18 <FeatureFrameworkInternal>true</FeatureFrameworkInternal>
19 <FeatureHijack>true</FeatureHijack>
20 <FeatureInteropDebugging Condition="('$(TargetArch)' == 'i386') or ('$(TargetArch)' == 'amd64')">true</FeatureInteropDebugging>
21 <FeatureIsymReader>true</FeatureIsymReader>
22 <!-- This is here for testing purposes only, and only on checked builds for x86/ARM -->
23 <FeatureLazyCOWPages Condition="'$(_BuildType)'!='ret' and (('$(TargetArch)' == 'i386') or ('$(TargetArch)' == 'arm'))">true</FeatureLazyCOWPages>
24 <FeatureMergeCultureSupportAndEngine>true</FeatureMergeCultureSupportAndEngine>
25 <FeatureMergeJitAndEngine>true</FeatureMergeJitAndEngine>
26 <FeaturePrejit>true</FeaturePrejit>
27 <FeatureStandaloneSn>true</FeatureStandaloneSn>
28 <FeatureStrongnameDelaySigningAllowed>true</FeatureStrongnameDelaySigningAllowed>
29 <FeatureStrongnameTestkeyAllowed>true</FeatureStrongnameTestkeyAllowed>
30 <FeatureSyntheticCultures>true</FeatureSyntheticCultures>
31 <FeatureVersioningLog>true</FeatureVersioningLog>
32 <FeatureWin32Registry>true</FeatureWin32Registry>
33 <FeatureXPlatDacDebugging_HostWindowsx86 Condition="'$(TargetArch)' == 'i386' or '$(TargetArch)' == 'arm'">true</FeatureXPlatDacDebugging_HostWindowsx86>
34 <FeatureXPlatDacDebugging_HostWindowsAMD64 Condition="'$(TargetArch)' == 'amd64' or '$(TargetArch)' == 'arm64'">true</FeatureXPlatDacDebugging_HostWindowsAMD64>
35 <FeatureXPlatDacDebugging_HostOneCorex86 Condition="'$(TargetArch)' == 'i386' or '$(TargetArch)' == 'arm'">true</FeatureXPlatDacDebugging_HostOneCorex86>
36 <FeatureXPlatDacDebugging_HostOneCoreAMD64 Condition="'$(TargetArch)' == 'amd64'">true</FeatureXPlatDacDebugging_HostOneCoreAMD64>
37 <ProfilingSupportedBuild>true</ProfilingSupportedBuild>
38 <FeatureUseAsmGCWriteBarriers>true</FeatureUseAsmGCWriteBarriers>
39 <!-- Setting this to "false" works only for workstation GC, not server. -->
40 <FeatureSymDiff>true</FeatureSymDiff>
41 <FeatureClassicCominterop>true</FeatureClassicCominterop>
42 <FeatureCominterop>true</FeatureCominterop>
43 <FeatureICastable>true</FeatureICastable>
44 <FeatureCominteropUnmanagedActivation>true</FeatureCominteropUnmanagedActivation>
45 <FeatureCominteropWinRTManagedActivation>true</FeatureCominteropWinRTManagedActivation>
46 <FeatureLazyCOWPages Condition="('$(TargetArch)' == 'i386') or ('$(TargetArch)' == 'arm')">true</FeatureLazyCOWPages>
47 <FeatureLegacyNetCFDbgHostControl>true</FeatureLegacyNetCFDbgHostControl>
48 <FeatureRandomizedStringHashing>true</FeatureRandomizedStringHashing>
49 <!-- The rejit feature is available only on supported architectures (x86 & x64) -->
50 <FeatureReJIT Condition="('$(TargetArch)' == 'i386') or ('$(TargetArch)' == 'amd64')">true</FeatureReJIT>
51 <FeatureManagedEtw>false</FeatureManagedEtw>
52 <FeatureManagedEtwChannels>true</FeatureManagedEtwChannels>
53 <BinderDebugLog Condition="'$(_BuildType)'=='dbg'">true</BinderDebugLog>
54 <FeatureAppX>true</FeatureAppX>
55 <FeatureWinMDResilient>true</FeatureWinMDResilient>
57 FeatureImplicitTls has been verified to be functionally correct on x86 & amd64.
58 However there is still work to make it on par in terms of performance. So currently only
61 <FeatureImplicitTls Condition="'$(TargetArch)' == 'arm64'">true</FeatureImplicitTls>
62 <FeatureSvrGc Condition="'$(TargetArch)' != 'arm'">true</FeatureSvrGc>
65 <PropertyGroup Condition="'$(TargetsUnix)' == 'true'">
66 <FeaturePal>true</FeaturePal>
67 <FeatureXplatEventSource>true</FeatureXplatEventSource>
69 <FeatureArrayStubAsIL>true</FeatureArrayStubAsIL>
70 <FeatureMulticastStubAsIL>true</FeatureMulticastStubAsIL>
71 <FeatureStubsAsIL>true</FeatureStubsAsIL>
73 <!-- Windows specific features -->
74 <FeatureWin32Registry>false</FeatureWin32Registry>
75 <FeatureAppX>false</FeatureAppX>
76 <FeatureCominteropApartmentSupport>false</FeatureCominteropApartmentSupport>
77 <FeatureClassicCominterop>false</FeatureClassicCominterop>
78 <FeatureCominterop>false</FeatureCominterop>
79 <FeatureCominteropUnmanagedActivation>false</FeatureCominteropUnmanagedActivation>
80 <FeatureCominteropWinRTManagedActivation>false</FeatureCominteropWinRTManagedActivation>
82 <FeatureCoreFxGlobalization>true</FeatureCoreFxGlobalization>
85 <PropertyGroup Condition="'$(TargetsWindows)' == 'true'">
86 <FeatureArrayStubAsIL Condition="'$(TargetArch)' != 'i386'">true</FeatureArrayStubAsIL>
87 <FeatureMulticastStubAsIL Condition="'$(TargetArch)' != 'i386'">true</FeatureMulticastStubAsIL>
88 <FeatureManagedEtw>true</FeatureManagedEtw>
89 <FeatureStubsAsIL Condition="'$(TargetArch)' == 'arm64'">true</FeatureStubsAsIL>
90 <FeatureUseLcid>true</FeatureUseLcid>
91 <FeatureImplicitLongPath>true</FeatureImplicitLongPath>
94 <PropertyGroup Condition="'$(TargetsLinux)' == 'true'">
95 <FeatureManagedEtw>true</FeatureManagedEtw>
96 <FeaturePerfTracing>true</FeaturePerfTracing>