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 <FeatureAppdomainResourceMonitoring>true</FeatureAppdomainResourceMonitoring>
9 <FeatureArrayStubAsIL Condition="('$(TargetArch)' == 'arm') or ('$(TargetArch)' == 'amd64') or ('$(TargetArch)' == 'arm64')">true</FeatureArrayStubAsIL>
10 <FeatureStubsAsIL Condition="'$(TargetArch)' == 'arm64'">true</FeatureStubsAsIL>
11 <FeatureBclFormatting>true</FeatureBclFormatting>
12 <FeatureCollectibleTypes>true</FeatureCollectibleTypes>
13 <FeatureCominteropApartmentSupport>true</FeatureCominteropApartmentSupport>
14 <FeatureCoreclr>true</FeatureCoreclr>
15 <FeatureCorruptingExceptions>true</FeatureCorruptingExceptions>
16 <FeatureDbiDebugging>true</FeatureDbiDebugging>
17 <FeatureDbiOopDebugging_HostLocal>false</FeatureDbiOopDebugging_HostLocal>
18 <FeatureDbiOopDebugging_HostWindowsx86 Condition="'$(TargetArch)' == 'i386' or '$(TargetArch)' == 'arm'">true</FeatureDbiOopDebugging_HostWindowsx86>
19 <FeatureDbiOopDebugging_HostWindowsamd64 Condition="'$(TargetArch)' == 'amd64' or '$(TargetArch)' == 'arm64'">true</FeatureDbiOopDebugging_HostWindowsamd64>
20 <FeatureDbiOopDebugging_HostOneCorex86 Condition="'$(TargetArch)' == 'i386' or '$(TargetArch)' == 'arm'">true</FeatureDbiOopDebugging_HostOneCorex86>
21 <FeatureDbiOopDebugging_HostOneCoreamd64 Condition="'$(TargetArch)' == 'amd64'">true</FeatureDbiOopDebugging_HostOneCoreamd64>
22 <FeatureEventTrace>true</FeatureEventTrace>
23 <FeatureExceptionDispatchInfo>true</FeatureExceptionDispatchInfo>
24 <FeatureFrameworkInternal>true</FeatureFrameworkInternal>
25 <FeatureHijack>true</FeatureHijack>
26 <FeatureInteropDebugging Condition="('$(TargetArch)' == 'i386') or ('$(TargetArch)' == 'amd64')">true</FeatureInteropDebugging>
27 <FeatureIsostore>true</FeatureIsostore>
28 <FeatureIsostoreLight>true</FeatureIsostoreLight>
29 <FeatureIsymReader>true</FeatureIsymReader>
30 <!-- This is here for testing purposes only, and only on checked builds for x86/ARM -->
31 <FeatureLazyCOWPages Condition="'$(_BuildType)'!='ret' and (('$(TargetArch)' == 'i386') or ('$(TargetArch)' == 'arm'))">true</FeatureLazyCOWPages>
32 <FeatureLoaderOptimization>true</FeatureLoaderOptimization>
33 <FeatureMainClrModuleUsesCoreName>true</FeatureMainClrModuleUsesCoreName>
34 <FeatureMergeCultureSupportAndEngine>true</FeatureMergeCultureSupportAndEngine>
35 <FeatureMergeJitAndEngine>true</FeatureMergeJitAndEngine>
36 <FeatureMulticoreJIT Condition="'$(TargetArch)'!='arm'">true</FeatureMulticoreJIT>
37 <FeatureNormIdnaOnly>true</FeatureNormIdnaOnly>
38 <FeaturePrejit>true</FeaturePrejit>
39 <FeatureStandaloneSn>true</FeatureStandaloneSn>
40 <FeatureStrongnameDelaySigningAllowed>true</FeatureStrongnameDelaySigningAllowed>
41 <FeatureStrongnameMigration>true</FeatureStrongnameMigration>
42 <FeatureStrongnameTestkeyAllowed>true</FeatureStrongnameTestkeyAllowed>
43 <FeatureSyntheticCultures>true</FeatureSyntheticCultures>
44 <FeatureVersioning>true</FeatureVersioning>
45 <FeatureVersioningLog>true</FeatureVersioningLog>
46 <FeatureWin32Registry>true</FeatureWin32Registry>
47 <FeatureX509>true</FeatureX509>
48 <FeatureX509Securestrings>true</FeatureX509Securestrings>
49 <FeatureXPlatDacDebugging_HostWindowsx86 Condition="'$(TargetArch)' == 'i386' or '$(TargetArch)' == 'arm'">true</FeatureXPlatDacDebugging_HostWindowsx86>
50 <FeatureXPlatDacDebugging_HostWindowsAMD64 Condition="'$(TargetArch)' == 'amd64' or '$(TargetArch)' == 'arm64'">true</FeatureXPlatDacDebugging_HostWindowsAMD64>
51 <FeatureXPlatDacDebugging_HostOneCorex86 Condition="'$(TargetArch)' == 'i386' or '$(TargetArch)' == 'arm'">true</FeatureXPlatDacDebugging_HostOneCorex86>
52 <FeatureXPlatDacDebugging_HostOneCoreAMD64 Condition="'$(TargetArch)' == 'amd64'">true</FeatureXPlatDacDebugging_HostOneCoreAMD64>
53 <ProfilingSupportedBuild>true</ProfilingSupportedBuild>
54 <FeatureUseAsmGCWriteBarriers>true</FeatureUseAsmGCWriteBarriers>
55 <!-- Setting this to "false" works only for workstation GC, not server. -->
56 <FeatureSymDiff>true</FeatureSymDiff>
57 <FeatureReadyToRun Condition="'$(TargetArch)'!='arm64'">true</FeatureReadyToRun>
59 <FeatureCoreSystem>true</FeatureCoreSystem>
60 <FeatureClassicCominterop>true</FeatureClassicCominterop>
61 <FeatureLegacySurface>true</FeatureLegacySurface>
62 <FeatureCominterop>true</FeatureCominterop>
63 <FeatureICastable>true</FeatureICastable>
64 <FeatureCominteropUnmanagedActivation>true</FeatureCominteropUnmanagedActivation>
65 <FeatureCominteropWinRTManagedActivation>true</FeatureCominteropWinRTManagedActivation>
66 <FeatureCrypto>true</FeatureCrypto>
67 <FeatureHostAssemblyResolver>true</FeatureHostAssemblyResolver>
68 <FeatureLazyCOWPages Condition="('$(TargetArch)' == 'i386') or ('$(TargetArch)' == 'arm')">true</FeatureLazyCOWPages>
69 <FeatureLegacyNetCFCrypto>true</FeatureLegacyNetCFCrypto>
70 <FeatureLatin1>true</FeatureLatin1>
71 <FeatureEncodingNls>true</FeatureEncodingNls>
72 <FeatureAscii>true</FeatureAscii>
73 <FeatureUtf7>true</FeatureUtf7>
74 <FeatureUtf32>true</FeatureUtf32>
75 <FeatureLegacyNetCFDbgHostControl>true</FeatureLegacyNetCFDbgHostControl>
76 <FeatureLegacyNetCFFAS>true</FeatureLegacyNetCFFAS>
77 <FeatureLegacyNetCF>true</FeatureLegacyNetCF>
78 <FeatureRandomizedStringHashing>true</FeatureRandomizedStringHashing>
79 <!-- The rejit feature is available only on supported architectures (x86 & x64) -->
80 <FeatureReJIT Condition="('$(TargetArch)' == 'i386') or ('$(TargetArch)' == 'amd64')">true</FeatureReJIT>
81 <FeatureWindowsPhone>true</FeatureWindowsPhone>
82 <FeatureManagedEtw Condition="'$(OS)' == 'Windows_NT'">true</FeatureManagedEtw>
83 <FeatureManagedEtwChannels>true</FeatureManagedEtwChannels>
84 <FeatureHostedBinder>true</FeatureHostedBinder>
85 <BinderDebugLog Condition="'$(_BuildType)'=='dbg'">true</BinderDebugLog>
86 <FeatureAppX>true</FeatureAppX>
87 <FeatureWinMDResilient>true</FeatureWinMDResilient>
89 FeatureImplicitTls has been verified to be functionally correct on x86 & amd64.
90 However there is still work to make it on par in terms of performance. So currently only
93 <FeatureImplicitTls Condition="'$(TargetArch)' == 'arm64'">true</FeatureImplicitTls>
94 <FeatureSvrGc Condition="'$(TargetArch)' != 'arm'">true</FeatureSvrGc>
97 <PropertyGroup Condition="'$(TargetsUnix)' == 'true'">
98 <FeaturePal>true</FeaturePal>
100 <FeatureStubsAsIL>true</FeatureStubsAsIL>
102 <!-- UNIXTODO Enable randomized string hashing -->
103 <FeatureRandomizedStringHashing>false</FeatureRandomizedStringHashing>
105 <!-- Windows specific features -->
106 <FeatureWin32Registry>false</FeatureWin32Registry>
107 <FeatureAppX>false</FeatureAppX>
108 <FeatureCominteropApartmentSupport>false</FeatureCominteropApartmentSupport>
109 <FeatureClassicCominterop>false</FeatureClassicCominterop>
110 <FeatureCominterop>false</FeatureCominterop>
111 <FeatureCominteropUnmanagedActivation>false</FeatureCominteropUnmanagedActivation>
112 <FeatureCominteropWinRTManagedActivation>false</FeatureCominteropWinRTManagedActivation>
114 <!-- Features implemented by fxcore -->
115 <FeatureLegacySurface>false</FeatureLegacySurface>
116 <FeatureCrypto>false</FeatureCrypto>
117 <FeatureLegacyNetCFCrypto>false</FeatureLegacyNetCFCrypto>
118 <FeatureX509>false</FeatureX509>
119 <FeatureX509Securestrings>false</FeatureX509Securestrings>
120 <FeatureIsostore>false</FeatureIsostore>
121 <FeatureIsostoreLight>false</FeatureIsostoreLight>
123 <FeatureCoreFxGlobalization>true</FeatureCoreFxGlobalization>