diff options
Diffstat (limited to 'src/ToolBox/SOS/Strike/sos.targets')
-rw-r--r-- | src/ToolBox/SOS/Strike/sos.targets | 162 |
1 files changed, 162 insertions, 0 deletions
diff --git a/src/ToolBox/SOS/Strike/sos.targets b/src/ToolBox/SOS/Strike/sos.targets new file mode 100644 index 0000000000..ecc1827ce7 --- /dev/null +++ b/src/ToolBox/SOS/Strike/sos.targets @@ -0,0 +1,162 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="dogfood"> + <!--Import the settings--> + <Import Project="$(_NTDRIVE)$(_NTROOT)\ndp\clr\clr.props" /> + <Import Project="$(ClrBase)\src\debug\SetDebugTargetLocal.props" /> + <Import Project="$(ClrBase)\src\debug\XPlatCommon.props" /> + + <!-- Handle cross platform debugging: SOS is different from the DAC --> + <!-- in that one binary includes code targeting multiple platforms. --> + <!-- This means that there may be more than one SosTarget msbuild --> + <!-- symbol or SOS_TARGET_XYZ conditional defined at the same time. --> + <!-- The next section is what determines what code is built in which--> + <!-- binary. --> + <PropertyGroup> + <!-- Code level conditional compilation symbols to support x-plat --> + <CDefines Condition="'$(BuildArchitecture)' == 'i386'">$(CDefines);SOS_TARGET_X86=1</CDefines> + <CDefines Condition="'$(BuildArchitecture)' == 'arm' or '$(BuildArchitecture)' == 'i386'">$(CDefines);SOS_TARGET_ARM=1</CDefines> + <CDefines Condition="'$(BuildArchitecture)' == 'amd64'">$(CDefines);SOS_TARGET_AMD64=1</CDefines> + <CDefines Condition="'$(BuildArchitecture)' == 'amd64' or '$(BuildArchitecture)' == 'arm64'">$(CDefines);SOS_TARGET_ARM64=1</CDefines> + + <CDefines Condition="'$(BuildArchitecture)' == 'amd64' or '$(BuildArchitecture)' == 'arm64'">$(CDefines);_TARGET_WIN64_=1</CDefines> + </PropertyGroup> + + <!--Leaf project Properties--> + <PropertyGroup> + <SosSourceDir>$(ClrBase)\src\toolbox\sos\strike</SosSourceDir> + <CompilerWarnings> + </CompilerWarnings> + <UserIncludes>$(SosSourceDir)\inc; + $(UserIncludes); + $(Clrbase)\src\vm; + $(Clrbase)\src\inc; + $(Clrbase)\src\gcdump; + $(Clrbase)\src\Debug\shim</UserIncludes> + <OutputName>SOS</OutputName> + <FileToMarkForSigning>$(BinariesDirectory)\$(OutputName).dll</FileToMarkForSigning> + <TargetType>DYNLINK</TargetType> + <LinkSubsystem>windows</LinkSubsystem> + <Nxcompat>true</Nxcompat> + <SynchronizePass2Drain>true</SynchronizePass2Drain> + <DllDef>$(IntermediateOutputDirectory)\SOS.def</DllDef> + <DllEntryPoint>_DllMainCRTStartup</DllEntryPoint> + <LinkNoLibraries>true</LinkNoLibraries> + <UseMsvcrt>false</UseMsvcrt> + <Ltcg>false</Ltcg> + <LinkUseCMT>true</LinkUseCMT> + <UseStl>true</UseStl> + <ClAdditionalOptions Condition="'$(DebugBuild)' == 'true'">$(ClAdditionalOptions) -DDEBUG -D_DEBUG</ClAdditionalOptions> + <ClAdditionalOptions Condition="!('$(DebugBuild)' == 'true')">$(ClAdditionalOptions) -DFAST=1</ClAdditionalOptions> + <ClOptimization Condition="!('$(DebugBuild)' == 'true')">MaxSpeed</ClOptimization> + <ClAdditionalOptions Condition="'$(FeatureCoreSystem)' == 'true'">$(ClAdditionalOptions) -DFEATURE_CORESYSTEM</ClAdditionalOptions> + <MscOptimizations Condition="!('$(DebugBuild)' == 'true')"> + </MscOptimizations> + <ClAdditionalOptions>$(ClAdditionalOptions) -DSTRIKE -D_MT=1 -DORCAS=0 -DMDA_SUPPORTED -DDEBUGGING_SUPPORTED -DEnC_SUPPORTED -DPROFILING_SUPPORTED -DFEATURE_COMINTEROP -DFEATURE_COMINTEROP_UNMANAGED_ACTIVATION -DFEATURE_COMINTEROP_MANAGED_ACTIVATION -DFEATURE_COMINTEROP_APARTMENT_SUPPORT -DFEATURE_RWLOCK -DFEATURE_PREJIT -DFEATURE_STACK_PROBE -DFEATURE_SVR_GC -DFEATURE_CAS_POLICY -DFEATURE_CLICKONCE -DFEATURE_CRYPTO -DFEATURE_IMPERSONATION -DFEATURE_ISOSTORE -DFEATURE_MACL -DFEATURE_WATSON -DFEATURE_X509 -DFEATURE_X509_SECURESTRINGS -DFEATURE_COMINTEROP_REGISTRATION -DFEATURE_MIXEDMODE -DFEATURE_PERFMON -DFEATURE_REFLECTION_ONLY_LOAD -DFEATURE_FUSION -DFEATURE_SYNTHETIC_CULTURES -DFEATURE_SORT_TABLES -DFEATURE_CODEPAGES_FILE -DFEATURE_VALIDATOR -DFEATURE_WIN32_REGISTRY -DFEATURE_REMOTING -DFEATURE_SERIALIZATION -DFEATURE_ISYM_READER -DFEATURE_LOADER_OPTIMIZATION -DFEATURE_IPCMAN -DFEATURE_STRONGNAME_DELAY_SIGNING_ALLOWED -DFEATURE_MULTIMODULE_ASSEMBLIES -DFEATURE_METHOD_RENTAL -DFEATURE_APTCA -DFEATURE_USE_LCID -DFEATURE_BCL_FORMATTING -DENABLE_DOWNLEVEL_FOR_NLS -DFEATURE_INCLUDE_ALL_INTERFACES -DFEATURE_NONGENERIC_COLLECTIONS -DFEATURE_APPDOMAINMANAGER_INITOPTIONS -DFEATURE_COMPRESSEDSTACK -DFEATURE_PLS -DFEATURE_SYNCHRONIZATIONCONTEXT -DFEATURE_SYNCHRONIZATIONCONTEXT_WAIT -DUEF_CHAINING_SUPPORTED -DFEATURE_LEAK_CULTURE_INFO -DFEATURE_UEF_CHAINMANAGER -DFEATURE_CORRUPTING_EXCEPTIONS -DFEATURE_APPDOMAIN_RESOURCE_MONITORING -DFEATURE_EXCEPTION_NOTIFICATIONS -DFEATURE_LEGACY_THREADPOOL -DFEATURE_INTEROP_DEBUGGING</ClAdditionalOptions> + <ExceptionHandling>$(Fullcxxeh)</ExceptionHandling> + <!-- As part of X-plat DAC feature work we decided to put x86 SOS inside binaries\x86 subdirectory. + The pdb file will be places following the same subdir rule SymbolsDir\x86. + --> + <BinplaceRoot Condition="'$(BuildX86Sos)' == 'true'">$(BinariesDirectory)\x86</BinplaceRoot> + <BinplaceRoot Condition="'$(BuildX64Sos)' == 'true'">$(BinariesDirectory)\x64</BinplaceRoot> + <!-- Inhibit default behaviour of copying sos.pdb to Symbols.pri dir. --> + <BinplaceSymbols Condition="'$(BuildX86Sos)' == 'true' or '$(BuildX64Sos)' == 'true'">false</BinplaceSymbols> + <Verdir>$(InternalPath)\NDP\inc</Verdir> + <Bindir>$(BinariesDirectory)</Bindir> + </PropertyGroup> + + <ItemGroup> + <TargetLib Include="$(SdkLibPath)\kernel32.lib" /> + <TargetLib Include="$(SdkLibPath)\user32.lib" /> + <TargetLib Include="$(SdkLibPath)\ole32.lib" /> + <TargetLib Include="$(SdkLibPath)\dbghelp.lib" /> + <TargetLib Include="$(SdkLibPath)\uuid.lib" /> + <TargetLib Include="$(SdkLibPath)\version.lib" /> + <TargetLib Include="$(SdkLibPath)\dbgeng.lib" /> + <TargetLib Include="$(SdkLibPath)\advapi32.lib" /> + <TargetLib Include="$(SdkLibPath)\psapi.lib" /> + + <TargetLib Condition="'$(DebugBuild)' == 'true'" Include="$(VCPublicLibPath)\libcmtd.lib" /> + <TargetLib Condition="'$(DebugBuild)' != 'true'" Include="$(VCPublicLibPath)\libcmt.lib" /> + + <TargetLib Condition="'$(BuildX86Sos)' != 'true' and '$(BuildX64Sos)' != 'true'" Include="$(ClrLibPath)\corguids.lib"> + <ProjectReference>$(ClrSrcDirectory)inc\corguids.nativeproj</ProjectReference> + </TargetLib> + <TargetLib Condition="'$(BuildX86Sos)' == 'true'" Include="$(ClrLibPath)\corguids_x86.lib"> + <ProjectReference>$(ClrSrcDirectory)incx86\corguids.nativeproj</ProjectReference> + </TargetLib> + <TargetLib Condition="'$(BuildX64Sos)' == 'true'" Include="$(ClrLibPath)\corguids_amd64.lib"> + <ProjectReference>$(ClrSrcDirectory)incamd64\corguids.nativeproj</ProjectReference> + </TargetLib> + + <TargetLib Include="$(ClrLibPath)\debugshim$(XPlatHostLibSuffix).lib"> + <ProjectReference>$(ClrSrcDirectory)\Debug\shim\$(XPlatHostLibBuildDir)\debugshim.nativeproj</ProjectReference> + </TargetLib> + <TargetLib Include="$(ClrLibPath)\dbgutil$(XPlatHostLibSuffix).lib"> + <ProjectReference>$(ClrSrcDirectory)\Debug\dbgutil\$(XPlatHostLibBuildDir)\dbgutil.nativeproj</ProjectReference> + </TargetLib> + </ItemGroup> + <ItemGroup> + <TargetLib Include="$(SdkLibPath)\ntdll.lib" /> + </ItemGroup> + <ItemGroup> + <RCResourceFile Condition="'$(FeatureCoreSystem)'!='true'" Include="$(SosSourceDir)\Native.rc" /> + <RCResourceFile Condition="'$(FeatureCoreSystem)'=='true'" Include="$(SosSourceDir)\ApolloNative.rc" /> + </ItemGroup> + <ItemGroup> + <CppCompile Include="$(SosSourceDir)\disasm.cpp" /> + <CppCompile Include="$(SosSourceDir)\dllsext.cpp" /> + <CppCompile Include="$(SosSourceDir)\eeheap.cpp" /> + <CppCompile Include="$(SosSourceDir)\EventCallbacks.cpp" /> + <CppCompile Include="$(SosSourceDir)\ExpressionNode.cpp" /> + <CppCompile Include="$(SosSourceDir)\exts.cpp" /> + <CppCompile Include="$(SosSourceDir)\gchist.cpp" /> + <CppCompile Include="$(SosSourceDir)\gcroot.cpp" /> + <CppCompile Include="$(SosSourceDir)\metadata.cpp" /> + <CppCompile Include="$(SosSourceDir)\sildasm.cpp" /> + <CppCompile Include="$(SosSourceDir)\sos.cpp" /> + <CppCompile Include="$(SosSourceDir)\stressLogDump.cpp" /> + <CppCompile Include="$(SosSourceDir)\strike.cpp" /> + <CppCompile Include="$(SosSourceDir)\util.cpp" /> + <CppCompile Include="$(SosSourceDir)\vm.cpp" /> + <CppCompile Include="$(SosSourceDir)\WatchCmd.cpp" /> + <CppPreprocess Include="$(SosSourceDir)\SOS.def"> + <FinalOutput>$(IntermediateOutputDirectory)\SOS.def</FinalOutput> + <AdditionalOptions>$(ClAdditionalOptions) /TC</AdditionalOptions> + </CppPreprocess> + </ItemGroup> + <ItemGroup> + <CppCompile Condition="'$(BuildArchitecture)' == 'i386'" Include="$(SosSourceDir)\disasmX86.cpp" /> + <CppCompile Condition="'$(BuildArchitecture)' == 'amd64'" Include="$(SosSourceDir)\disasmX86.cpp" /> + <CppCompile Condition="'$(BuildArchitecture)' == 'arm' or '$(BuildArchitecture)' == 'i386'" Include="$(SosSourceDir)\disasmARM.cpp" /> + <CppCompile Condition="'$(BuildArchitecture)' == 'arm64' or '$(BuildArchitecture)' == 'amd64'" Include="$(SosSourceDir)\disasmARM64.cpp" /> + <RotorX86Sources Include="$(SosSourceDir)\disasmX86.cpp" /> + </ItemGroup> + <ItemGroup> + <DataFile Include="$(SosSourceDir)\sos_stacktrace.h" /> + </ItemGroup> + <ItemGroup> + <PublishPartGenerated Include="$(SosSourceDir)\sos_stacktrace.h"> + <Visibility>Intra</Visibility> + <FileType>Include</FileType> + </PublishPartGenerated> + </ItemGroup> + + <Import Project="$(_NTDRIVE)$(_NTROOT)\ndp\clr\clr.targets" /> + + <PropertyGroup> + <BuildLinkedDependsOn>$(BuildLinkedDependsOn);GenLongNameSOS</BuildLinkedDependsOn> + </PropertyGroup> + + <UsingTask TaskName="GetFileVersionTask" AssemblyFile="$(ClrSrcDirectory)dlls\mscordac\GetFileVersion.dll"/> + + <Target Name="GenLongNameSOS" + Inputs="$(Verdir)\version.h;$(IntermediateOutputDirectory)\sos.dll" + Outputs="sos_upd"> + <GetFileVersionTask FilePath="$(IntermediateOutputDirectory)\sos.dll"> + <Output TaskParameter="FileVersion" PropertyName="SOSFileVersion"/> + </GetFileVersionTask> + <Exec Command="$(PerlCommand) -I$(DevDivToolsPath) $(ClrSrcDirectory)dlls\mscordac\Update.pl $(IntermediateOutputDirectory)\sos.dll sos $(HostMachineArch) $(_EnvironmentMachineArch) $(SOSFileVersion) $(Bindir) echo" StandardOutputImportance="Normal" /> + + </Target> + +</Project> |