MSBuild: Support creating legacy SSE2 builds

This commit is contained in:
Stenzek
2024-09-23 21:11:56 +10:00
parent ed7a9e2f8c
commit b971125469
6 changed files with 263 additions and 120 deletions

View File

@ -30,7 +30,8 @@
<PreprocessorDefinitions>_HAS_EXCEPTIONS=0;_CRT_INTERNAL_NONSTDC_NAMES;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DepsIncludeDir)</AdditionalIncludeDirectories>
<AdditionalOptions Condition="!$(Configuration.Contains(Clang))">/Zc:__cplusplus /Zo /utf-8 %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions Condition="$(Configuration.Contains(Clang)) And '$(Platform)'=='x64'"> -msse4.1 %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions Condition="$(Configuration.Contains(Clang)) And !$(Configuration.Contains(SSE2)) And '$(Platform)'=='x64'"> -msse4.1 %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions Condition="!$(Configuration.Contains(SSE2)) And !$(Configuration.Contains(Clang)) And '$(Platform)'=='x64'">__SSE3__;__SSE4_1__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<!-- Force ThinLTO for Release builds, MSVC doesn't seem to do it otherwise. -->
<AdditionalOptions Condition="$(Configuration.Contains(Clang)) And $(Configuration.Contains(ReleaseLTCG))"> -flto=thin %(AdditionalOptions)</AdditionalOptions>
<DisableSpecificWarnings Condition="!$(Configuration.Contains(Clang))">4324;%(DisableSpecificWarnings)</DisableSpecificWarnings>

View File

@ -6,8 +6,8 @@
<GenerateProjectSpecificOutputFolder>false</GenerateProjectSpecificOutputFolder>
<!-- Use MSVC suffix for MSVC builds, and remove the Clang suffix. -->
<TargetName Condition="$(Configuration.EndsWith(Clang))">$(ProjectName)-$(Platform)-$(Configuration.Replace("-Clang", ""))</TargetName>
<TargetName Condition="!$(Configuration.EndsWith(Clang))">$(ProjectName)-$(Platform)-$(Configuration)-MSVC</TargetName>
<TargetName Condition="$(Configuration.Contains(Clang))">$(ProjectName)-$(Platform)-$(Configuration.Replace("-Clang", ""))</TargetName>
<TargetName Condition="!$(Configuration.Contains(Clang))">$(ProjectName)-$(Platform)-$(Configuration)-MSVC</TargetName>
<ConfigurationType>Application</ConfigurationType>
</PropertyGroup>

View File

@ -1,34 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="DebugFast|ARM64">
<Configuration>DebugFast</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugFast|x64">
<Configuration>DebugFast</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG|ARM64">
<Configuration>ReleaseLTCG</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG|x64">
<Configuration>ReleaseLTCG</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
@ -49,6 +33,10 @@
<Configuration>Debug-Clang</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug-Clang-SSE2|x64">
<Configuration>Debug-Clang-SSE2</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG-Clang|ARM64">
<Configuration>ReleaseLTCG-Clang</Configuration>
<Platform>ARM64</Platform>
@ -57,6 +45,10 @@
<Configuration>ReleaseLTCG-Clang</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG-Clang-SSE2|x64">
<Configuration>ReleaseLTCG-Clang-SSE2</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release-Clang|ARM64">
<Configuration>Release-Clang</Configuration>
<Platform>ARM64</Platform>