From 3ca5b20e5f231a0f4fb3bcae1b8dc3700674ca9b Mon Sep 17 00:00:00 2001 From: Thomas Bonfort Date: Tue, 7 Jan 2025 09:55:21 +0100 Subject: [PATCH] Build/CI updates for newer gdal version (#141) account for the fact that all drivers can now be disabled at gdal compile time --- .github/workflows/build-gdal.sh | 8 ++++++++ .github/workflows/ubuntu.yml | 21 +++++++++++++++------ godal.go | 4 ---- godal_test.go | 21 ++++++++++++--------- 4 files changed, 35 insertions(+), 19 deletions(-) diff --git a/.github/workflows/build-gdal.sh b/.github/workflows/build-gdal.sh index 435f0fc..f5a9285 100755 --- a/.github/workflows/build-gdal.sh +++ b/.github/workflows/build-gdal.sh @@ -35,6 +35,14 @@ if [ -f CMakeLists.txt ]; then -DGDAL_USE_GEOS=ON \ -DBUILD_JAVA_BINDINGS=OFF \ -DBUILD_CSHARP_BINDINGS=OFF \ + -DGDAL_ENABLE_DRIVER_GTIFF=ON \ + -DGDAL_ENABLE_DRIVER_VRT=ON \ + -DGDAL_ENABLE_DRIVER_MEM=ON \ + -DOGR_ENABLE_DRIVER_MEM=ON \ + -DOGR_ENABLE_DRIVER_GEOJSON=ON \ + -DOGR_ENABLE_DRIVER_TAB=ON \ + -DOGR_ENABLE_DRIVER_VRT=ON \ + -DOGR_ENABLE_DRIVER_SHAPE=ON \ -DOGR_ENABLE_DRIVER_SQLITE=ON make -j8 diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml index e555b51..d6671e2 100644 --- a/.github/workflows/ubuntu.yml +++ b/.github/workflows/ubuntu.yml @@ -33,7 +33,7 @@ jobs: strategy: fail-fast: false matrix: - gdal: [ 'release/3.6', 'release/3.7', 'release/3.8', 'release/3.9', 'master' ] + gdal: ['release/3.7', 'release/3.8', 'release/3.9', 'release/3.10', 'master' ] steps: - name: optgdal run: sudo mkdir /optgdal && sudo chown -R $USER /optgdal @@ -55,7 +55,7 @@ jobs: fail-fast: false matrix: go: [ '1.22', '1.23' ] - gdal: [ 'release/3.6', 'release/3.7', 'release/3.8', 'release/3.9', 'master' ] + gdal: [ 'release/3.7', 'release/3.8', 'release/3.9', 'release/3.10', 'master' ] name: Go ${{ matrix.go }} + GDAL ${{ matrix.gdal }} test steps: - name: APT @@ -89,16 +89,25 @@ jobs: env: PKG_CONFIG_PATH: /optgdal/lib/pkgconfig/ - name: Send coverage - if: ${{ matrix.go == '1.23' && matrix.gdal == 'release/3.9' }} + if: ${{ matrix.go == '1.23' && matrix.gdal == 'release/3.10' }} uses: shogo82148/actions-goveralls@v1 with: path-to-profile: profile.cov + - name: staticcheck + if: ${{ matrix.go == '1.23' && matrix.gdal == 'release/3.10' }} + uses: reviewdog/action-staticcheck@v1 + env: + PKG_CONFIG_PATH: /optgdal/lib/pkgconfig/ + with: + level: error + fail_on_error: true - name: golangci-lint - if: ${{ matrix.go == '1.23' && matrix.gdal == 'release/3.9' }} - uses: reviewdog/action-golangci-lint@v1 + if: ${{ matrix.go == '1.23' && matrix.gdal == 'release/3.10' }} + uses: reviewdog/action-golangci-lint@v2 env: PKG_CONFIG_PATH: /optgdal/lib/pkgconfig/ with: golangci_lint_flags: "--timeout=5m --skip-files=doc_test.go" level: error - fail_on_error: true + cache: false + fail_level: error diff --git a/godal.go b/godal.go index 599dda1..b13f80c 100644 --- a/godal.go +++ b/godal.go @@ -1301,10 +1301,6 @@ func RegisterRaster(drivers ...DriverName) error { C.GDALRegister_MEM() case VRT: C.GDALRegister_VRT() - case HFA: - C.GDALRegister_HFA() - case GTiff: - C.GDALRegister_GTiff() default: fnname := fmt.Sprintf("GDALRegister_%s", driver) drv, ok := driverMappings[driver] diff --git a/godal_test.go b/godal_test.go index 466fd99..873450d 100644 --- a/godal_test.go +++ b/godal_test.go @@ -251,10 +251,18 @@ func TestRegisterDrivers(t *testing.T) { _, err := Open("testdata/test.img") assert.Error(t, err) - _ = RegisterRaster(HFA) - _, ok = RasterDriver(HFA) - assert.True(t, ok) + hfa_err := RegisterRaster(HFA) + if hfa_err == nil { //HFA is not available by default with gdal >= 3.10 + _, ok = RasterDriver(HFA) + assert.True(t, ok) + ds, err := Open("testdata/test.img") + assert.NoError(t, err) + ds.Close() + } else { + _, ok = RasterDriver(HFA) + assert.False(t, ok) + } _, ok = VectorDriver(HFA) assert.False(t, ok) @@ -264,10 +272,6 @@ func TestRegisterDrivers(t *testing.T) { _, ok = RasterDriver(GeoJSON) assert.False(t, ok) - ds, err := Open("testdata/test.img") - assert.NoError(t, err) - ds.Close() - _, ok = RasterDriver("bazbaz") assert.False(t, ok) @@ -1233,8 +1237,7 @@ func TestBandMask(t *testing.T) { } func TestSetNoData(t *testing.T) { - _ = RegisterRaster("HFA") - ds, _ := Open("testdata/test.img") + ds, _ := Open("testdata/test.tif") err := ds.SetNoData(0.5) if err == nil { t.Error("err not raised")