110 lines
2.9 KiB
Diff
110 lines
2.9 KiB
Diff
# Fix PROJ.6 support
|
|
# Adapted from https://github.com/SciTools/cartopy/pull/1289
|
|
--- a/setup.py 2020-05-02 17:50:37.000000000 -0500
|
|
+++ b/setup.py 2020-05-02 18:02:04.000000000 -0500
|
|
@@ -16,25 +16,25 @@
|
|
# along with cartopy. If not, see <https://www.gnu.org/licenses/>.
|
|
from __future__ import print_function
|
|
|
|
-"""
|
|
-Distribution definition for Cartopy.
|
|
-
|
|
-"""
|
|
-
|
|
-import setuptools
|
|
-from setuptools import setup, Extension
|
|
-from setuptools import Command
|
|
-from setuptools import convert_path
|
|
-from distutils.spawn import find_executable
|
|
-from distutils.sysconfig import get_config_var
|
|
import fnmatch
|
|
import os
|
|
import subprocess
|
|
import sys
|
|
import warnings
|
|
+from collections import defaultdict
|
|
+from distutils.spawn import find_executable
|
|
+from distutils.sysconfig import get_config_var
|
|
+
|
|
+from setuptools import Command, Extension, convert_path, setup
|
|
|
|
import versioneer
|
|
|
|
+"""
|
|
+Distribution definition for Cartopy.
|
|
+"""
|
|
+
|
|
+
|
|
+
|
|
|
|
try:
|
|
from Cython.Distutils import build_ext
|
|
@@ -230,6 +230,18 @@
|
|
return proj_version
|
|
|
|
|
|
+def get_proj_libraries():
|
|
+ """
|
|
+ This function gets the PROJ libraries to cythonize with
|
|
+ """
|
|
+ proj_libraries = ["proj"]
|
|
+ if os.name == "nt" and proj_version >= (6, 0, 0):
|
|
+ proj_libraries = [
|
|
+ "proj_{}_{}".format(proj_version[0], proj_version[1])
|
|
+ ]
|
|
+ return proj_libraries
|
|
+
|
|
+
|
|
conda = os.getenv('CONDA_DEFAULT_ENV')
|
|
if conda is not None and conda in sys.prefix:
|
|
# Conda does not provide pkg-config compatibility, but the search paths
|
|
@@ -245,7 +257,7 @@
|
|
exit(1)
|
|
|
|
proj_includes = []
|
|
- proj_libraries = ['proj']
|
|
+ proj_libraries = get_proj_libraries()
|
|
proj_library_dirs = []
|
|
|
|
else:
|
|
@@ -268,7 +280,7 @@
|
|
exit(1)
|
|
|
|
proj_includes = []
|
|
- proj_libraries = ['proj']
|
|
+ proj_libraries = get_proj_libraries()
|
|
proj_library_dirs = []
|
|
else:
|
|
if proj_version < PROJ_MIN_VERSION:
|
|
@@ -284,7 +296,7 @@
|
|
proj_clibs = proj_clibs.decode()
|
|
|
|
proj_includes = [proj_include[2:] if proj_include.startswith('-I') else
|
|
- proj_include for proj_include in proj_includes.split()]
|
|
+ proj_include for proj_include in proj_includes.split()]
|
|
|
|
proj_libraries = []
|
|
proj_library_dirs = []
|
|
@@ -316,11 +328,16 @@
|
|
return '.'
|
|
include_dir = get_config_var('INCLUDEDIR')
|
|
library_dir = get_config_var('LIBDIR')
|
|
-if sys.platform.startswith('win'):
|
|
- extra_extension_args = {}
|
|
-else:
|
|
- extra_extension_args = dict(
|
|
- runtime_library_dirs=[get_config_var('LIBDIR')])
|
|
+extra_extension_args = defaultdict(list)
|
|
+if not sys.platform.startswith('win'):
|
|
+ extra_extension_args["runtime_library_dirs"].append(
|
|
+ get_config_var('LIBDIR')
|
|
+ )
|
|
+
|
|
+if proj_version >= (6, 0, 0):
|
|
+ extra_extension_args["define_macros"].append(
|
|
+ ('ACCEPT_USE_OF_DEPRECATED_PROJ_API_H', '1')
|
|
+ )
|
|
|
|
# Description
|
|
# ===========
|