SDL_ttf: Updated to build targeting UWP with Visual Studio 2019

From 268d8c12e820c039fe742769e149254bc29746a2 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Mon, 23 May 2022 16:11:07 -0700
Subject: [PATCH] Updated to build targeting UWP with Visual Studio 2019

---
 VisualC-WinRT/SDL_ttf-UWP.sln                 |  37 +++
 VisualC-WinRT/SDL_ttf-UWP.vcxproj             | 310 ++++++++++++++++++
 VisualC-WinRT/SDL_ttf-UWP.vcxproj.filters     | 282 ++++++++++++++++
 .../SDL_ttf-WinPhone80.vcxproj                | 170 ----------
 .../SDL_ttf-WinPhone80.vcxproj.filters        |   9 -
 .../freetype-WinPhone80.vcxproj               | 189 -----------
 .../freetype-WinPhone80.vcxproj.filters       | 156 ---------
 .../SDL_ttf-WinPhone81.vcxproj                | 163 ---------
 .../SDL_ttf-WinPhone81.vcxproj.filters        |   9 -
 .../freetype-WinPhone81.vcxproj               | 202 ------------
 .../freetype-WinPhone81.vcxproj.filters       | 156 ---------
 .../WinRT80_VS2012/SDL_ttf-WinRT80.vcxproj    | 224 -------------
 .../SDL_ttf-WinRT80.vcxproj.filters           |   9 -
 .../WinRT80_VS2012/freetype-WinRT80.vcxproj   | 266 ---------------
 .../freetype-WinRT80.vcxproj.filters          | 156 ---------
 .../WinRT81_VS2013/SDL_ttf-WinRT81.vcxproj    | 226 -------------
 .../SDL_ttf-WinRT81.vcxproj.filters           |   9 -
 .../WinRT81_VS2013/freetype-WinRT81.vcxproj   | 270 ---------------
 .../freetype-WinRT81.vcxproj.filters          | 156 ---------
 19 files changed, 629 insertions(+), 2370 deletions(-)
 create mode 100644 VisualC-WinRT/SDL_ttf-UWP.sln
 create mode 100644 VisualC-WinRT/SDL_ttf-UWP.vcxproj
 create mode 100644 VisualC-WinRT/SDL_ttf-UWP.vcxproj.filters
 delete mode 100644 VisualC-WinRT/WinPhone80_VS2012/SDL_ttf-WinPhone80.vcxproj
 delete mode 100644 VisualC-WinRT/WinPhone80_VS2012/SDL_ttf-WinPhone80.vcxproj.filters
 delete mode 100644 VisualC-WinRT/WinPhone80_VS2012/freetype-WinPhone80.vcxproj
 delete mode 100644 VisualC-WinRT/WinPhone80_VS2012/freetype-WinPhone80.vcxproj.filters
 delete mode 100644 VisualC-WinRT/WinPhone81_VS2013/SDL_ttf-WinPhone81.vcxproj
 delete mode 100644 VisualC-WinRT/WinPhone81_VS2013/SDL_ttf-WinPhone81.vcxproj.filters
 delete mode 100644 VisualC-WinRT/WinPhone81_VS2013/freetype-WinPhone81.vcxproj
 delete mode 100644 VisualC-WinRT/WinPhone81_VS2013/freetype-WinPhone81.vcxproj.filters
 delete mode 100644 VisualC-WinRT/WinRT80_VS2012/SDL_ttf-WinRT80.vcxproj
 delete mode 100644 VisualC-WinRT/WinRT80_VS2012/SDL_ttf-WinRT80.vcxproj.filters
 delete mode 100644 VisualC-WinRT/WinRT80_VS2012/freetype-WinRT80.vcxproj
 delete mode 100644 VisualC-WinRT/WinRT80_VS2012/freetype-WinRT80.vcxproj.filters
 delete mode 100644 VisualC-WinRT/WinRT81_VS2013/SDL_ttf-WinRT81.vcxproj
 delete mode 100644 VisualC-WinRT/WinRT81_VS2013/SDL_ttf-WinRT81.vcxproj.filters
 delete mode 100644 VisualC-WinRT/WinRT81_VS2013/freetype-WinRT81.vcxproj
 delete mode 100644 VisualC-WinRT/WinRT81_VS2013/freetype-WinRT81.vcxproj.filters

diff --git a/VisualC-WinRT/SDL_ttf-UWP.sln b/VisualC-WinRT/SDL_ttf-UWP.sln
new file mode 100644
index 00000000..74729f00
--- /dev/null
+++ b/VisualC-WinRT/SDL_ttf-UWP.sln
@@ -0,0 +1,37 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.31911.196
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2_ttf-UWP", "SDL_ttf-UWP.vcxproj", "{18665277-E558-4484-93F4-E4DC7BB614CB}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|ARM = Debug|ARM
+		Debug|x64 = Debug|x64
+		Debug|x86 = Debug|x86
+		Release|ARM = Release|ARM
+		Release|x64 = Release|x64
+		Release|x86 = Release|x86
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{18665277-E558-4484-93F4-E4DC7BB614CB}.Debug|ARM.ActiveCfg = Debug|ARM
+		{18665277-E558-4484-93F4-E4DC7BB614CB}.Debug|ARM.Build.0 = Debug|ARM
+		{18665277-E558-4484-93F4-E4DC7BB614CB}.Debug|x64.ActiveCfg = Debug|x64
+		{18665277-E558-4484-93F4-E4DC7BB614CB}.Debug|x64.Build.0 = Debug|x64
+		{18665277-E558-4484-93F4-E4DC7BB614CB}.Debug|x86.ActiveCfg = Debug|Win32
+		{18665277-E558-4484-93F4-E4DC7BB614CB}.Debug|x86.Build.0 = Debug|Win32
+		{18665277-E558-4484-93F4-E4DC7BB614CB}.Release|ARM.ActiveCfg = Release|ARM
+		{18665277-E558-4484-93F4-E4DC7BB614CB}.Release|ARM.Build.0 = Release|ARM
+		{18665277-E558-4484-93F4-E4DC7BB614CB}.Release|x64.ActiveCfg = Release|x64
+		{18665277-E558-4484-93F4-E4DC7BB614CB}.Release|x64.Build.0 = Release|x64
+		{18665277-E558-4484-93F4-E4DC7BB614CB}.Release|x86.ActiveCfg = Release|Win32
+		{18665277-E558-4484-93F4-E4DC7BB614CB}.Release|x86.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {D933852A-2B04-47A9-8684-18570D927154}
+	EndGlobalSection
+EndGlobal
diff --git a/VisualC-WinRT/SDL_ttf-UWP.vcxproj b/VisualC-WinRT/SDL_ttf-UWP.vcxproj
new file mode 100644
index 00000000..b2dff647
--- /dev/null
+++ b/VisualC-WinRT/SDL_ttf-UWP.vcxproj
@@ -0,0 +1,310 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|ARM">
+      <Configuration>Debug</Configuration>
+      <Platform>ARM</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|ARM">
+      <Configuration>Release</Configuration>
+      <Platform>ARM</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\SDL_ttf.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\SDL\VisualC-WinRT\SDL-UWP.vcxproj">
+      <Project>{89e9b32e-a86a-47c3-a948-d2b1622925ce}</Project>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\external\freetype\src\autofit\autofit.c" />
+    <ClCompile Include="..\external\freetype\src\base\ftbase.c" />
+    <ClCompile Include="..\external\freetype\src\base\ftbbox.c" />
+    <ClCompile Include="..\external\freetype\src\base\ftbdf.c" />
+    <ClCompile Include="..\external\freetype\src\base\ftbitmap.c" />
+    <ClCompile Include="..\external\freetype\src\base\ftcid.c" />
+    <ClCompile Include="..\external\freetype\src\base\ftdebug.c" />
+    <ClCompile Include="..\external\freetype\src\base\ftfstype.c" />
+    <ClCompile Include="..\external\freetype\src\base\ftgasp.c" />
+    <ClCompile Include="..\external\freetype\src\base\ftglyph.c" />
+    <ClCompile Include="..\external\freetype\src\base\ftgxval.c" />
+    <ClCompile Include="..\external\freetype\src\base\ftinit.c" />
+    <ClCompile Include="..\external\freetype\src\base\ftmm.c" />
+    <ClCompile Include="..\external\freetype\src\base\ftotval.c" />
+    <ClCompile Include="..\external\freetype\src\base\ftpatent.c" />
+    <ClCompile Include="..\external\freetype\src\base\ftpfr.c" />
+    <ClCompile Include="..\external\freetype\src\base\ftstroke.c" />
+    <ClCompile Include="..\external\freetype\src\base\ftsynth.c" />
+    <ClCompile Include="..\external\freetype\src\base\ftsystem.c" />
+    <ClCompile Include="..\external\freetype\src\base\fttype1.c" />
+    <ClCompile Include="..\external\freetype\src\base\ftwinfnt.c" />
+    <ClCompile Include="..\external\freetype\src\bdf\bdf.c" />
+    <ClCompile Include="..\external\freetype\src\cache\ftcache.c" />
+    <ClCompile Include="..\external\freetype\src\cff\cff.c" />
+    <ClCompile Include="..\external\freetype\src\cid\type1cid.c" />
+    <ClCompile Include="..\external\freetype\src\gzip\ftgzip.c" />
+    <ClCompile Include="..\external\freetype\src\lzw\ftlzw.c" />
+    <ClCompile Include="..\external\freetype\src\pcf\pcf.c" />
+    <ClCompile Include="..\external\freetype\src\pfr\pfr.c" />
+    <ClCompile Include="..\external\freetype\src\psaux\psaux.c" />
+    <ClCompile Include="..\external\freetype\src\pshinter\pshinter.c" />
+    <ClCompile Include="..\external\freetype\src\psnames\psmodule.c" />
+    <ClCompile Include="..\external\freetype\src\raster\raster.c" />
+    <ClCompile Include="..\external\freetype\src\sdf\sdf.c" />
+    <ClCompile Include="..\external\freetype\src\sfnt\sfnt.c" />
+    <ClCompile Include="..\external\freetype\src\smooth\smooth.c" />
+    <ClCompile Include="..\external\freetype\src\svg\svg.c" />
+    <ClCompile Include="..\external\freetype\src\truetype\truetype.c" />
+    <ClCompile Include="..\external\freetype\src\type1\type1.c" />
+    <ClCompile Include="..\external\freetype\src\type42\type42.c" />
+    <ClCompile Include="..\external\freetype\src\winfonts\winfnt.c" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-aat-layout.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-aat-map.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-blob.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-buffer-serialize.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-buffer.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-common.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-face.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-fallback-shape.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-font.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-ft.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-ms-feature-ranges.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-number.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-ot-cff1-table.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-ot-cff2-table.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-ot-face.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-ot-font.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-ot-layout.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-ot-map.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-ot-math.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-ot-metrics.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-ot-shape-complex-arabic.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-ot-shape-complex-default.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-ot-shape-complex-hangul.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-ot-shape-complex-hebrew.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-ot-shape-complex-indic-table.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-ot-shape-complex-indic.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-ot-shape-complex-khmer.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-ot-shape-complex-myanmar.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-ot-shape-complex-syllabic.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-ot-shape-complex-thai.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-ot-shape-complex-use.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-ot-shape-complex-vowel-constraints.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-ot-shape-fallback.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-ot-shape-normalize.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-ot-shape.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-ot-tag.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-ot-var.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-set.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-shape-plan.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-shape.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-shaper.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-static.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-ucd.cc" />
+    <ClCompile Include="..\external\harfbuzz\src\hb-unicode.cc" />
+    <ClCompile Include="..\SDL_ttf.c" />
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{18665277-e558-4484-93f4-e4dc7bb614cb}</ProjectGuid>
+    <Keyword>DynamicLibrary</Keyword>
+    <ProjectName>SDL2_ttf-UWP</ProjectName>
+    <RootNamespace>SDL2_ttf_UWP</RootNamespace>
+    <DefaultLanguage>en-US</DefaultLanguage>
+    <MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
+    <AppContainerApplication>true</AppContainerApplication>
+    <ApplicationType>Windows Store</ApplicationType>
+    <ApplicationTypeRevision>8.2</ApplicationTypeRevision>
+    <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
+    <WindowsTargetPlatformMinVersion>10.0.0.0</WindowsTargetPlatformMinVersion>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <GenerateManifest>false</GenerateManifest>
+    <IgnoreImportLibrary>false</IgnoreImportLibrary>
+    <IntDir>Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\</IntDir>
+    <TargetName>SDL2_ttf</TargetName>
+    <IncludePath>..\external\freetype\include;..\external\harfbuzz\src;$(IncludePath)</IncludePath>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <GenerateManifest>false</GenerateManifest>
+    <IgnoreImportLibrary>false</IgnoreImportLibrary>
+    <IntDir>Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\</IntDir>
+    <TargetName>SDL2_ttf</TargetName>
+    <IncludePath>..\external\freetype\include;..\external\harfbuzz\src;$(IncludePath)</IncludePath>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
+    <GenerateManifest>false</GenerateManifest>
+    <IgnoreImportLibrary>false</IgnoreImportLibrary>
+    <IntDir>Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\</IntDir>
+    <TargetName>SDL2_ttf</TargetName>
+    <IncludePath>..\external\freetype\include;..\external\harfbuzz\src;$(IncludePath)</IncludePath>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
+    <GenerateManifest>false</GenerateManifest>
+    <IgnoreImportLibrary>false</IgnoreImportLibrary>
+    <IntDir>Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\</IntDir>
+    <TargetName>SDL2_ttf</TargetName>
+    <IncludePath>..\external\freetype\include;..\external\harfbuzz\src;$(IncludePath)</IncludePath>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <GenerateManifest>false</GenerateManifest>
+    <IgnoreImportLibrary>false</IgnoreImportLibrary>
+    <IntDir>Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\</IntDir>
+    <TargetName>SDL2_ttf</TargetName>
+    <IncludePath>..\external\freetype\include;..\external\harfbuzz\src;$(IncludePath)</IncludePath>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <GenerateManifest>false</GenerateManifest>
+    <IgnoreImportLibrary>false</IgnoreImportLibrary>
+    <IntDir>Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\</IntDir>
+    <TargetName>SDL2_ttf</TargetName>
+    <IncludePath>..\external\freetype\include;..\external\harfbuzz\src;$(IncludePath)</IncludePath>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <PrecompiledHeader>NotUsing</PrecompiledHeader>
+      <CompileAsWinRT>false</CompileAsWinRT>
+      <AdditionalIncludeDirectories>..\include;..\src;..\src\codecs;..\src\codecs\timidity;..\external\ogg\include;..\external\vorbis\include;..\..\SDL\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>DLL_EXPORT;_CRT_SECURE_NO_WARNINGS;TTF_USE_HARFBUZZ=1;FT_CONFIG_OPTION_USE_HARFBUZZ;FT2_BUILD_LIBRARY;HAVE_FREETYPE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+      <GenerateWindowsMetadata>false</GenerateWindowsMetadata>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <PrecompiledHeader>NotUsing</PrecompiledHeader>
+      <CompileAsWinRT>false</CompileAsWinRT>
+      <AdditionalIncludeDirectories>..\include;..\src;..\src\codecs;..\src\codecs\timidity;..\external\ogg\include;..\external\vorbis\include;..\..\SDL\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>NDEBUG;DLL_EXPORT;_CRT_SECURE_NO_WARNINGS;TTF_USE_HARFBUZZ=1;FT_CONFIG_OPTION_USE_HARFBUZZ;FT2_BUILD_LIBRARY;HAVE_FREETYPE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+      <GenerateWindowsMetadata>false</GenerateWindowsMetadata>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|arm'">
+    <ClCompile>
+      <PrecompiledHeader>NotUsing</PrecompiledHeader>
+      <CompileAsWinRT>false</CompileAsWinRT>
+      <AdditionalIncludeDirectories>..\include;..\src;..\src\codecs;..\src\codecs\timidity;..\external\ogg\include;..\external\vorbis\include;..\..\SDL\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>DLL_EXPORT;_CRT_SECURE_NO_WARNINGS;TTF_USE_HARFBUZZ=1;FT_CONFIG_OPTION_USE_HARFBUZZ;FT2_BUILD_LIBRARY;HAVE_FREETYPE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+      <GenerateWindowsMetadata>false</GenerateWindowsMetadata>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|arm'">
+    <ClCompile>
+      <PrecompiledHeader>NotUsing</PrecompiledHeader>
+      <CompileAsWinRT>false</CompileAsWinRT>
+      <AdditionalIncludeDirectories>..\include;..\src;..\src\codecs;..\src\codecs\timidity;..\external\ogg\include;..\external\vorbis\include;..\..\SDL\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>NDEBUG;DLL_EXPORT;_CRT_SECURE_NO_WARNINGS;TTF_USE_HARFBUZZ=1;FT_CONFIG_OPTION_USE_HARFBUZZ;FT2_BUILD_LIBRARY;HAVE_FREETYPE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+      <GenerateWindowsMetadata>false</GenerateWindowsMetadata>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <PrecompiledHeader>NotUsing</PrecompiledHeader>
+      <CompileAsWinRT>false</CompileAsWinRT>
+      <AdditionalIncludeDirectories>..\include;..\src;..\src\codecs;..\src\codecs\timidity;..\external\ogg\include;..\external\vorbis\include;..\..\SDL\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>DLL_EXPORT;_CRT_SECURE_NO_WARNINGS;TTF_USE_HARFBUZZ=1;FT_CONFIG_OPTION_USE_HARFBUZZ;FT2_BUILD_LIBRARY;HAVE_FREETYPE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+      <GenerateWindowsMetadata>false</GenerateWindowsMetadata>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <PrecompiledHeader>NotUsing</PrecompiledHeader>
+      <CompileAsWinRT>false</CompileAsWinRT>
+      <AdditionalIncludeDirectories>..\include;..\src;..\src\codecs;..\src\codecs\timidity;..\external\ogg\include;..\external\vorbis\include;..\..\SDL\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>NDEBUG;DLL_EXPORT;_CRT_SECURE_NO_WARNINGS;TTF_USE_HARFBUZZ=1;FT_CONFIG_OPTION_USE_HARFBUZZ;FT2_BUILD_LIBRARY;HAVE_FREETYPE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+      <GenerateWindowsMetadata>false</GenerateWindowsMetadata>
+    </Link>
+  </ItemDefinitionGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/VisualC-WinRT/SDL_ttf-UWP.vcxproj.filters b/VisualC-WinRT/SDL_ttf-UWP.vcxproj.filters
new file mode 100644
index 00000000..2b4826b5
--- /dev/null
+++ b/VisualC-WinRT/SDL_ttf-UWP.vcxproj.filters
@@ -0,0 +1,282 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Sources">
+      <UniqueIdentifier>{e074d5df-046d-48ae-b45a-f472f0bdd965}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Public Headers">
+      <UniqueIdentifier>{9c43d0b0-edae-4dea-bb19-5bd7972e58bc}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Sources\FreeType">
+      <UniqueIdentifier>{91971ab8-76cd-4d99-812d-9d86b0e5ab10}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Sources\HarfBuzz">
+      <UniqueIdentifier>{5dd68c94-3ded-4c03-9c2a-294fcec22a3e}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\SDL_ttf.c">
+      <Filter>Sources</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\autofit\autofit.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\base\ftbase.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\base\ftbbox.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\base\ftbdf.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\base\ftbitmap.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\base\ftcid.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\base\ftdebug.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\base\ftfstype.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\base\ftgasp.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\base\ftgxval.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\base\ftinit.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\base\ftmm.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\base\ftotval.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\base\ftpatent.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\base\ftpfr.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\base\ftstroke.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\base\ftsynth.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\base\ftsystem.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\base\fttype1.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\base\ftwinfnt.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\bdf\bdf.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\cff\cff.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\cache\ftcache.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\base\ftglyph.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\gzip\ftgzip.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\lzw\ftlzw.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\pcf\pcf.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\pfr\pfr.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\psaux\psaux.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\pshinter\pshinter.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\psnames\psmodule.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\raster\raster.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\sdf\sdf.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\sfnt\sfnt.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\smooth\smooth.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\svg\svg.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\truetype\truetype.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\type1\type1.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\cid\type1cid.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\type42\type42.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\freetype\src\winfonts\winfnt.c">
+      <Filter>Sources\FreeType</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\harfbuzz\src\hb-aat-layout.cc">
+      <Filter>Sources\HarfBuzz</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\harfbuzz\src\hb-aat-map.cc">
+      <Filter>Sources\HarfBuzz</Filter>
+    </ClCompile>
+    <ClCompile Include="..\external\harfbuzz\sr

(Patch may be truncated, please check the link at the top of this post.)