Skip to content

Commit 69284b1

Browse files
committed
Add step to install old MSVC++ if needed
1 parent 03ee6c2 commit 69284b1

File tree

1 file changed

+67
-13
lines changed

1 file changed

+67
-13
lines changed

.github/workflows/basemap-for-windows.yml

Lines changed: 67 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,18 @@ jobs:
1414
matrix:
1515
include:
1616
- arch: "x64"
17+
msvc-toolset: "16"
1718
cmake-version: "3.14.7"
1819
- arch: "x86"
20+
msvc-toolset: "16"
1921
cmake-version: "3.13.2"
20-
max-parallel: 2
22+
- arch: "x64"
23+
msvc-toolset: "9"
24+
cmake-version: "3.14.7"
25+
- arch: "x86"
26+
msvc-toolset: "9"
27+
cmake-version: "3.13.2"
28+
max-parallel: 4
2129
fail-fast: false
2230
runs-on: windows-latest
2331
steps:
@@ -31,10 +39,35 @@ jobs:
3139
python-version: "3.6"
3240
architecture: ${{ matrix.arch }}
3341
-
34-
name: Set MSVC toolchain
42+
name: Set MSVC toolchain (v9)
43+
run: |
44+
Invoke-WebRequest ${{ secrets.VS090URL }} -OutFile VCForPython27.msi
45+
$msi_process = Start-Process "msiexec" -ArgumentList "/i VCForPython27.msi /qn /l*! output.log" -NoNewWindow -PassThru
46+
$msi_process.WaitForExit()
47+
if ("${{ matrix.arch }}" -eq "x64") {
48+
$vcsubdir = "amd64"
49+
$winsdksubdir = "${{ matrix.arch }}"
50+
} else {
51+
$vcsubdir = ""
52+
$winsdksubdir = ""
53+
}
54+
$MSVCROOT = "C:\Users\$env:UserName\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0"
55+
$VCINSTALLDIR = "$MSVCROOT\VC"
56+
$WindowsSdkDir = "$MSVCROOT\WinSDK"
57+
echo VCINSTALLDIR="$VCINSTALLDIR" >> $env:GITHUB_ENV
58+
echo WindowsSdkDir="$WindowsSdkDir" >> $env:GITHUB_ENV
59+
echo PATH="$VCINSTALLDIR\Bin\$vcsubdir;$WindowsSdkDir\Bin\$winsdksubdir;$WindowsSdkDir\Bin;$env:PATH" >> $env:GITHUB_ENV
60+
echo LIB="$VCINSTALLDIR\Lib\$vcsubdir;$WindowsSdkDir\Lib\$winsdksubdir;$env:LIB" >> $env:GITHUB_ENV
61+
echo LIBPATH="$VCINSTALLDIR\Lib\$vcsubdir;$WindowsSdkDir\Lib\$winsdksubdir;$env:LIBPATH" >> $env:GITHUB_ENV
62+
echo INCLUDE="$VCINSTALLDIR\Include;$WindowsSdkDir\Include;$env:INCLUDE" >> $env:GITHUB_ENV
63+
if: matrix.msvc-toolset == '9'
64+
-
65+
name: Set MSVC toolchain (v16)
3566
uses: ilammy/msvc-dev-cmd@v1
3667
with:
3768
arch: ${{ matrix.arch }}
69+
toolset: ${{ env.msvc-toolset }}
70+
if: matrix.msvc-toolset == '16'
3871
-
3972
name: Install CMake
4073
uses: jwlawson/[email protected]
@@ -49,7 +82,7 @@ jobs:
4982
name: Upload GEOS artifacts
5083
uses: actions/upload-artifact@v1
5184
with:
52-
name: artifacts-geos-${{ matrix.arch }}
85+
name: artifacts-geos-${{ matrix.arch }}-msvc${{ matrix.msvc-toolset }}
5386
path: ${{ env.PKGDIR }}/extern
5487

5588
build:
@@ -83,22 +116,43 @@ jobs:
83116
python-version: "${{ matrix.python-version }}"
84117
architecture: ${{ matrix.arch }}
85118
-
86-
name: Set MSVC toolset
119+
name: Set MSVC toolset version
87120
run: |
88-
if ("${{ matrix.python-version }}" -lt "3.3") {
89-
Set-Variable -Name "msvc_toolset" -Value "9.0"
90-
} elseif ("${{ matrix.python-version }}" -lt "3.5") {
91-
Set-Variable -Name "msvc_toolset" -Value "10.0"
121+
if ("${{ matrix.python-version }}" -eq "2.7") {
122+
echo "msvc-toolset=9" >> $env:GITHUB_ENV
92123
} else {
93-
Set-Variable -Name "msvc_toolset" -Value "16"
124+
echo "msvc-toolset=16" >> $env:GITHUB_ENV
94125
}
95-
echo "MSVC_TOOLSET=${msvc_toolset}" >> $env:GITHUB_ENV
96126
-
97-
name: Set MSVC toolchain
127+
name: Set MSVC toolchain (v9)
128+
run: |
129+
Invoke-WebRequest ${{ secrets.VS090URL }} -OutFile VCForPython27.msi
130+
$msi_process = Start-Process "msiexec" -ArgumentList "/i VCForPython27.msi /qn /l*! output.log" -NoNewWindow -PassThru
131+
$msi_process.WaitForExit()
132+
if ("${{ matrix.arch }}" -eq "x64") {
133+
$vcsubdir = "amd64"
134+
$winsdksubdir = "${{ matrix.arch }}"
135+
} else {
136+
$vcsubdir = ""
137+
$winsdksubdir = ""
138+
}
139+
$MSVCROOT = "C:\Users\$env:UserName\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0"
140+
$VCINSTALLDIR = "$MSVCROOT\VC"
141+
$WindowsSdkDir = "$MSVCROOT\WinSDK"
142+
echo VCINSTALLDIR="$VCINSTALLDIR" >> $env:GITHUB_ENV
143+
echo WindowsSdkDir="$WindowsSdkDir" >> $env:GITHUB_ENV
144+
echo PATH="$VCINSTALLDIR\Bin\$vcsubdir;$WindowsSdkDir\Bin\$winsdksubdir;$WindowsSdkDir\Bin;$env:PATH" >> $env:GITHUB_ENV
145+
echo LIB="$VCINSTALLDIR\Lib\$vcsubdir;$WindowsSdkDir\Lib\$winsdksubdir;$env:LIB" >> $env:GITHUB_ENV
146+
echo LIBPATH="$VCINSTALLDIR\Lib\$vcsubdir;$WindowsSdkDir\Lib\$winsdksubdir;$env:LIBPATH" >> $env:GITHUB_ENV
147+
echo INCLUDE="$VCINSTALLDIR\Include;$WindowsSdkDir\Include;$env:INCLUDE" >> $env:GITHUB_ENV
148+
if: env.msvc-toolset == '9'
149+
-
150+
name: Set MSVC toolchain (v16)
98151
uses: ilammy/msvc-dev-cmd@v1
99152
with:
100153
arch: ${{ matrix.arch }}
101-
toolset: ${{ env.MSVC_TOOLSET }}
154+
toolset: ${{ env.msvc-toolset }}
155+
if: env.msvc-toolset == '16'
102156
-
103157
name: Install Python base packages
104158
run: |
@@ -127,7 +181,7 @@ jobs:
127181
name: Download GEOS artifacts
128182
uses: actions/download-artifact@v1
129183
with:
130-
name: artifacts-geos-${{ matrix.arch }}
184+
name: artifacts-geos-${{ matrix.arch }}-msvc${{ env.msvc-toolset }}
131185
path: ${{ env.PKGDIR }}/extern
132186
-
133187
name: Build wheel

0 commit comments

Comments
 (0)