Merge pull request #2979 from Dmitry-Me/writeNullPointerOnNoInterface
[platform/upstream/coreclr.git] / clr.coreclr.props
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>
58
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>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>
88     <!-- 
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
91         enabling for arm64 
92      -->
93     <FeatureImplicitTls Condition="'$(TargetArch)' == 'arm64'">true</FeatureImplicitTls>
94     <FeatureSvrGc Condition="'$(TargetArch)' != 'arm'">true</FeatureSvrGc>
95   </PropertyGroup>
96
97   <PropertyGroup Condition="'$(TargetsLinux)' == 'true'">
98     <FeatureXplatEventSource>true</FeatureXplatEventSource>
99   </PropertyGroup>
100
101   <PropertyGroup Condition="'$(TargetsUnix)' == 'true'">
102     <FeaturePal>true</FeaturePal>
103
104     <FeatureStubsAsIL>true</FeatureStubsAsIL>
105
106     <!-- Windows specific features -->
107     <FeatureWin32Registry>false</FeatureWin32Registry>
108     <FeatureAppX>false</FeatureAppX>
109     <FeatureCominteropApartmentSupport>false</FeatureCominteropApartmentSupport>
110     <FeatureClassicCominterop>false</FeatureClassicCominterop>
111     <FeatureCominterop>false</FeatureCominterop>
112     <FeatureCominteropUnmanagedActivation>false</FeatureCominteropUnmanagedActivation>
113     <FeatureCominteropWinRTManagedActivation>false</FeatureCominteropWinRTManagedActivation>
114     <FeatureManagedEtw>false</FeatureManagedEtw>
115
116     <!-- Features implemented by fxcore -->
117     <FeatureLegacySurface>false</FeatureLegacySurface>
118     <FeatureCrypto>false</FeatureCrypto>
119     <FeatureLegacyNetCFCrypto>false</FeatureLegacyNetCFCrypto>
120     <FeatureX509>false</FeatureX509>
121     <FeatureX509Securestrings>false</FeatureX509Securestrings>
122     <FeatureIsostore>false</FeatureIsostore>
123     <FeatureIsostoreLight>false</FeatureIsostoreLight>
124
125     <FeatureCoreFxGlobalization>true</FeatureCoreFxGlobalization>
126   </PropertyGroup>
127 </Project>