Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Tweaked the pcbuild options for pyshellext to reduce the size of the binary.
Since this is a very simple component, there really isn't much benefit of
optimizing for speed, likely the slowest part of this component's lifetime
is simply loading it. Total size reduction is approx 40% in release builds.
32 changes: 32 additions & 0 deletions PCbuild/pcbuild.sln
Original file line number Diff line number Diff line change
Expand Up @@ -1267,6 +1267,38 @@ Global
{384C224A-7474-476E-A01B-750EA7DE918C}.Release|Win32.Build.0 = Release|Win32
{384C224A-7474-476E-A01B-750EA7DE918C}.Release|x64.ActiveCfg = Release|x64
{384C224A-7474-476E-A01B-750EA7DE918C}.Release|x64.Build.0 = Release|x64
{FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.Debug|ARM.ActiveCfg = Debug|ARM
{FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.Debug|ARM.Build.0 = Debug|ARM
{FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.Debug|ARM64.ActiveCfg = Debug|ARM64
{FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.Debug|ARM64.Build.0 = Debug|ARM64
{FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.Debug|Win32.ActiveCfg = Debug|Win32
{FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.Debug|Win32.Build.0 = Debug|Win32
{FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.Debug|x64.ActiveCfg = Debug|x64
{FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.Debug|x64.Build.0 = Debug|x64
{FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.PGInstrument|ARM.ActiveCfg = PGInstrument|ARM
{FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.PGInstrument|ARM.Build.0 = PGInstrument|ARM
{FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.PGInstrument|ARM64.ActiveCfg = PGInstrument|ARM64
{FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.PGInstrument|ARM64.Build.0 = PGInstrument|ARM64
{FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
{FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
{FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
{FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.PGInstrument|x64.Build.0 = PGInstrument|x64
{FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.PGUpdate|ARM.ActiveCfg = PGUpdate|ARM
{FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.PGUpdate|ARM.Build.0 = PGUpdate|ARM
{FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.PGUpdate|ARM64.ActiveCfg = PGUpdate|ARM64
{FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.PGUpdate|ARM64.Build.0 = PGUpdate|ARM64
{FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
{FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
{FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
{FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.PGUpdate|x64.Build.0 = PGUpdate|x64
{FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.Release|ARM.ActiveCfg = Release|ARM
{FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.Release|ARM.Build.0 = Release|ARM
{FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.Release|ARM64.ActiveCfg = Release|ARM64
{FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.Release|ARM64.Build.0 = Release|ARM64
{FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.Release|Win32.ActiveCfg = Release|Win32
{FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.Release|Win32.Build.0 = Release|Win32
{FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.Release|x64.ActiveCfg = Release|x64
{FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.Release|x64.Build.0 = Release|x64
{78D80A15-BD8C-44E2-B49E-1F05B0A0A687}.Debug|ARM.ActiveCfg = Debug|ARM
{78D80A15-BD8C-44E2-B49E-1F05B0A0A687}.Debug|ARM.Build.0 = Debug|ARM
{78D80A15-BD8C-44E2-B49E-1F05B0A0A687}.Debug|ARM64.ActiveCfg = Debug|ARM64
Expand Down
220 changes: 220 additions & 0 deletions PCbuild/pyshellext.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,81 @@
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Choose>
<When Condition="'$(Configuration)|$(Platform)'=='PGInstrument|ARM'">
<PropertyGroup>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
</When>

<When Condition="'$(Configuration)|$(Platform)'=='PGUpdate|ARM'">
<PropertyGroup>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
</When>
<When Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
<PropertyGroup>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
</When>
<When Condition="'$(Configuration)|$(Platform)'=='PGInstrument|Win32'">
<PropertyGroup>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
</When>
<When Condition="'$(Configuration)|$(Platform)'=='PGUpdate|Win32'">
<PropertyGroup>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
</When>
<When Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<PropertyGroup>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
</When>
<When Condition="'$(Configuration)|$(Platform)'=='PGInstrument|x64'">
<PropertyGroup>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
</When>
<When Condition="'$(Configuration)|$(Platform)'=='PGUpdate|x64'">
<PropertyGroup>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
</When>
<When Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<PropertyGroup>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
</When>
</Choose>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
Expand All @@ -92,11 +167,156 @@
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Choose>
<When Condition="'$(Configuration)|$(Platform)'=='PGInstrument|ARM'">
<PropertyGroup>
<Optimization>MinSpace</Optimization>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
</PropertyGroup>
</When>
<When Condition="'$(Configuration)|$(Platform)'=='PGUpdate|ARM'">
<PropertyGroup>
<Optimization>MinSpace</Optimization>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
</PropertyGroup>
</When>
<When Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
<PropertyGroup>
<Optimization>MinSpace</Optimization>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
</PropertyGroup>
</When>
<When Condition="'$(Configuration)|$(Platform)'=='PGInstrument|Win32'">
<PropertyGroup>
<Optimization>MinSpace</Optimization>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
</PropertyGroup>
</When>
<When Condition="'$(Configuration)|$(Platform)'=='PGUpdate|Win32'">
<PropertyGroup>
<Optimization>MinSpace</Optimization>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
</PropertyGroup>
</When>
<When Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<PropertyGroup>
<Optimization>MinSpace</Optimization>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
</PropertyGroup>
</When>
<When Condition="'$(Configuration)|$(Platform)'=='PGInstrument|x64'">
<PropertyGroup>
<Optimization>MinSpace</Optimization>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
</PropertyGroup>
</When>
<When Condition="'$(Configuration)|$(Platform)'=='PGUpdate|x64'">
<PropertyGroup>
<Optimization>MinSpace</Optimization>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
</PropertyGroup>
</When>
<When Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<PropertyGroup>
<Optimization>MinSpace</Optimization>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
</PropertyGroup>
</When>
</Choose>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">/Zo</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='PGInstrument|ARM'">/Zo</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='PGUpdate|ARM'">/Zo</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">/Zo</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">/Zo</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='PGInstrument|Win32'">/Zo</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='PGUpdate|Win32'">/Zo</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">/Zo</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">/Zo</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='PGInstrument|x64'">/Zo</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='PGUpdate|x64'">/Zo</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">/Zo</AdditionalOptions>

<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">MinSpace</Optimization>
<InlineFunctionExpansion Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">AnySuitable</InlineFunctionExpansion>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">Size</FavorSizeOrSpeed>
<WholeProgramOptimization Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</WholeProgramOptimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">MinSpace</Optimization>
<InlineFunctionExpansion Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AnySuitable</InlineFunctionExpansion>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Size</FavorSizeOrSpeed>
<WholeProgramOptimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</WholeProgramOptimization>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">MinSpace</Optimization>
<InlineFunctionExpansion Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AnySuitable</InlineFunctionExpansion>
<FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Size</FavorSizeOrSpeed>
<WholeProgramOptimization Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</WholeProgramOptimization>
<RuntimeTypeInfo Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</RuntimeTypeInfo>
<RuntimeTypeInfo Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</RuntimeTypeInfo>
<RuntimeTypeInfo Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</RuntimeTypeInfo>
</ClCompile>
<Link>
<AdditionalDependencies>version.lib;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<SubSystem>Console</SubSystem>
<ModuleDefinitionFile>..\PC\pyshellext$(PyDebugExt).def</ModuleDefinitionFile>
<OptimizeReferences Condition="'$(Configuration)|$(Platform)'=='PGInstrument|ARM'">true</OptimizeReferences>
<EnableCOMDATFolding Condition="'$(Configuration)|$(Platform)'=='PGInstrument|ARM'">true</EnableCOMDATFolding>
<OptimizeReferences Condition="'$(Configuration)|$(Platform)'=='PGUpdate|ARM'">true</OptimizeReferences>
<EnableCOMDATFolding Condition="'$(Configuration)|$(Platform)'=='PGUpdate|ARM'">true</EnableCOMDATFolding>
<OptimizeReferences Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</OptimizeReferences>
<EnableCOMDATFolding Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</EnableCOMDATFolding>
<OptimizeReferences Condition="'$(Configuration)|$(Platform)'=='PGInstrument|Win32'">true</OptimizeReferences>
<EnableCOMDATFolding Condition="'$(Configuration)|$(Platform)'=='PGInstrument|Win32'">true</EnableCOMDATFolding>
<LinkTimeCodeGeneration Condition="'$(Configuration)|$(Platform)'=='PGInstrument|Win32'">UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<OptimizeReferences Condition="'$(Configuration)|$(Platform)'=='PGUpdate|Win32'">true</OptimizeReferences>
<EnableCOMDATFolding Condition="'$(Configuration)|$(Platform)'=='PGUpdate|Win32'">true</EnableCOMDATFolding>
<LinkTimeCodeGeneration Condition="'$(Configuration)|$(Platform)'=='PGUpdate|Win32'">UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<OptimizeReferences Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</OptimizeReferences>
<EnableCOMDATFolding Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</EnableCOMDATFolding>
<OptimizeReferences Condition="'$(Configuration)|$(Platform)'=='PGInstrument|x64'">true</OptimizeReferences>
<EnableCOMDATFolding Condition="'$(Configuration)|$(Platform)'=='PGInstrument|x64'">true</EnableCOMDATFolding>
<LinkTimeCodeGeneration Condition="'$(Configuration)|$(Platform)'=='PGInstrument|x64'">UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<OptimizeReferences Condition="'$(Configuration)|$(Platform)'=='PGUpdate|x64'">true</OptimizeReferences>
<EnableCOMDATFolding Condition="'$(Configuration)|$(Platform)'=='PGUpdate|x64'">true</EnableCOMDATFolding>
<LinkTimeCodeGeneration Condition="'$(Configuration)|$(Platform)'=='PGUpdate|x64'">UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<OptimizeReferences Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</OptimizeReferences>
<EnableCOMDATFolding Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</EnableCOMDATFolding>
<GenerateDebugInformation Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">DebugFull</GenerateDebugInformation>
<GenerateDebugInformation Condition="'$(Configuration)|$(Platform)'=='PGInstrument|ARM'">DebugFull</GenerateDebugInformation>
<GenerateDebugInformation Condition="'$(Configuration)|$(Platform)'=='PGUpdate|ARM'">DebugFull</GenerateDebugInformation>
<GenerateDebugInformation Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">DebugFull</GenerateDebugInformation>
<GenerateDebugInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">DebugFull</GenerateDebugInformation>
<GenerateDebugInformation Condition="'$(Configuration)|$(Platform)'=='PGInstrument|Win32'">DebugFull</GenerateDebugInformation>
<GenerateDebugInformation Condition="'$(Configuration)|$(Platform)'=='PGUpdate|Win32'">DebugFull</GenerateDebugInformation>
<GenerateDebugInformation Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">DebugFull</GenerateDebugInformation>
<GenerateDebugInformation Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">DebugFull</GenerateDebugInformation>
<GenerateDebugInformation Condition="'$(Configuration)|$(Platform)'=='PGInstrument|x64'">DebugFull</GenerateDebugInformation>
<GenerateDebugInformation Condition="'$(Configuration)|$(Platform)'=='PGUpdate|x64'">DebugFull</GenerateDebugInformation>
<GenerateDebugInformation Condition="'$(Configuration)|$(Platform)'=='Release|x64'">DebugFull</GenerateDebugInformation>
<OptimizeReferences Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</OptimizeReferences>
<EnableCOMDATFolding Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</EnableCOMDATFolding>
<LinkTimeCodeGeneration Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<OptimizeReferences Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</OptimizeReferences>
<EnableCOMDATFolding Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</EnableCOMDATFolding>
<LinkTimeCodeGeneration Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<OptimizeReferences Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</OptimizeReferences>
<EnableCOMDATFolding Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</EnableCOMDATFolding>
<LinkTimeCodeGeneration Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
</Link>
<Midl>
<CompileInterface>true</CompileInterface>
Expand Down