diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml
index 23283250..93e70bb4 100644
--- a/.github/workflows/macos.yml
+++ b/.github/workflows/macos.yml
@@ -12,6 +12,9 @@ on:
is-version-branch:
type: boolean
required: true
+ skip:
+ type: boolean
+ required: true
env:
DOTNET_INSTALL_DIR: ${{ github.workspace }}/.dotnet/
@@ -19,6 +22,7 @@ env:
jobs:
BuildNugetPackages-MacOS:
+ if: ${{ ! inputs.skip }}
strategy:
matrix:
os: [macos-14, macos-13]
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index f63d5752..b4d5715d 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -26,17 +26,36 @@ jobs:
is-pre-release: ${{ steps.set.outputs.is_pre_release }}
dotnet-version: ${{ steps.set.outputs.dotnet_version }}
is-version-branch: ${{ steps.set.outputs.is_version_branch }}
+ skip-unix: ${{ steps.set.outputs.skip_unix }}
+ skip-windows: ${{ steps.set.outputs.skip_windows }}
+ skip-osx: ${{ steps.set.outputs.skip_osx }}
steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+ with:
+ ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
+
- name: Set env for the reusable workflows
id: set
run: |
- echo "is_pre_release=$IS_PRE_RELEASE" >> $GITHUB_OUTPUT
+ echo "is_pre_release=$IS_PRE_RELEASE" >> $GITHUB_OUTPUT
echo "dotnet_version=$DOTNET_VERSION" >> $GITHUB_OUTPUT
if [[ ${{ github.ref }} =~ ^refs/heads/v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
echo "is_version_branch=true" >> $GITHUB_OUTPUT
else
echo "is_version_branch=false" >> $GITHUB_OUTPUT
- fi
+ fi;
+ # Skip build for specific OS
+ git log -1 --pretty=format:"%B" | cat
+ for os in unix windows osx; do
+ if git log -1 --pretty=format:"%B" | grep -Eq "\[(skip|no) $os\]|\[$os skip\]"; then
+ echo "skip_$os=true" >> $GITHUB_OUTPUT
+ echo "Skip build for $os"
+ else
+ echo "skip_$os=false" >> $GITHUB_OUTPUT
+ echo "Building for $os"
+ fi
+ done
LinuxBuild:
needs: env-context
@@ -46,6 +65,7 @@ jobs:
is-pre-release: ${{ fromJSON(needs.env-context.outputs.is-pre-release) }}
dotnet-version: ${{ needs.env-context.outputs.dotnet-version }}
is-version-branch: ${{ fromJSON(needs.env-context.outputs.is-version-branch) }}
+ skip: ${{ fromJSON(needs.env-context.outputs.skip-unix) }}
WindowsBuild:
needs: env-context
@@ -55,6 +75,7 @@ jobs:
is-pre-release: ${{ fromJSON(needs.env-context.outputs.is-pre-release) }}
dotnet-version: ${{ needs.env-context.outputs.dotnet-version }}
is-version-branch: ${{ fromJSON(needs.env-context.outputs.is-version-branch) }}
+ skip: ${{ fromJSON(needs.env-context.outputs.skip-windows) }}
MacOSBuild:
needs: env-context
@@ -64,6 +85,7 @@ jobs:
is-pre-release: ${{ fromJSON(needs.env-context.outputs.is-pre-release) }}
dotnet-version: ${{ needs.env-context.outputs.dotnet-version }}
is-version-branch: ${{ fromJSON(needs.env-context.outputs.is-version-branch) }}
+ skip: ${{ fromJSON(needs.env-context.outputs.skip-osx) }}
TestAndPushPackages:
needs: [env-context, LinuxBuild, WindowsBuild, MacOSBuild]
diff --git a/.github/workflows/unix.yml b/.github/workflows/unix.yml
index d30f3b16..19f58d79 100644
--- a/.github/workflows/unix.yml
+++ b/.github/workflows/unix.yml
@@ -12,6 +12,9 @@ on:
is-version-branch:
type: boolean
required: true
+ skip:
+ type: boolean
+ required: true
env:
DOCKER_REGISTRY: ghcr.io/maxrev-dev
@@ -22,6 +25,7 @@ permissions:
jobs:
BuildNugetPackages-Linux:
+ if: ${{ ! inputs.skip }}
strategy:
matrix:
include:
diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml
index b0026c50..d003e65b 100644
--- a/.github/workflows/windows.yml
+++ b/.github/workflows/windows.yml
@@ -12,6 +12,9 @@ on:
is-version-branch:
type: boolean
required: true
+ skip:
+ type: boolean
+ required: true
env:
DOTNET_INSTALL_DIR: ${{ github.workspace }}/.dotnet
@@ -19,6 +22,7 @@ env:
jobs:
BuildNugetPackages-Windows:
+ if: ${{ ! inputs.skip }}
strategy:
matrix:
os: [windows-latest]
diff --git a/osx/gdal-makefile b/osx/gdal-makefile
index 8ed08690..825c264c 100644
--- a/osx/gdal-makefile
+++ b/osx/gdal-makefile
@@ -99,8 +99,7 @@ configure_hdf:
@cd $(HDF_CMAKE_TMP) && cmake $(HDF_SOURCE) \
-DCMAKE_INSTALL_PREFIX=$(BUILD_ROOT)/hdf-build -Wno-dev \
-DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_C_FLAGS="-fPIC" \
- -DCMAKE_CXX_FLAGS="-fPIC" \
+ -DCMAKE_C_FLAGS="-fPIC -w" \
-DCMAKE_PREFIX_PATH=$(VCPKG_INSTALLED_DYNAMIC) \
-DCMAKE_OSX_DEPLOYMENT_TARGET=$(OSX_DEPLOYMENT_TARGET) || exit 1
@@ -124,8 +123,8 @@ configure_gdal:
@cd $(GDAL_CMAKE_TMP) && cmake $(GDAL_ROOT) \
-DCMAKE_INSTALL_PREFIX=$(BUILD_ROOT)/gdal-build -Wno-dev \
-DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_C_FLAGS="-fPIC" \
- -DCMAKE_CXX_FLAGS="-fPIC" \
+ -DCMAKE_C_FLAGS="-fPIC -w" \
+ -DCMAKE_CXX_FLAGS="-fPIC -w" \
-DGDAL_USE_DEFLATE=OFF \
-DGDAL_USE_ZLIB_INTERNAL=ON \
-DGDAL_CSHARP_APPS=OFF \
@@ -166,8 +165,8 @@ configure_proj:
cmake $(PROJ_ROOT) \
-DCMAKE_BUILD_TYPE=Release -Wno-dev \
-DCMAKE_MAKE_PROGRAM=make \
- -DCMAKE_C_FLAGS="-Wno-deprecated-declarations" \
- -DCMAKE_CXX_FLAGS="-Wno-deprecated-declarations" \
+ -DCMAKE_C_FLAGS="-w" \
+ -DCMAKE_CXX_FLAGS="-w" \
-DCMAKE_INSTALL_PREFIX=$(PROJ_BUILD) \
-DBUILD_TESTING=OFF \
-DBUILD_SHARED_LIBS=ON \
diff --git a/tests/MaxRev.Gdal.Core.Tests.AzureFunctions/MaxRev.Gdal.Core.Tests.AzureFunctions.csproj b/tests/MaxRev.Gdal.Core.Tests.AzureFunctions/MaxRev.Gdal.Core.Tests.AzureFunctions.csproj
index 06bd57e0..634ccf59 100644
--- a/tests/MaxRev.Gdal.Core.Tests.AzureFunctions/MaxRev.Gdal.Core.Tests.AzureFunctions.csproj
+++ b/tests/MaxRev.Gdal.Core.Tests.AzureFunctions/MaxRev.Gdal.Core.Tests.AzureFunctions.csproj
@@ -7,7 +7,7 @@
<_FunctionsSkipCleanOutput>true
-
+
diff --git a/tests/MaxRev.Gdal.Core.Tests.XUnit/MaxRev.Gdal.Core.Tests.XUnit.csproj b/tests/MaxRev.Gdal.Core.Tests.XUnit/MaxRev.Gdal.Core.Tests.XUnit.csproj
index 43be02e8..6fc593e0 100644
--- a/tests/MaxRev.Gdal.Core.Tests.XUnit/MaxRev.Gdal.Core.Tests.XUnit.csproj
+++ b/tests/MaxRev.Gdal.Core.Tests.XUnit/MaxRev.Gdal.Core.Tests.XUnit.csproj
@@ -7,7 +7,7 @@
x64;arm64
-
+
diff --git a/tests/MaxRev.Gdal.Core.Tests/MaxRev.Gdal.Core.Tests.csproj b/tests/MaxRev.Gdal.Core.Tests/MaxRev.Gdal.Core.Tests.csproj
index 7e89cf28..45be806c 100644
--- a/tests/MaxRev.Gdal.Core.Tests/MaxRev.Gdal.Core.Tests.csproj
+++ b/tests/MaxRev.Gdal.Core.Tests/MaxRev.Gdal.Core.Tests.csproj
@@ -8,7 +8,7 @@
MaxRev.Gdal.Core.Tests
-
+
\ No newline at end of file
diff --git a/unix/gdal-makefile b/unix/gdal-makefile
index dfeb8eed..6355e1bc 100644
--- a/unix/gdal-makefile
+++ b/unix/gdal-makefile
@@ -115,8 +115,8 @@ configure_gdal:
@cd $(GDAL_CMAKE_TMP) && cmake $(GDAL_ROOT) \
-DCMAKE_BUILD_TYPE=Release -Wno-dev \
- -DCMAKE_C_FLAGS="-fPIC" \
- -DCMAKE_CXX_FLAGS="-fPIC" \
+ -DCMAKE_C_FLAGS="-fPIC -w" \
+ -DCMAKE_CXX_FLAGS="-fPIC -w" \
-DGDAL_USE_DEFLATE=OFF \
-DGDAL_USE_ZLIB_INTERNAL=ON \
-DGDAL_CSHARP_APPS=ON \
@@ -147,8 +147,8 @@ configure_proj:
cmake $(PROJ_ROOT) \
-DCMAKE_BUILD_TYPE=Release -Wno-dev\
-DCMAKE_MAKE_PROGRAM=make \
- -DCMAKE_C_FLAGS="-Wno-deprecated-declarations" \
- -DCMAKE_CXX_FLAGS="-Wno-deprecated-declarations" \
+ -DCMAKE_C_FLAGS="-w" \
+ -DCMAKE_CXX_FLAGS="-w" \
-DCMAKE_INSTALL_PREFIX=$(PROJ_BUILD) \
-DBUILD_TESTING=OFF \
-DBUILD_SHARED_LIBS=ON \
diff --git a/win/install.ps1 b/win/install.ps1
index cb8f500a..7530df70 100644
--- a/win/install.ps1
+++ b/win/install.ps1
@@ -47,8 +47,6 @@ try {
Install-Proj -cleanProjBuild $cleanProjBuild -cleanProjIntermediate $cleanProjIntermediate
- Get-ProjDatum
-
Reset-GdalSourceBindings
$env:INCLUDE = Add-EnvVar $env:INCLUDE "$env:SDK_PREFIX\include"
$env:LIB = Add-EnvVar $env:LIB "$env:SDK_PREFIX\lib"
diff --git a/win/partials.psm1 b/win/partials.psm1
index 5b9683a9..a5b8ab13 100644
--- a/win/partials.psm1
+++ b/win/partials.psm1
@@ -2,8 +2,6 @@ function Set-GdalVariables {
$env:VS_VERSION = "Visual Studio 17 2022"
$env:SDK = "release-1930-x64" #2022 x64
$env:SDK_ZIP = "$env:SDK" + "-dev.zip"
- $env:PROJ_DATUM = "proj-datumgrid-1.8.zip"
- $env:PROJ_DATUM_URL = "http://download.osgeo.org/proj/$env:PROJ_DATUM"
$env:SDK_URL = "http://download.gisinternals.com/sdk/downloads/$env:SDK_ZIP"
$env:LIBWEBP_URL = "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.3.2-windows-x64.zip"
$env:LIBZSTD_URL = "https://github.com/facebook/zstd/releases/download/v1.5.5/zstd-v1.5.5-win64.zip"
@@ -11,7 +9,6 @@ function Set-GdalVariables {
$env:VS_VER = "2022"
$env:ARCHITECTURE = "amd64"
$env:WIN64_ARG = "WIN64=YES"
- $env:platform = "x64"
$env:CMAKE_ARCHITECTURE = "x64"
$env:CMAKE_PARALLEL_JOBS = 4
@@ -26,11 +23,11 @@ function Set-GdalVariables {
$env:GDAL_DRIVER_PATH = "$env:GDAL_INSTALL_DIR\share\gdal"
$env:PROJ_LIB = "$env:PROJ_INSTALL_DIR\share\proj"
$env:GdalCmakeBuild = "$env:BUILD_ROOT\gdal-cmake-temp"
- $env:VCPKG_INSTALLED_PKGCONFIG = "$env:BUILD_ROOT\vcpkg\installed\x64-windows\lib\pkgconfig"
$env:SDK_LIB = "$env:SDK_PREFIX\lib"
$env:SDK_BIN = "$env:SDK_PREFIX\bin"
$env:GDAL_INSTALL_DIR = "$env:BUILD_ROOT\gdal-build"
$env:VCPKG_INSTALLED = "$env:BUILD_ROOT\vcpkg\installed\x64-windows"
+ $env:VCPKG_INSTALLED_PKGCONFIG = "$env:VCPKG_INSTALLED\lib\pkgconfig"
$env:WEBP_ROOT = Get-ForceResolvePath("$env:BUILD_ROOT\sdk\libwebp*")
}
@@ -152,28 +149,17 @@ function Install-Proj {
cmake -G $env:VS_VERSION -A $env:CMAKE_ARCHITECTURE $env:PROJ_SOURCE `
-DCMAKE_INSTALL_PREFIX="$env:PROJ_INSTALL_DIR" `
-DCMAKE_BUILD_TYPE=Release -Wno-dev `
+ -DCMAKE_C_FLAGS="/w" `
+ -DCMAKE_CXX_FLAGS="/w" `
-DPROJ_TESTS=OFF -DBUILD_LIBPROJ_SHARED=ON `
-DCMAKE_TOOLCHAIN_FILE="$env:VCPKG_ROOT\scripts\buildsystems\vcpkg.cmake" `
- -DCMAKE_PREFIX_PATH="$env:VCPKG_ROOT\installed\x64-windows;$env:SDK_PREFIX" `
+ -DCMAKE_PREFIX_PATH="$env:VCPKG_INSTALLED;$env:SDK_PREFIX" `
-DBUILD_SHARED_LIBS=ON -DENABLE_CURL=ON -DENABLE_TIFF=ON
exec { cmake --build . -j $env:CMAKE_PARALLEL_JOBS --config Release --target install }
Write-BuildStep "Done building PROJ"
}
-function Get-ProjDatum {
- Write-BuildStep "Checking for PROJ datum grid"
- Set-Location "$env:BUILD_ROOT\proj-build\share\proj"
- if (-Not (Test-Path -Path $env:PROJ_DATUM -PathType Leaf)) {
- Write-BuildInfo "Downloading PROJ datum grid"
- Invoke-WebRequest $env:PROJ_DATUM_URL -OutFile $env:PROJ_DATUM
- Write-BuildStep "PROJ datum grid was downloaded"
- }
- else {
- Write-BuildStep "PROJ datum grid already exists"
- }
-}
-
function Get-GdalVersion {
return (Get-Content "$env:GDAL_SOURCE\VERSION")
}
@@ -253,8 +239,7 @@ function Build-Gdal {
New-FolderIfNotExistsAndSetCurrentLocation $env:GdalCmakeBuild
New-FolderIfNotExists "$PSScriptRoot\..\nuget"
- $env:ARCH_FLAGS = "/arch:AVX2 /Ob2 /Oi /Os /Oy"
- $env:VCPKG_INSTALLED = "$env:BUILD_ROOT\vcpkg\installed\x64-windows"
+ $env:ARCH_FLAGS = "/arch:AVX2 /Ob2 /Oi /Os /Oy /w"
# disabling KEA driver as it causes build issues on Windows
# https://github.com/OSGeo/gdal/blob/3b232ee17d8f3d93bf3535b77fbb436cb9a9c2e0/.github/workflows/windows_build.yml#L178
@@ -267,9 +252,9 @@ function Build-Gdal {
cmake -G $env:VS_VERSION -A $env:CMAKE_ARCHITECTURE "$env:GDAL_SOURCE" `
$env:CMAKE_INSTALL_PREFIX -DCMAKE_BUILD_TYPE=Release -Wno-dev `
-DCMAKE_C_FLAGS="$env:ARCH_FLAGS" `
+ -DCMAKE_CXX_FLAGS="$env:ARCH_FLAGS" `
-DCMAKE_PREFIX_PATH="$env:VCPKG_INSTALLED;$env:SDK_PREFIX" `
-DGDAL_USE_OPENEXR=OFF `
- -DCMAKE_CXX_FLAGS="$env:ARCH_FLAGS" `
$env:WEBP_INCLUDE $env:WEBP_LIB `
$env:PROJ_ROOT $env:MYSQL_LIBRARY `
$env:Poppler_INCLUDE_DIR $env:Poppler_LIBRARY `