summaryrefslogtreecommitdiff
path: root/src/ToolBox/SOS/Strike/sos.targets
diff options
context:
space:
mode:
Diffstat (limited to 'src/ToolBox/SOS/Strike/sos.targets')
-rw-r--r--src/ToolBox/SOS/Strike/sos.targets162
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>