pyogrio 0.7.2__cp311-cp311-macosx_11_0_arm64.whl → 0.8.0__cp311-cp311-macosx_11_0_arm64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pyogrio might be problematic. Click here for more details.

Files changed (47) hide show
  1. pyogrio/.dylibs/{libgdal.33.3.7.2.dylib → libgdal.34.3.8.5.dylib} +0 -0
  2. pyogrio/__init__.py +4 -0
  3. pyogrio/_compat.py +6 -1
  4. pyogrio/_err.cpython-311-darwin.so +0 -0
  5. pyogrio/_err.pyx +7 -3
  6. pyogrio/_geometry.cpython-311-darwin.so +0 -0
  7. pyogrio/_io.cpython-311-darwin.so +0 -0
  8. pyogrio/_io.pyx +900 -242
  9. pyogrio/_ogr.cpython-311-darwin.so +0 -0
  10. pyogrio/_ogr.pxd +65 -12
  11. pyogrio/_ogr.pyx +8 -24
  12. pyogrio/_version.py +3 -3
  13. pyogrio/_vsi.cpython-311-darwin.so +0 -0
  14. pyogrio/_vsi.pxd +4 -0
  15. pyogrio/_vsi.pyx +140 -0
  16. pyogrio/core.py +43 -44
  17. pyogrio/gdal_data/GDAL-targets-release.cmake +3 -3
  18. pyogrio/gdal_data/GDAL-targets.cmake +10 -6
  19. pyogrio/gdal_data/GDALConfigVersion.cmake +3 -3
  20. pyogrio/gdal_data/gdalinfo_output.schema.json +2 -0
  21. pyogrio/gdal_data/gdalvrt.xsd +163 -0
  22. pyogrio/gdal_data/ogrinfo_output.schema.json +12 -1
  23. pyogrio/gdal_data/vcpkg.spdx.json +22 -22
  24. pyogrio/gdal_data/vcpkg_abi_info.txt +27 -26
  25. pyogrio/geopandas.py +126 -29
  26. pyogrio/proj_data/ITRF2008 +2 -2
  27. pyogrio/proj_data/proj-config-version.cmake +2 -2
  28. pyogrio/proj_data/proj-config.cmake +2 -1
  29. pyogrio/proj_data/proj-targets.cmake +13 -13
  30. pyogrio/proj_data/proj.db +0 -0
  31. pyogrio/proj_data/proj4-targets.cmake +13 -13
  32. pyogrio/proj_data/vcpkg.spdx.json +19 -41
  33. pyogrio/proj_data/vcpkg_abi_info.txt +14 -15
  34. pyogrio/raw.py +438 -116
  35. pyogrio/tests/conftest.py +75 -6
  36. pyogrio/tests/test_arrow.py +841 -7
  37. pyogrio/tests/test_core.py +99 -7
  38. pyogrio/tests/test_geopandas_io.py +721 -120
  39. pyogrio/tests/test_path.py +22 -3
  40. pyogrio/tests/test_raw_io.py +276 -50
  41. pyogrio/util.py +38 -18
  42. {pyogrio-0.7.2.dist-info → pyogrio-0.8.0.dist-info}/METADATA +2 -2
  43. {pyogrio-0.7.2.dist-info → pyogrio-0.8.0.dist-info}/RECORD +46 -44
  44. {pyogrio-0.7.2.dist-info → pyogrio-0.8.0.dist-info}/WHEEL +1 -1
  45. pyogrio/tests/win32.py +0 -86
  46. {pyogrio-0.7.2.dist-info → pyogrio-0.8.0.dist-info}/LICENSE +0 -0
  47. {pyogrio-0.7.2.dist-info → pyogrio-0.8.0.dist-info}/top_level.txt +0 -0
pyogrio/geopandas.py CHANGED
@@ -2,14 +2,14 @@ import os
2
2
 
3
3
  import numpy as np
4
4
 
5
- from pyogrio._compat import HAS_GEOPANDAS, PANDAS_GE_15, PANDAS_GE_20
5
+ from pyogrio._compat import HAS_GEOPANDAS, PANDAS_GE_15, PANDAS_GE_20, PANDAS_GE_22
6
6
  from pyogrio.raw import (
7
7
  DRIVERS_NO_MIXED_SINGLE_MULTI,
8
8
  DRIVERS_NO_MIXED_DIMENSIONS,
9
- detect_write_driver,
10
9
  read,
11
10
  read_arrow,
12
11
  write,
12
+ _get_write_path_driver,
13
13
  )
14
14
  from pyogrio.errors import DataSourceError
15
15
  import warnings
@@ -33,7 +33,9 @@ def _stringify_path(path):
33
33
  def _try_parse_datetime(ser):
34
34
  import pandas as pd # only called when pandas is known to be installed
35
35
 
36
- if PANDAS_GE_20:
36
+ if PANDAS_GE_22:
37
+ datetime_kwargs = dict(format="ISO8601")
38
+ elif PANDAS_GE_20:
37
39
  datetime_kwargs = dict(format="ISO8601", errors="ignore")
38
40
  else:
39
41
  datetime_kwargs = dict(yearfirst=True)
@@ -48,10 +50,13 @@ def _try_parse_datetime(ser):
48
50
  try:
49
51
  res = pd.to_datetime(ser, **datetime_kwargs)
50
52
  except Exception:
51
- pass
53
+ res = ser
52
54
  # if object dtype, try parse as utc instead
53
55
  if res.dtype == "object":
54
- res = pd.to_datetime(ser, utc=True, **datetime_kwargs)
56
+ try:
57
+ res = pd.to_datetime(ser, utc=True, **datetime_kwargs)
58
+ except Exception:
59
+ pass
55
60
 
56
61
  if res.dtype != "object":
57
62
  # GDAL only supports ms precision, convert outputs to match.
@@ -101,13 +106,16 @@ def read_dataframe(
101
106
  of the layer in the data source. Defaults to first layer in data source.
102
107
  encoding : str, optional (default: None)
103
108
  If present, will be used as the encoding for reading string values from
104
- the data source, unless encoding can be inferred directly from the data
105
- source.
109
+ the data source. By default will automatically try to detect the native
110
+ encoding and decode to ``UTF-8``.
106
111
  columns : list-like, optional (default: all columns)
107
112
  List of column names to import from the data source. Column names must
108
113
  exactly match the names in the data source, and will be returned in
109
114
  the order they occur in the data source. To avoid reading any columns,
110
- pass an empty list-like.
115
+ pass an empty list-like. If combined with ``where`` parameter, must
116
+ include columns referenced in the ``where`` expression or the data may
117
+ not be correctly read; the data source may return empty results or
118
+ raise an exception (behavior varies by driver).
111
119
  read_geometry : bool, optional (default: True)
112
120
  If True, will read geometry into a GeoSeries. If False, a Pandas DataFrame
113
121
  will be returned instead.
@@ -152,7 +160,12 @@ def read_dataframe(
152
160
  the starting index is driver and file specific (e.g. typically 0 for
153
161
  Shapefile and 1 for GeoPackage, but can still depend on the specific
154
162
  file). The performance of reading a large number of features usings FIDs
155
- is also driver specific.
163
+ is also driver specific and depends on the value of ``use_arrow``. The order
164
+ of the rows returned is undefined. If you would like to sort based on FID, use
165
+ ``fid_as_index=True`` to have the index of the GeoDataFrame returned set to the
166
+ FIDs of the features read. If ``use_arrow=True``, the number of FIDs is limited
167
+ to 4997 for drivers with 'OGRSQL' as default SQL dialect. To read a larger
168
+ number of FIDs, set ``user_arrow=False``.
156
169
  sql : str, optional (default: None)
157
170
  The SQL statement to execute. Look at the sql_dialect parameter for more
158
171
  information on the syntax to use for the query. When combined with other
@@ -318,6 +331,7 @@ def write_dataframe(
318
331
  promote_to_multi=None,
319
332
  nan_as_null=True,
320
333
  append=False,
334
+ use_arrow=None,
321
335
  dataset_metadata=None,
322
336
  layer_metadata=None,
323
337
  metadata=None,
@@ -335,16 +349,20 @@ def write_dataframe(
335
349
  all values will be converted to strings to be written to the
336
350
  output file, except None and np.nan, which will be set to NULL
337
351
  in the output file.
338
- path : str
339
- path to file
340
- layer :str, optional (default: None)
341
- layer name
352
+ path : str or io.BytesIO
353
+ path to output file on writeable file system or an io.BytesIO object to
354
+ allow writing to memory
355
+ NOTE: support for writing to memory is limited to specific drivers.
356
+ layer : str, optional (default: None)
357
+ layer name to create. If writing to memory and layer name is not
358
+ provided, it layer name will be set to a UUID4 value.
342
359
  driver : string, optional (default: None)
343
- The OGR format driver used to write the vector file. By default write_dataframe
344
- attempts to infer driver from path.
360
+ The OGR format driver used to write the vector file. By default attempts
361
+ to infer driver from path. Must be provided to write to memory.
345
362
  encoding : str, optional (default: None)
346
363
  If present, will be used as the encoding for writing string values to
347
- the file.
364
+ the file. Use with caution, only certain drivers support encodings
365
+ other than UTF-8.
348
366
  geometry_type : string, optional (default: None)
349
367
  By default, the geometry type of the layer will be inferred from the
350
368
  data, after applying the promote_to_multi logic. If the data only contains a
@@ -376,8 +394,17 @@ def write_dataframe(
376
394
  append : bool, optional (default: False)
377
395
  If True, the data source specified by path already exists, and the
378
396
  driver supports appending to an existing data source, will cause the
379
- data to be appended to the existing records in the data source.
397
+ data to be appended to the existing records in the data source. Not
398
+ supported for writing to in-memory files.
380
399
  NOTE: append support is limited to specific drivers and GDAL versions.
400
+ use_arrow : bool, optional (default: False)
401
+ Whether to use Arrow as the transfer mechanism of the data to write
402
+ from Python to GDAL (requires GDAL >= 3.8 and `pyarrow` to be
403
+ installed). When enabled, this provides a further speed-up.
404
+ Defaults to False, but this default can also be globally overridden
405
+ by setting the ``PYOGRIO_USE_ARROW=1`` environment variable.
406
+ Using Arrow does not support writing an object-dtype column with
407
+ mixed types.
381
408
  dataset_metadata : dict, optional (default: None)
382
409
  Metadata to be stored at the dataset level in the output file; limited
383
410
  to drivers that support writing metadata, such as GPKG, and silently
@@ -389,10 +416,10 @@ def write_dataframe(
389
416
  metadata : dict, optional (default: None)
390
417
  alias of layer_metadata
391
418
  dataset_options : dict, optional
392
- Dataset creation option (format specific) passed to OGR. Specify as
419
+ Dataset creation options (format specific) passed to OGR. Specify as
393
420
  a key-value dictionary.
394
421
  layer_options : dict, optional
395
- Layer creation option (format specific) passed to OGR. Specify as
422
+ Layer creation options (format specific) passed to OGR. Specify as
396
423
  a key-value dictionary.
397
424
  **kwargs
398
425
  Additional driver-specific dataset or layer creation options passed
@@ -412,13 +439,12 @@ def write_dataframe(
412
439
  import pandas as pd
413
440
  from pyproj.enums import WktVersion # if geopandas is available so is pyproj
414
441
 
415
- path = str(path)
416
-
417
442
  if not isinstance(df, pd.DataFrame):
418
443
  raise ValueError("'df' must be a DataFrame or GeoDataFrame")
419
444
 
420
- if driver is None:
421
- driver = detect_write_driver(path)
445
+ if use_arrow is None:
446
+ use_arrow = bool(int(os.environ.get("PYOGRIO_USE_ARROW", "0")))
447
+ path, driver = _get_write_path_driver(path, driver, append=append)
422
448
 
423
449
  geometry_columns = df.columns[df.dtypes == "geometry"]
424
450
  if len(geometry_columns) > 1:
@@ -456,7 +482,7 @@ def write_dataframe(
456
482
  # https://gdal.org/development/rfc/rfc56_millisecond_precision.html#core-changes
457
483
  # Convert each row offset to a signed multiple of 15m and add to GMT value
458
484
  gdal_offset_representation = tz_offset // pd.Timedelta("15m") + 100
459
- gdal_tz_offsets[name] = gdal_offset_representation
485
+ gdal_tz_offsets[name] = gdal_offset_representation.values
460
486
  else:
461
487
  values = col.values
462
488
  if isinstance(values, pd.api.extensions.ExtensionArray):
@@ -473,6 +499,9 @@ def write_dataframe(
473
499
  field_mask.append(None)
474
500
 
475
501
  # Determine geometry_type and/or promote_to_multi
502
+ if geometry_column is not None:
503
+ geometry_types_all = geometry.geom_type
504
+
476
505
  if geometry_column is not None and (
477
506
  geometry_type is None or promote_to_multi is None
478
507
  ):
@@ -482,9 +511,7 @@ def write_dataframe(
482
511
  # If there is data, infer layer geometry type + promote_to_multi
483
512
  if not df.empty:
484
513
  # None/Empty geometries sometimes report as Z incorrectly, so ignore them
485
- has_z_arr = geometry[
486
- (geometry != np.array(None)) & (~geometry.is_empty)
487
- ].has_z
514
+ has_z_arr = geometry[geometry.notna() & (~geometry.is_empty)].has_z
488
515
  has_z = has_z_arr.any()
489
516
  all_z = has_z_arr.all()
490
517
 
@@ -493,7 +520,7 @@ def write_dataframe(
493
520
  f"Mixed 2D and 3D coordinates are not supported by {driver}"
494
521
  )
495
522
 
496
- geometry_types = pd.Series(geometry.type.unique()).dropna().values
523
+ geometry_types = pd.Series(geometry_types_all.unique()).dropna().values
497
524
  if len(geometry_types) == 1:
498
525
  tmp_geometry_type = geometry_types[0]
499
526
  if promote_to_multi and tmp_geometry_type in (
@@ -537,10 +564,80 @@ def write_dataframe(
537
564
  # if possible use EPSG codes instead
538
565
  epsg = geometry.crs.to_epsg()
539
566
  if epsg:
540
- crs = f"EPSG:{epsg}"
567
+ crs = f"EPSG:{epsg}" # noqa: E231
541
568
  else:
542
569
  crs = geometry.crs.to_wkt(WktVersion.WKT1_GDAL)
543
570
 
571
+ if use_arrow:
572
+ import pyarrow as pa
573
+ from pyogrio.raw import write_arrow
574
+
575
+ if geometry_column is not None:
576
+ # Convert to multi type
577
+ if promote_to_multi:
578
+ import shapely
579
+
580
+ mask_points = geometry_types_all == "Point"
581
+ mask_linestrings = geometry_types_all == "LineString"
582
+ mask_polygons = geometry_types_all == "Polygon"
583
+
584
+ if mask_points.any():
585
+ geometry[mask_points] = shapely.multipoints(
586
+ np.atleast_2d(geometry[mask_points]), axis=0
587
+ )
588
+
589
+ if mask_linestrings.any():
590
+ geometry[mask_linestrings] = shapely.multilinestrings(
591
+ np.atleast_2d(geometry[mask_linestrings]), axis=0
592
+ )
593
+
594
+ if mask_polygons.any():
595
+ geometry[mask_polygons] = shapely.multipolygons(
596
+ np.atleast_2d(geometry[mask_polygons]), axis=0
597
+ )
598
+
599
+ geometry = to_wkb(geometry.values)
600
+ df = df.copy(deep=False)
601
+ # convert to plain DataFrame to avoid warning from geopandas about
602
+ # writing non-geometries to the geometry column
603
+ df = pd.DataFrame(df, copy=False)
604
+ df[geometry_column] = geometry
605
+
606
+ table = pa.Table.from_pandas(df, preserve_index=False)
607
+
608
+ if geometry_column is not None:
609
+ # ensure that the geometry column is binary (for all-null geometries,
610
+ # this could be a wrong type)
611
+ geom_field = table.schema.field(geometry_column)
612
+ if not (
613
+ pa.types.is_binary(geom_field.type)
614
+ or pa.types.is_large_binary(geom_field.type)
615
+ ):
616
+ table = table.set_column(
617
+ table.schema.get_field_index(geometry_column),
618
+ geom_field.with_type(pa.binary()),
619
+ table[geometry_column].cast(pa.binary()),
620
+ )
621
+
622
+ write_arrow(
623
+ table,
624
+ path,
625
+ layer=layer,
626
+ driver=driver,
627
+ geometry_name=geometry_column,
628
+ geometry_type=geometry_type,
629
+ crs=crs,
630
+ encoding=encoding,
631
+ append=append,
632
+ dataset_metadata=dataset_metadata,
633
+ layer_metadata=layer_metadata,
634
+ metadata=metadata,
635
+ dataset_options=dataset_options,
636
+ layer_options=layer_options,
637
+ **kwargs,
638
+ )
639
+ return
640
+
544
641
  # If there is geometry data, prepare it to be written
545
642
  if geometry_column is not None:
546
643
  geometry = to_wkb(geometry.values)
@@ -42,7 +42,7 @@
42
42
 
43
43
  <CARB> +proj=helmert +drx=0.000049 +dry=-0.001088 +drz=0.000664 +convention=position_vector
44
44
 
45
- <EURA> +proj=helmert +drx=-0.000083 +dry=0.000534 +drz=0.000750 +convention=position_vector
45
+ <EURA> +proj=helmert +drx=-0.000083 +dry=-0.000534 +drz=0.000750 +convention=position_vector
46
46
 
47
47
  <INDI> +proj=helmert +drx=0.001232 +dry=0.000303 +drz=0.001540 +convention=position_vector
48
48
 
@@ -75,7 +75,7 @@
75
75
 
76
76
  <CARB_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.000049 +dry=-0.001088 +drz=0.000664 +convention=position_vector
77
77
 
78
- <EURA_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000083 +dry=0.000534 +drz=0.000750 +convention=position_vector
78
+ <EURA_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000083 +dry=-0.000534 +drz=0.000750 +convention=position_vector
79
79
 
80
80
  <INDI_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.001232 +dry=0.000303 +drz=0.001540 +convention=position_vector
81
81
 
@@ -1,8 +1,8 @@
1
1
  # Version checking for PROJ
2
2
 
3
- set (PACKAGE_VERSION "9.3.0")
3
+ set (PACKAGE_VERSION "9.4.0")
4
4
  set (PACKAGE_VERSION_MAJOR "9")
5
- set (PACKAGE_VERSION_MINOR "3")
5
+ set (PACKAGE_VERSION_MINOR "4")
6
6
  set (PACKAGE_VERSION_PATCH "0")
7
7
 
8
8
  # These variable definitions parallel those in PROJ's
@@ -27,7 +27,8 @@ if("TRUE")
27
27
  endif()
28
28
  cmake_policy(POP)
29
29
 
30
- find_dependency(unofficial-sqlite3 CONFIG)
30
+ find_dependency(SQLite3)
31
+
31
32
  if(DEFINED PROJ_CONFIG_FIND_TIFF_DEP)
32
33
  find_dependency(TIFF)
33
34
  endif()
@@ -3,11 +3,11 @@
3
3
  if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.8)
4
4
  message(FATAL_ERROR "CMake >= 2.8.0 required")
5
5
  endif()
6
- if(CMAKE_VERSION VERSION_LESS "2.8.3")
7
- message(FATAL_ERROR "CMake >= 2.8.3 required")
6
+ if(CMAKE_VERSION VERSION_LESS "2.8.12")
7
+ message(FATAL_ERROR "CMake >= 2.8.12 required")
8
8
  endif()
9
9
  cmake_policy(PUSH)
10
- cmake_policy(VERSION 2.8.3...3.25)
10
+ cmake_policy(VERSION 2.8.12...3.27)
11
11
  #----------------------------------------------------------------
12
12
  # Generated CMake target import file.
13
13
  #----------------------------------------------------------------
@@ -60,13 +60,9 @@ add_library(PROJ::proj STATIC IMPORTED)
60
60
  set_target_properties(PROJ::proj PROPERTIES
61
61
  INTERFACE_COMPILE_DEFINITIONS "PROJ_DLL="
62
62
  INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
63
- INTERFACE_LINK_LIBRARIES "\$<LINK_ONLY:-lm>;\$<LINK_ONLY:-ldl>;\$<LINK_ONLY:unofficial::sqlite3::sqlite3>;\$<LINK_ONLY:>;\$<LINK_ONLY:TIFF::TIFF>;\$<LINK_ONLY:CURL::libcurl>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:ws2_32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:wldap32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:advapi32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:crypt32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:normaliz>>"
63
+ INTERFACE_LINK_LIBRARIES "\$<LINK_ONLY:-lm>;\$<LINK_ONLY:-ldl>;\$<LINK_ONLY:SQLite::SQLite3>;\$<LINK_ONLY:>;\$<LINK_ONLY:TIFF::TIFF>;\$<LINK_ONLY:CURL::libcurl>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:ws2_32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:wldap32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:advapi32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:crypt32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:normaliz>>"
64
64
  )
65
65
 
66
- if(CMAKE_VERSION VERSION_LESS 2.8.12)
67
- message(FATAL_ERROR "This file relies on consumers using CMake 2.8.12 or greater.")
68
- endif()
69
-
70
66
  # Load information for each installed configuration.
71
67
  file(GLOB _cmake_config_files "${CMAKE_CURRENT_LIST_DIR}/proj-targets-*.cmake")
72
68
  foreach(_cmake_config_file IN LISTS _cmake_config_files)
@@ -80,9 +76,12 @@ set(_IMPORT_PREFIX)
80
76
 
81
77
  # Loop over all imported files and verify that they actually exist
82
78
  foreach(_cmake_target IN LISTS _cmake_import_check_targets)
83
- foreach(_cmake_file IN LISTS "_cmake_import_check_files_for_${_cmake_target}")
84
- if(NOT EXISTS "${_cmake_file}")
85
- message(FATAL_ERROR "The imported target \"${_cmake_target}\" references the file
79
+ if(CMAKE_VERSION VERSION_LESS "3.28"
80
+ OR NOT DEFINED _cmake_import_check_xcframework_for_${_cmake_target}
81
+ OR NOT IS_DIRECTORY "${_cmake_import_check_xcframework_for_${_cmake_target}}")
82
+ foreach(_cmake_file IN LISTS "_cmake_import_check_files_for_${_cmake_target}")
83
+ if(NOT EXISTS "${_cmake_file}")
84
+ message(FATAL_ERROR "The imported target \"${_cmake_target}\" references the file
86
85
  \"${_cmake_file}\"
87
86
  but this file does not exist. Possible reasons include:
88
87
  * The file was deleted, renamed, or moved to another location.
@@ -91,8 +90,9 @@ but this file does not exist. Possible reasons include:
91
90
  \"${CMAKE_CURRENT_LIST_FILE}\"
92
91
  but not all the files it references.
93
92
  ")
94
- endif()
95
- endforeach()
93
+ endif()
94
+ endforeach()
95
+ endif()
96
96
  unset(_cmake_file)
97
97
  unset("_cmake_import_check_files_for_${_cmake_target}")
98
98
  endforeach()
pyogrio/proj_data/proj.db CHANGED
Binary file
@@ -3,11 +3,11 @@
3
3
  if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.8)
4
4
  message(FATAL_ERROR "CMake >= 2.8.0 required")
5
5
  endif()
6
- if(CMAKE_VERSION VERSION_LESS "2.8.3")
7
- message(FATAL_ERROR "CMake >= 2.8.3 required")
6
+ if(CMAKE_VERSION VERSION_LESS "2.8.12")
7
+ message(FATAL_ERROR "CMake >= 2.8.12 required")
8
8
  endif()
9
9
  cmake_policy(PUSH)
10
- cmake_policy(VERSION 2.8.3...3.25)
10
+ cmake_policy(VERSION 2.8.12...3.27)
11
11
  #----------------------------------------------------------------
12
12
  # Generated CMake target import file.
13
13
  #----------------------------------------------------------------
@@ -60,13 +60,9 @@ add_library(PROJ4::proj STATIC IMPORTED)
60
60
  set_target_properties(PROJ4::proj PROPERTIES
61
61
  INTERFACE_COMPILE_DEFINITIONS "PROJ_DLL="
62
62
  INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
63
- INTERFACE_LINK_LIBRARIES "\$<LINK_ONLY:-lm>;\$<LINK_ONLY:-ldl>;\$<LINK_ONLY:unofficial::sqlite3::sqlite3>;\$<LINK_ONLY:>;\$<LINK_ONLY:TIFF::TIFF>;\$<LINK_ONLY:CURL::libcurl>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:ws2_32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:wldap32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:advapi32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:crypt32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:normaliz>>"
63
+ INTERFACE_LINK_LIBRARIES "\$<LINK_ONLY:-lm>;\$<LINK_ONLY:-ldl>;\$<LINK_ONLY:SQLite::SQLite3>;\$<LINK_ONLY:>;\$<LINK_ONLY:TIFF::TIFF>;\$<LINK_ONLY:CURL::libcurl>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:ws2_32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:wldap32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:advapi32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:crypt32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:normaliz>>"
64
64
  )
65
65
 
66
- if(CMAKE_VERSION VERSION_LESS 2.8.12)
67
- message(FATAL_ERROR "This file relies on consumers using CMake 2.8.12 or greater.")
68
- endif()
69
-
70
66
  # Load information for each installed configuration.
71
67
  file(GLOB _cmake_config_files "${CMAKE_CURRENT_LIST_DIR}/proj4-targets-*.cmake")
72
68
  foreach(_cmake_config_file IN LISTS _cmake_config_files)
@@ -80,9 +76,12 @@ set(_IMPORT_PREFIX)
80
76
 
81
77
  # Loop over all imported files and verify that they actually exist
82
78
  foreach(_cmake_target IN LISTS _cmake_import_check_targets)
83
- foreach(_cmake_file IN LISTS "_cmake_import_check_files_for_${_cmake_target}")
84
- if(NOT EXISTS "${_cmake_file}")
85
- message(FATAL_ERROR "The imported target \"${_cmake_target}\" references the file
79
+ if(CMAKE_VERSION VERSION_LESS "3.28"
80
+ OR NOT DEFINED _cmake_import_check_xcframework_for_${_cmake_target}
81
+ OR NOT IS_DIRECTORY "${_cmake_import_check_xcframework_for_${_cmake_target}}")
82
+ foreach(_cmake_file IN LISTS "_cmake_import_check_files_for_${_cmake_target}")
83
+ if(NOT EXISTS "${_cmake_file}")
84
+ message(FATAL_ERROR "The imported target \"${_cmake_target}\" references the file
86
85
  \"${_cmake_file}\"
87
86
  but this file does not exist. Possible reasons include:
88
87
  * The file was deleted, renamed, or moved to another location.
@@ -91,8 +90,9 @@ but this file does not exist. Possible reasons include:
91
90
  \"${CMAKE_CURRENT_LIST_FILE}\"
92
91
  but not all the files it references.
93
92
  ")
94
- endif()
95
- endforeach()
93
+ endif()
94
+ endforeach()
95
+ endif()
96
96
  unset(_cmake_file)
97
97
  unset("_cmake_import_check_files_for_${_cmake_target}")
98
98
  endforeach()
@@ -3,13 +3,13 @@
3
3
  "spdxVersion": "SPDX-2.2",
4
4
  "dataLicense": "CC0-1.0",
5
5
  "SPDXID": "SPDXRef-DOCUMENT",
6
- "documentNamespace": "https://spdx.org/spdxdocs/proj-arm64-osx-dynamic-release-9.3.0#1-777769c9-27ed-4376-95e9-2d8262911175",
7
- "name": "proj:arm64-osx-dynamic-release@9.3.0#1 862df2dd95e4409e4bce921415a7369b8224cb98a16d94c501311aa8b7aeee25",
6
+ "documentNamespace": "https://spdx.org/spdxdocs/proj-arm64-osx-dynamic-release-9.4.0-9491cde3-4c6b-4488-85dd-f6d39095c75d",
7
+ "name": "proj:arm64-osx-dynamic-release@9.4.0 ae315e03ec207af28b043c414cbeaeef6f4674e495ebabcedb1050d41ed50047",
8
8
  "creationInfo": {
9
9
  "creators": [
10
- "Tool: vcpkg-ac02a9f660977426b8ec6392919fbb1d51b10998"
10
+ "Tool: vcpkg-710a3116bbd615864eef5f9010af178034cb9b44"
11
11
  ],
12
- "created": "2023-10-20T03:16:33Z"
12
+ "created": "2024-04-17T23:25:17Z"
13
13
  },
14
14
  "relationships": [
15
15
  {
@@ -47,11 +47,6 @@
47
47
  "relationshipType": "CONTAINS",
48
48
  "relatedSpdxElement": "SPDXRef-file-5"
49
49
  },
50
- {
51
- "spdxElementId": "SPDXRef-port",
52
- "relationshipType": "CONTAINS",
53
- "relatedSpdxElement": "SPDXRef-file-6"
54
- },
55
50
  {
56
51
  "spdxElementId": "SPDXRef-binary",
57
52
  "relationshipType": "GENERATED_FROM",
@@ -86,19 +81,14 @@
86
81
  "spdxElementId": "SPDXRef-file-5",
87
82
  "relationshipType": "CONTAINED_BY",
88
83
  "relatedSpdxElement": "SPDXRef-port"
89
- },
90
- {
91
- "spdxElementId": "SPDXRef-file-6",
92
- "relationshipType": "CONTAINED_BY",
93
- "relatedSpdxElement": "SPDXRef-port"
94
84
  }
95
85
  ],
96
86
  "packages": [
97
87
  {
98
88
  "name": "proj",
99
89
  "SPDXID": "SPDXRef-port",
100
- "versionInfo": "9.3.0#1",
101
- "downloadLocation": "git+https://github.com/Microsoft/vcpkg@6e31164b906c96903b8352e6a9211ae019672ac4",
90
+ "versionInfo": "9.4.0",
91
+ "downloadLocation": "git+https://github.com/Microsoft/vcpkg@62e9ace469641b907291184ebc7e76d96f629881",
102
92
  "homepage": "https://proj.org/",
103
93
  "licenseConcluded": "MIT",
104
94
  "licenseDeclared": "NOASSERTION",
@@ -109,7 +99,7 @@
109
99
  {
110
100
  "name": "proj:arm64-osx-dynamic-release",
111
101
  "SPDXID": "SPDXRef-binary",
112
- "versionInfo": "862df2dd95e4409e4bce921415a7369b8224cb98a16d94c501311aa8b7aeee25",
102
+ "versionInfo": "ae315e03ec207af28b043c414cbeaeef6f4674e495ebabcedb1050d41ed50047",
113
103
  "downloadLocation": "NONE",
114
104
  "licenseConcluded": "MIT",
115
105
  "licenseDeclared": "NOASSERTION",
@@ -119,21 +109,21 @@
119
109
  {
120
110
  "SPDXID": "SPDXRef-resource-1",
121
111
  "name": "OSGeo/PROJ",
122
- "downloadLocation": "git+https://github.com/OSGeo/PROJ@9.3.0",
112
+ "downloadLocation": "git+https://github.com/OSGeo/PROJ@9.4.0",
123
113
  "licenseConcluded": "NOASSERTION",
124
114
  "licenseDeclared": "NOASSERTION",
125
115
  "copyrightText": "NOASSERTION",
126
116
  "checksums": [
127
117
  {
128
118
  "algorithm": "SHA512",
129
- "checksumValue": "ee8170780c70e09efa4bc3fcf6ee9a2c15554a05a8562617fc5e9698fb33c6c0af380dd0de836db91955eb35623ded1fec67c6afe5fd3b692fcf4f4b3e4f0658"
119
+ "checksumValue": "5bc53723a81d9950599d6c47a837de5e9052aa56f943951e3ad0911cbeb71585bac648f37b9b626f32bb5d0b481ce5aef9be0833910e53b4b015b573808b8981"
130
120
  }
131
121
  ]
132
122
  }
133
123
  ],
134
124
  "files": [
135
125
  {
136
- "fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/6e31164b906c96903b8352e6a9211ae019672ac4/usage",
126
+ "fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/62e9ace469641b907291184ebc7e76d96f629881/usage",
137
127
  "SPDXID": "SPDXRef-file-0",
138
128
  "checksums": [
139
129
  {
@@ -145,68 +135,56 @@
145
135
  "copyrightText": "NOASSERTION"
146
136
  },
147
137
  {
148
- "fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/6e31164b906c96903b8352e6a9211ae019672ac4/portfile.cmake",
138
+ "fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/62e9ace469641b907291184ebc7e76d96f629881/portfile.cmake",
149
139
  "SPDXID": "SPDXRef-file-1",
150
140
  "checksums": [
151
141
  {
152
142
  "algorithm": "SHA256",
153
- "checksumValue": "2d5a16a458eb429dfffb41c4e40c1815bfe58d2cdecff06ab5417fddd0cc82a5"
143
+ "checksumValue": "58b4048cfc81891c1e32e41bc00b52ea7ae2821bd577b46ab63d2c962ef8747d"
154
144
  }
155
145
  ],
156
146
  "licenseConcluded": "NOASSERTION",
157
147
  "copyrightText": "NOASSERTION"
158
148
  },
159
149
  {
160
- "fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/6e31164b906c96903b8352e6a9211ae019672ac4/fix-uwp.patch",
150
+ "fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/62e9ace469641b907291184ebc7e76d96f629881/vcpkg.json",
161
151
  "SPDXID": "SPDXRef-file-2",
162
152
  "checksums": [
163
153
  {
164
154
  "algorithm": "SHA256",
165
- "checksumValue": "8ca726f9cca8465fb5efdcff7f2dc0c9247fa0782f0bd1d1384d7912afb7c3b8"
155
+ "checksumValue": "d31d1d3beb5ef0890e4b5db1ee5b72a925a58aa53bfaee688d4b5af1cea2bba4"
166
156
  }
167
157
  ],
168
158
  "licenseConcluded": "NOASSERTION",
169
159
  "copyrightText": "NOASSERTION"
170
160
  },
171
161
  {
172
- "fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/6e31164b906c96903b8352e6a9211ae019672ac4/vcpkg.json",
162
+ "fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/62e9ace469641b907291184ebc7e76d96f629881/remove_toolset_restriction.patch",
173
163
  "SPDXID": "SPDXRef-file-3",
174
164
  "checksums": [
175
165
  {
176
166
  "algorithm": "SHA256",
177
- "checksumValue": "34915344411521c3bf421a755e44461aecfbb6567f3e0f9b619ea0ea3eb0ab89"
167
+ "checksumValue": "25c1c986673bd539f5ec920684a08b38d0d37d9e24b6793e5b79dbd717bde04e"
178
168
  }
179
169
  ],
180
170
  "licenseConcluded": "NOASSERTION",
181
171
  "copyrightText": "NOASSERTION"
182
172
  },
183
173
  {
184
- "fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/6e31164b906c96903b8352e6a9211ae019672ac4/remove_toolset_restriction.patch",
174
+ "fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/62e9ace469641b907291184ebc7e76d96f629881/fix-proj4-targets-cmake.patch",
185
175
  "SPDXID": "SPDXRef-file-4",
186
176
  "checksums": [
187
177
  {
188
178
  "algorithm": "SHA256",
189
- "checksumValue": "25c1c986673bd539f5ec920684a08b38d0d37d9e24b6793e5b79dbd717bde04e"
179
+ "checksumValue": "d76e1d419d3367dda3381fd11a637f3465bc838d611fa8ceaca20048c1b3cd6e"
190
180
  }
191
181
  ],
192
182
  "licenseConcluded": "NOASSERTION",
193
183
  "copyrightText": "NOASSERTION"
194
184
  },
195
185
  {
196
- "fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/6e31164b906c96903b8352e6a9211ae019672ac4/fix-proj4-targets-cmake.patch",
186
+ "fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/62e9ace469641b907291184ebc7e76d96f629881/fix-win-output-name.patch",
197
187
  "SPDXID": "SPDXRef-file-5",
198
- "checksums": [
199
- {
200
- "algorithm": "SHA256",
201
- "checksumValue": "0bcc51d69830a495a955cb97a8a1f91d9cec0410cbd8198f82f4fe60169d696f"
202
- }
203
- ],
204
- "licenseConcluded": "NOASSERTION",
205
- "copyrightText": "NOASSERTION"
206
- },
207
- {
208
- "fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/6e31164b906c96903b8352e6a9211ae019672ac4/fix-win-output-name.patch",
209
- "SPDXID": "SPDXRef-file-6",
210
188
  "checksums": [
211
189
  {
212
190
  "algorithm": "SHA256",
@@ -1,28 +1,27 @@
1
- cmake 3.27.6
2
- curl ea186e8695ba6eedee2837695591e2b753c8c24695bcfa809e1f281b2a18ef8b
1
+ cmake 3.29.0
2
+ curl 05c99c9ad5e9f7ec5c7b136500b2d0acab2eda1360610a899b8cbae8eaff4b63
3
3
  features core;net;tiff
4
- fix-proj4-targets-cmake.patch 0bcc51d69830a495a955cb97a8a1f91d9cec0410cbd8198f82f4fe60169d696f
5
- fix-uwp.patch 8ca726f9cca8465fb5efdcff7f2dc0c9247fa0782f0bd1d1384d7912afb7c3b8
4
+ fix-proj4-targets-cmake.patch d76e1d419d3367dda3381fd11a637f3465bc838d611fa8ceaca20048c1b3cd6e
6
5
  fix-win-output-name.patch 706e536cfe9a90c1b071ab5b00932fa96bb35c67fcb0f96c0fc4feb7c0b44011
7
- nlohmann-json 9f152d0e3832d9ca4fb9fb4703d644fb97a063f79904954a5cd66ed4984a7786
8
- portfile.cmake 2d5a16a458eb429dfffb41c4e40c1815bfe58d2cdecff06ab5417fddd0cc82a5
9
- ports.cmake 5a8e00cedff0c898b1f90f7d129329d0288801bc9056562b039698caf31ff3f3
6
+ nlohmann-json 4d1f1229ac12410f5f80e8c03b9be0fb146a56d740a36645f2d9f99c1468b729
7
+ portfile.cmake 58b4048cfc81891c1e32e41bc00b52ea7ae2821bd577b46ab63d2c962ef8747d
8
+ ports.cmake 0500e9e2422fe0084c99bdd0c9de4c7069b76da14c8b58228a7e95ebac43058a
10
9
  post_build_checks 2
11
10
  remove_toolset_restriction.patch 25c1c986673bd539f5ec920684a08b38d0d37d9e24b6793e5b79dbd717bde04e
12
- sqlite3 0463bef234d455b594859c3ce8ec8e2db12e071207ee85a2fa092888f544332e
13
- sqlite3 69a7901f9cd5292014d93a19dbea35e88f4e323df7feb5f0557fa1dd104c0d55
14
- tiff 135c5e5c3bca45db18dbadc770fdf18eda9354e4c99d18de5933e09cf32c4ba4
11
+ sqlite3 039c78d759f1403e654458b77a537456de993a0ee68031821c0189f33ac5e414
12
+ sqlite3 94ead4c0f2c47e5b2b7e2a37b8501f12836b4c997281759b6a08a1e09cc7a8b8
13
+ tiff fa3effa93a67fbf00f177e8e5da39f1250f4908e485da9becfa23c404f24b445
15
14
  triplet arm64-osx-dynamic-release
16
15
  triplet_abi 7d6855d77bd4c445eb17b139dd8ddd74f95a06d0ea1d079ccef9256df98cd7af-a654e5c1a635cb784f3168426c422995eefe31912588726942497566a5bca495-c1d30f72952462506466f7d6fd75f7438b8a6a10
17
16
  usage 26169363c27e71a44cba9d703b22bbd13c191ab5e2d0612b3dd35c735c971fe6
18
- vcpkg-cmake 369aeb5bcbd069d8bd5f46309836b7004466716992671bbabb2f11bc006e58c8
19
- vcpkg-cmake-config d246cfc0b12b5fd2e6832469c467779d79720b9e7da522dcfdd8ab93596630cd
20
- vcpkg.json 34915344411521c3bf421a755e44461aecfbb6567f3e0f9b619ea0ea3eb0ab89
17
+ vcpkg-cmake 0a2d6d18e8953e1c2acd0af09144c74662331c1f06445428f03aa23ab3e93b09
18
+ vcpkg-cmake-config 95ba0954962e033d18bfe2400cbb5135be197460d56cc987fae1b3bc4e631a00
19
+ vcpkg.json d31d1d3beb5ef0890e4b5db1ee5b72a925a58aa53bfaee688d4b5af1cea2bba4
21
20
  vcpkg_check_features 943b217e0968d64cf2cb9c272608e6a0b497377e792034f819809a79e1502c2b
22
21
  vcpkg_copy_pdbs d57e4f196c82dc562a9968c6155073094513c31e2de475694143d3aa47954b1c
23
22
  vcpkg_copy_tools 3d45ff761bddbabe8923b52330168dc3abd295fa469d3f2e47cb14dce85332d5
24
- vcpkg_fixup_pkgconfig 588d833ff057d3ca99c14616c7ecfb5948b5e2a9e4fc02517dceb8b803473457
25
- vcpkg_from_git 8f27bff0d01c6d15a3e691758df52bfbb0b1b929da45c4ebba02ef76b54b1881
23
+ vcpkg_fixup_pkgconfig 904e67c46ecbb67379911bc1d7222855c0cbfcf1129bf47783858bcf0cc44970
24
+ vcpkg_from_git 96ed81968f76354c00096dd8cd4e63c6a235fa969334a11ab18d11c0c512ff58
26
25
  vcpkg_from_github b743742296a114ea1b18ae99672e02f142c4eb2bef7f57d36c038bedbfb0502f
27
26
  vcpkg_list f5de3ebcbc40a4db90622ade9aca918e2cf404dc0d91342fcde457d730e6fa29
28
27
  vcpkg_replace_string d43c8699ce27e25d47367c970d1c546f6bc36b6df8fb0be0c3986eb5830bd4f1