You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+15-1Lines changed: 15 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -246,6 +246,14 @@ The package configuration is marked as **minimal**. That means you don't have to
246
246
247
247
Drivers included PROJ, GEOS, and more than 200 other drivers.
248
248
249
+
The native dependency definition is shared across platforms through the manifest bundle in `shared/`:
250
+
251
+
-`shared/vcpkg.json`
252
+
-`shared/vcpkg-configuration.json`
253
+
-`shared/vcpkg-lock.json`
254
+
255
+
Unix, macOS, and Windows build wrappers all consume that same manifest authority instead of keeping separate package lists per platform. That keeps driver selection and dependency versions aligned between local builds and CI.
256
+
249
257
To view the complete list of drivers, see: [tests/gdal-formats/supported_drivers.md](tests/gdal-formats/supported_drivers.md).
250
258
251
259
@@ -259,6 +267,12 @@ Each runtime has to be build separately, but this can be done concurrently as th
259
267
260
268
To make everything work smoothly, each configuration targets the same drivers and their versions, respectively.
261
269
270
+
CI now layers cache reuse on top of those per-platform build contexts:
271
+
272
+
- Linux reuses Docker Buildx cache scopes per architecture.
273
+
- macOS restores both VCPKG archives and build outputs, then reuses build-state markers on cache-warm runs.
274
+
- Windows restores VCPKG archives separately from build outputs so cache-warm runs can reuse VCPKG, PROJ, and GDAL artifacts without recompiling from scratch.
275
+
262
276
To start building for a specific runtime, see the **README.md** in a respective directory.
263
277
264
278
## FAQ
@@ -331,4 +345,4 @@ As the maintainer of this repository, I would like to express my heartfelt thank
Copy file name to clipboardExpand all lines: osx/README.md
+10-2Lines changed: 10 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,7 +18,13 @@ There two types of builds **arm64** (Apple Silicon M1 & M2 chipsets) and **x86_6
18
18
This build was compiled using a `ubuntu-24.04-arm` runner (arm64).
19
19
20
20
### **2. Check for required libraries**
21
-
**VPKG** will install all requirements defined in `shared/GdalCore.opt` file. Latest versions, no collisions with other dynamic libraries.
21
+
**VCPKG** will install all requirements defined in the shared manifest bundle and `../shared/GdalCore.opt`. Latest versions, no collisions with other dynamic libraries.
22
+
23
+
The macOS build consumes the same manifest authority as the other platforms:
24
+
25
+
-`../shared/vcpkg.json`
26
+
-`../shared/vcpkg-configuration.json`
27
+
-`../shared/vcpkg-lock.json`
22
28
23
29
### **3. Compiling**
24
30
@@ -45,6 +51,8 @@ make -f publish-makefile pack BUILD_ARCH=arm64
45
51
make -f test-makefile test BUILD_ARCH=arm64
46
52
```
47
53
54
+
CI cache-warm runs restore the macOS VCPKG archive cache and build outputs per runner/architecture, then reuse build-state markers when the manifest inputs still match.
55
+
48
56
### **How to check dependencies:**
49
57
Run tests from the latest step. If everything loads correctly - you're good.
50
58
@@ -87,4 +95,4 @@ Usage of this library in newer macOS versions with enabled Gatekeeper requires a
87
95
- You can build the library and sign it with your own Apple Developer ID. This way, you can ensure that the libraries are trusted by macOS.
88
96
- To do this, clone the repository and follow the build instructions. After building, but before creating a nuget package, use the `codesign`command to sign the libraries with your Developer ID.
89
97
90
-
Note: The manual approach in your build script is generally safer than advising end users to bypass security measures.
98
+
Note: The manual approach in your build script is generally safer than advising end users to bypass security measures.
Copy file name to clipboardExpand all lines: win/README.md
+9-1Lines changed: 9 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,6 +17,12 @@ In this folder contains Powershell and NMake scripts for building Windows runtim
17
17
18
18
2.[.NET Core SDK](https://dotnet.microsoft.com/en-us/download/dotnet/7.0) and [Nuget.exe](https://docs.microsoft.com/en-us/nuget/install-nuget-client-tools) - for building and publishing packages respectively.
19
19
20
+
The Windows build uses the same shared VCPKG manifest authority as Unix and macOS:
21
+
22
+
-`../shared/vcpkg.json`
23
+
-`../shared/vcpkg-configuration.json`
24
+
-`../shared/vcpkg-lock.json`
25
+
20
26
### Building: (in PowerShell)
21
27
22
28
1. Call `./install.ps1` to install all required packages and tools. <br/>
@@ -36,6 +42,8 @@ Possible options:
36
42
```
37
43
This will install all required VCPKG packages and tools, build GDAL and PROJ, and build runtime and core packages.
38
44
45
+
On CI, cache-warm runs restore the VCPKG archive cache separately from the Windows build-output cache. When the manifest/build inputs match, the build-state stamps allow the workflow to reuse cached VCPKG, PROJ, and GDAL outputs instead of recompiling them from scratch.
46
+
39
47
2. Call `./test.ps1` to test runtime and core packages. <br/>
40
48
If everything runs smoothly, you can use a local nuget feed to include packages in your project.
41
49
@@ -44,4 +52,4 @@ Use **dumpbin** or [**dependency walker**](https://www.dependencywalker.com/) to
0 commit comments