Emscripten port

This commit is contained in:
elasota
2021-03-29 21:41:11 -04:00
parent 9ba0e9f13d
commit 6fb45f480b
92 changed files with 15731 additions and 300 deletions

92
bin2h/bin2h.cpp Normal file
View File

@@ -0,0 +1,92 @@
#include <direct.h>
#include <Windows.h>
#include "WindowsUnicodeToolShim.h"
#include <string>
#include <vector>
int toolMain(int argc, const char **argv)
{
if (argc != 3)
{
fprintf(stderr, "Usage: bin2h <dir> <output>");
return -1;
}
std::string dir = argv[1];
std::string filter = dir + "\\*";
WIN32_FIND_DATAA findData;
HANDLE findDataH = FindFirstFileA(filter.c_str(), &findData);
if (findDataH == INVALID_HANDLE_VALUE)
{
fprintf(stderr, "Failed to open directory scan");
return -1;
}
FILE *outF = fopen_utf8(argv[2], "wb");
if (!outF)
{
fprintf(stderr, "Failed to open output file");
return -1;
}
std::vector<std::string> fileNames;
int numFiles = 0;
for (;;)
{
if (!(findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
{
fileNames.push_back(std::string(findData.cFileName));
std::string filePath = dir + "\\" + findData.cFileName;
FILE *inF = fopen_utf8(filePath.c_str(), "rb");
if (!inF)
{
fprintf(stderr, "Failed to open input file");
return -1;
}
fprintf(outF, "const unsigned char g_fileContents%i[] = {\n", numFiles);
fseek(inF, 0, SEEK_END);
long fileSize = ftell(inF);
fseek(inF, 0, SEEK_SET);
for (long i = 0; i < fileSize; i++)
{
if (i % 20 == 0)
fputs("\n\t\t", outF);
int c = fgetc(inF);
fprintf(outF, "% 4i,", (c & 0xff));
}
fprintf(outF, "\n};\n\n", numFiles);
numFiles++;
fclose(inF);
}
if (!FindNextFileA(findDataH, &findData))
break;
}
FindClose(findDataH);
fprintf(outF, "FileCatalogEntry g_catalogEntries[] = {\n");
for (int i = 0; i < numFiles; i++)
fprintf(outF, "\t{ \"%s\", g_fileContents%i, sizeof(g_fileContents%i) },\n", fileNames[i].c_str(), i, i);
fprintf(outF, "};\n");
fprintf(outF, "FileCatalog g_catalog = { g_catalogEntries, sizeof(g_catalogEntries) / sizeof(g_catalogEntries[0]), sizeof(g_catalogEntries), sizeof(g_catalogEntries[0]) };\n");
fprintf(outF, "const FileCatalog &GetCatalog() { return g_catalog; }\n");
fclose(outF);
return 0;
}

84
bin2h/bin2h.vcxproj Normal file
View File

@@ -0,0 +1,84 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>15.0</VCProjectVersion>
<ProjectGuid>{D045F28D-F245-44DD-B576-CC91BF3BE6E9}</ProjectGuid>
<RootNamespace>bin2h</RootNamespace>
<WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</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" />
<Import Project="..\WindowsUnicodeToolShim.props" />
</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" />
<Import Project="..\WindowsUnicodeToolShim.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup />
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="bin2h.cpp" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\PortabilityLayer\PortabilityLayer.vcxproj">
<Project>{6ec62b0f-9353-40a4-a510-3788f1368b33}</Project>
</ProjectReference>
<ProjectReference Include="..\WindowsUnicodeToolShim\WindowsUnicodeToolShim.vcxproj">
<Project>{15009625-1120-405e-8bba-69a16cd6713d}</Project>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="bin2h.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>