Skip to content

Commit bbf36e8

Browse files
authored
bpo-41070: Simplify pyshellext.dll build (pythonGH-21037)
Replace MIDL-generated file with manual GUID definition. Use the same .def file for release and debug builds. Update setup build to support latest toolset
1 parent 90ed8a6 commit bbf36e8

File tree

7 files changed

+10
-36
lines changed

7 files changed

+10
-36
lines changed

PC/pyshellext.cpp

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,14 @@
1212
#include <olectl.h>
1313
#include <strsafe.h>
1414

15-
#include "pyshellext_h.h"
16-
1715
#define DDWM_UPDATEWINDOW (WM_USER+3)
1816

1917
static HINSTANCE hModule;
2018
static CLIPFORMAT cfDropDescription;
2119
static CLIPFORMAT cfDragWindow;
2220

23-
static const LPCWSTR CLASS_SUBKEY = L"Software\\Classes\\CLSID\\{BEA218D2-6950-497B-9434-61683EC065FE}";
21+
#define CLASS_GUID "{BEA218D2-6950-497B-9434-61683EC065FE}"
22+
static const LPCWSTR CLASS_SUBKEY = L"Software\\Classes\\CLSID\\" CLASS_GUID;
2423
static const LPCWSTR DRAG_MESSAGE = L"Open with %1";
2524

2625
using namespace Microsoft::WRL;
@@ -121,8 +120,7 @@ HRESULT FilenameListCchCopyW(STRSAFE_LPWSTR pszDest, size_t cchDest, LPCWSTR psz
121120
return hr;
122121
}
123122

124-
125-
class PyShellExt : public RuntimeClass<
123+
class DECLSPEC_UUID(CLASS_GUID) PyShellExt : public RuntimeClass<
126124
RuntimeClassFlags<ClassicCom>,
127125
IDropTarget,
128126
IPersistFile
@@ -483,7 +481,7 @@ class PyShellExt : public RuntimeClass<
483481
}
484482

485483
STDMETHODIMP GetClassID(CLSID *pClassID) {
486-
*pClassID = CLSID_PyShellExt;
484+
*pClassID = __uuidof(PyShellExt);
487485
return S_OK;
488486
}
489487
};

PC/pyshellext.def

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
LIBRARY "pyshellext"
21
EXPORTS
32
DllRegisterServer PRIVATE
43
DllUnregisterServer PRIVATE

PC/pyshellext.idl

Lines changed: 0 additions & 12 deletions
This file was deleted.

PC/pyshellext_d.def

Lines changed: 0 additions & 6 deletions
This file was deleted.

PCbuild/pyshellext.vcxproj

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,19 +96,17 @@
9696
<Link>
9797
<AdditionalDependencies>version.lib;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
9898
<SubSystem>Console</SubSystem>
99-
<ModuleDefinitionFile>..\PC\pyshellext$(PyDebugExt).def</ModuleDefinitionFile>
99+
<ModuleDefinitionFile>..\PC\pyshellext.def</ModuleDefinitionFile>
100100
</Link>
101101
<Midl>
102102
<CompileInterface>true</CompileInterface>
103103
</Midl>
104104
</ItemDefinitionGroup>
105105
<ItemGroup>
106106
<ClCompile Include="..\PC\pyshellext.cpp" />
107-
<Midl Include="..\PC\pyshellext.idl" />
108107
</ItemGroup>
109108
<ItemGroup>
110109
<None Include="..\PC\pyshellext.def" />
111-
<None Include="..\PC\pyshellext_d.def" />
112110
</ItemGroup>
113111
<ItemGroup>
114112
<ResourceCompile Include="..\PC\pyshellext.rc" />

PCbuild/pyshellext.vcxproj.filters

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,6 @@
1515
<Filter>Source Files</Filter>
1616
</ClCompile>
1717
</ItemGroup>
18-
<ItemGroup>
19-
<Midl Include="..\PC\pyshellext.idl">
20-
<Filter>Source Files</Filter>
21-
</Midl>
22-
</ItemGroup>
2318
<ItemGroup>
2419
<ResourceCompile Include="..\PC\pyshellext.rc">
2520
<Filter>Resource Files</Filter>
@@ -29,8 +24,5 @@
2924
<None Include="..\PC\pyshellext.def">
3025
<Filter>Source Files</Filter>
3126
</None>
32-
<None Include="..\PC\pyshellext_d.def">
33-
<Filter>Source Files</Filter>
34-
</None>
3527
</ItemGroup>
3628
</Project>

Tools/msi/bundle/bootstrap/pythonba.vcxproj

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@
2121
<PropertyGroup Label="Globals">
2222
<Configuration Condition="'$(Configuration)' == ''">Release</Configuration>
2323
<Platform Condition="'$(Platform)' == ''">Win32</Platform>
24+
<PlatformToolset Condition="'$(PlatformToolset)' == '' and ('$(MSBuildToolsVersion)' == '16.0' or '$(VisualStudioVersion)' == '16.0')">v142</PlatformToolset>
25+
<PlatformToolset Condition="'$(PlatformToolset)' == '' and ('$(MSBuildToolsVersion)' == '15.0' or '$(VisualStudioVersion)' == '15.0')">v141</PlatformToolset>
26+
<PlatformToolset Condition="'$(PlatformToolset)' == '' and '$(VCTargetsPath14)' != ''">v140</PlatformToolset>
2427
<PlatformToolset Condition="'$(PlatformToolset)' == '' and '$(VCTargetsPath14)' != ''">v140</PlatformToolset>
2528
<PlatformToolset Condition="'$(PlatformToolset)' == '' and '$(VCTargetsPath12)' != ''">v120</PlatformToolset>
2629
<ProjectGuid>{7A09B132-B3EE-499B-A700-A4B2157FEA3D}</ProjectGuid>
@@ -47,6 +50,8 @@
4750
</ClCompile>
4851
<Link>
4952
<AdditionalDependencies>comctl32.lib;gdiplus.lib;msimg32.lib;shlwapi.lib;wininet.lib;dutil.lib;balutil.lib;version.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
53+
<AdditionalLibraryDirectories Condition="'$(PlatformToolset)' == 'v142'">$(WixInstallPath)sdk\vs2017\lib\x86</AdditionalLibraryDirectories>
54+
<AdditionalLibraryDirectories Condition="'$(PlatformToolset)' == 'v141'">$(WixInstallPath)sdk\vs2017\lib\x86</AdditionalLibraryDirectories>
5055
<AdditionalLibraryDirectories Condition="'$(PlatformToolset)' == 'v140'">$(WixInstallPath)sdk\vs2015\lib\x86</AdditionalLibraryDirectories>
5156
<AdditionalLibraryDirectories Condition="'$(PlatformToolset)' == 'v120'">$(WixInstallPath)sdk\vs2013\lib\x86</AdditionalLibraryDirectories>
5257
<ModuleDefinitionFile>pythonba.def</ModuleDefinitionFile>

0 commit comments

Comments
 (0)