Skip to content

Commit

Permalink
Bootstrapper: Optimise Exports for File Size
Browse files Browse the repository at this point in the history
  • Loading branch information
Sewer56 committed Nov 24, 2022
1 parent ff3375b commit 914a753
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,8 @@
<OutputFile>$(OutDir)\X86\Bootstrapper\$(TargetName)$(TargetExt)</OutputFile>
<ProgramDatabaseFile>$(OutDir)\X86\Bootstrapper\$(TargetName).pdb</ProgramDatabaseFile>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
<AdditionalOptions></AdditionalOptions>
<ModuleDefinitionFile>exports.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
Expand All @@ -137,13 +139,15 @@
<OutputFile>$(OutDir)\X64\Bootstrapper\$(TargetName)$(TargetExt)</OutputFile>
<ProgramDatabaseFile>$(OutDir)\X64\Bootstrapper\$(TargetName).pdb</ProgramDatabaseFile>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
<AdditionalOptions></AdditionalOptions>
<ModuleDefinitionFile>exports.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Full</Optimization>
<Optimization>MinSpace</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
Expand All @@ -153,6 +157,8 @@
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<DisableSpecificWarnings>6262;26451;4099</DisableSpecificWarnings>
<StringPooling>true</StringPooling>
<BufferSecurityCheck>false</BufferSecurityCheck>
</ClCompile>
<Lib>
<AdditionalLibraryDirectories>.\nethost\x86-libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
Expand All @@ -168,13 +174,15 @@
<ProgramDatabaseFile>$(OutDir)\X86\Bootstrapper\$(TargetName).pdb</ProgramDatabaseFile>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
<AdditionalOptions>/brepro %(AdditionalOptions)</AdditionalOptions>
<SectionAlignment>128</SectionAlignment>
<ModuleDefinitionFile>exports.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Full</Optimization>
<Optimization>MinSpace</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
Expand All @@ -184,6 +192,9 @@
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<DisableSpecificWarnings>6262;26451;4099</DisableSpecificWarnings>
<StringPooling>true</StringPooling>
<AdditionalOptions></AdditionalOptions>
<BufferSecurityCheck>false</BufferSecurityCheck>
</ClCompile>
<Lib>
<AdditionalLibraryDirectories>.\nethost\x64-libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
Expand All @@ -199,6 +210,8 @@
<ProgramDatabaseFile>$(OutDir)\X64\Bootstrapper\$(TargetName).pdb</ProgramDatabaseFile>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
<AdditionalOptions>/brepro %(AdditionalOptions)</AdditionalOptions>
<SectionAlignment>128</SectionAlignment>
<ModuleDefinitionFile>exports.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
Expand Down Expand Up @@ -246,6 +259,9 @@
<ItemGroup>
<ResourceCompile Include="version.rc" />
</ItemGroup>
<ItemGroup>
<Content Include="exports.def" />
</ItemGroup>
<!-- Build X64 and X86 at same time. -->
<Target Name="AfterBuild">
<MSBuild Condition=" '$(Platform)' == 'x64' " Projects="$(MSBuildProjectFile)" Properties="Platform=Win32;PlatFormTarget=Win32" RunEachTargetSeparately="true" />
Expand Down
8 changes: 2 additions & 6 deletions source/Reloaded.Mod.Loader.Bootstrapper/dllmain.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -237,12 +237,8 @@ struct ModInfoDummy

extern "C"
{
// Note: MainMemory's Mod Loaders have inconsistent entry points (some having helper functions, some not). Not exporting.
__declspec(dllexport) ModInfoDummy SA2ModInfo { 1 };
__declspec(dllexport) ModInfoDummy SADXModInfo { 1 };
__declspec(dllexport) ModInfoDummy SonicRModInfo { 1 };
__declspec(dllexport) ModInfoDummy ManiaModInfo { 1 };
__declspec(dllexport) ModInfoDummy SKCModInfo { 1 };
// Note: MainMemory's Mod Loaders have inconsistent entry points (some having helper functions, some not). Not exporting proper defs.
__declspec(dllexport) ModInfoDummy MainMemoryModInfo = { 1 };

// Entry point for Ultimate ASI Loader, to allow waiting for Reloaded II creation thread to terminate.
__declspec(dllexport) void InitializeASI()
Expand Down
7 changes: 7 additions & 0 deletions source/Reloaded.Mod.Loader.Bootstrapper/exports.def
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
LIBRARY Reloaded.Mod.Loader.Bootstrapper
EXPORTS
SA2ModInfo=MainMemoryModInfo
SADXModInfo=MainMemoryModInfo
ManiaModInfo=MainMemoryModInfo
SonicRModInfo=MainMemoryModInfo
SKCModInfo=MainMemoryModInfo

0 comments on commit 914a753

Please sign in to comment.