From feea4246a4a9808139399ad46de9567bbed2a461 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Molina=20Garc=C3=ADa?= Date: Mon, 31 Oct 2022 08:10:10 +0100 Subject: [PATCH 1/4] Force MSVC 14.0 to build Windows wheels --- .github/workflows/basemap-for-windows.yml | 4 ++-- CHANGELOG.md | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/basemap-for-windows.yml b/.github/workflows/basemap-for-windows.yml index d9e68ce25..4218a703b 100644 --- a/.github/workflows/basemap-for-windows.yml +++ b/.github/workflows/basemap-for-windows.yml @@ -90,7 +90,7 @@ jobs: arch: ["x64", "x86"] msvc-toolset: - ["9.0", "14.16"] + ["9.0", "14.0"] max-parallel: 4 fail-fast: false needs: lint @@ -155,7 +155,7 @@ jobs: if ("${{ matrix.python-version }}" -eq "2.7") { echo "msvc-toolset=9.0" >> $env:GITHUB_ENV } else { - echo "msvc-toolset=14.16" >> $env:GITHUB_ENV + echo "msvc-toolset=14.0" >> $env:GITHUB_ENV } - name: Set MSVC toolset diff --git a/CHANGELOG.md b/CHANGELOG.md index d01577549..b3cfb1497 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,10 @@ https://semver.org/spec/v2.0.0.html - Upgrade `matplotlib` upper pin to 3.7. - Upgrade `pyproj` upper pin to 3.5. +### Fixed +- Set MSVC 14.0 (VS2015) to build the precompiled Windows wheels in + GitHub workflows. + ## [1.3.5] - 2022-10-25 ### Fixed From 6bf7664fd1ded2ed21df9f1516026ec3b056fcaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Molina=20Garc=C3=ADa?= Date: Mon, 31 Oct 2022 08:28:47 +0100 Subject: [PATCH 2/4] Change Windows runner agent to windows-2019 --- .github/workflows/basemap-for-windows.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/basemap-for-windows.yml b/.github/workflows/basemap-for-windows.yml index 4218a703b..7d6a08d8a 100644 --- a/.github/workflows/basemap-for-windows.yml +++ b/.github/workflows/basemap-for-windows.yml @@ -19,7 +19,7 @@ on: jobs: checkout: - runs-on: windows-latest + runs-on: windows-2019 steps: - name: Checkout @@ -32,7 +32,7 @@ jobs: path: . lint: - runs-on: windows-latest + runs-on: windows-2019 strategy: matrix: python-version: @@ -94,7 +94,7 @@ jobs: max-parallel: 4 fail-fast: false needs: lint - runs-on: windows-latest + runs-on: windows-2019 steps: - name: Download checkout @@ -141,7 +141,7 @@ jobs: max-parallel: 3 fail-fast: false needs: build-geos - runs-on: windows-latest + runs-on: windows-2019 steps: - name: Download checkout @@ -214,7 +214,7 @@ jobs: max-parallel: 3 fail-fast: false needs: build - runs-on: windows-latest + runs-on: windows-2019 steps: - name: Set Python @@ -248,7 +248,7 @@ jobs: max-parallel: 1 if: startsWith(github.event.ref, 'refs/tags/v') needs: test - runs-on: windows-latest + runs-on: windows-2019 environment: PyPI steps: - From 36f768e24a857d4a23efd8e15a7dabd632b89d74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Molina=20Garc=C3=ADa?= Date: Mon, 31 Oct 2022 11:43:17 +0100 Subject: [PATCH 3/4] Add /EHsc to GEOS CXX flags on Windows --- packages/basemap/utils/GeosLibrary.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/basemap/utils/GeosLibrary.py b/packages/basemap/utils/GeosLibrary.py index 84eff4e51..dec0ea458 100644 --- a/packages/basemap/utils/GeosLibrary.py +++ b/packages/basemap/utils/GeosLibrary.py @@ -242,7 +242,7 @@ def build(self, installdir=None, njobs=1): # Define custom configure and build options. if os.name == "nt": - config_opts += ["-DCMAKE_CXX_FLAGS='/wd4251 /wd4458 /wd4530'"] + config_opts += ["-DCMAKE_CXX_FLAGS='/wd4251 /wd4458 /wd4530 /EHsc'"] if version >= (3, 6, 0) and sys.version_info[:2] >= (3, 3): build_opts = ["-j", "{0:d}".format(njobs)] + build_opts else: From 0be70176faf44a017e2eaf6976c9947473116856 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Molina=20Garc=C3=ADa?= Date: Mon, 31 Oct 2022 12:35:08 +0100 Subject: [PATCH 4/4] Add optional argument toolset to GeosLibrary.build --- CHANGELOG.md | 3 +++ packages/basemap/utils/GeosLibrary.py | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b3cfb1497..eb0aa7903 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,9 @@ https://semver.org/spec/v2.0.0.html ## [1.3.6] +### Added +- Optional argument `toolset` in `GeosLibrary.build` method. + ### Changed - Upgrade `matplotlib` upper pin to 3.7. - Upgrade `pyproj` upper pin to 3.5. diff --git a/packages/basemap/utils/GeosLibrary.py b/packages/basemap/utils/GeosLibrary.py index dec0ea458..abbb839c7 100644 --- a/packages/basemap/utils/GeosLibrary.py +++ b/packages/basemap/utils/GeosLibrary.py @@ -213,7 +213,7 @@ def extract(self, overwrite=True): line = line.replace(oldtext2, newtext2) fd.write(line.encode()) - def build(self, installdir=None, njobs=1): + def build(self, installdir=None, toolset=None, njobs=1): """Build and install GEOS from source.""" # Download and extract zip file if not present. @@ -244,6 +244,8 @@ def build(self, installdir=None, njobs=1): if os.name == "nt": config_opts += ["-DCMAKE_CXX_FLAGS='/wd4251 /wd4458 /wd4530 /EHsc'"] if version >= (3, 6, 0) and sys.version_info[:2] >= (3, 3): + if toolset is not None: + config_opts += ["-DCMAKE_GENERATOR_TOOLSET={0}".format(toolset)] build_opts = ["-j", "{0:d}".format(njobs)] + build_opts else: win64 = (8 * struct.calcsize("P") == 64)