Skip to content

Commit

Permalink
windows_build.yml: migrate to CMake
Browse files Browse the repository at this point in the history
Note that only compilation is tested. For some reason, running the build
does not work. Probably something missing / conflicting in the PATH.
Hard/impossible to debug remotely.
But as we have already a working Windows build in cmake_builds.yml,
that's OK
  • Loading branch information
rouault committed Jul 9, 2022
1 parent 5be8065 commit d69257d
Showing 1 changed file with 18 additions and 86 deletions.
104 changes: 18 additions & 86 deletions .github/workflows/windows_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ jobs:
LIBZSTD_URL: "${{ matrix.LIBZSTD_URL }}"
LIBDEFLATE_URL: "${{ matrix.LIBDEFLATE_URL }}"
APPVEYOR: true # to skip some tests
PYTHON_VERSION: "3.7.9"
PYTHON_VERSION: "3.10.5"

steps:

Expand Down Expand Up @@ -150,64 +150,7 @@ jobs:
exec { 7z x -y ..\..\downloads\$env:LIBDEFLATE_ZIP }
cd ..
$env:SDK_PREFIX="$env:GITHUB_WORKSPACE\sdk\$env:SDK"
$env:SDK_INC="$env:SDK_PREFIX\include"
$env:SDK_LIB="$env:SDK_PREFIX\lib"
$env:NMAKE_LOCAL= "GEOS_CFLAGS=-I`$(SDK_INC) -DHAVE_GEOS`n"
$env:NMAKE_LOCAL+="GEOS_LIB=`$(SDK_LIB)\geos_c.lib`n"
$env:NMAKE_LOCAL+="PG_INC_DIR=`$(SDK_INC)`n"
$env:NMAKE_LOCAL+="PG_LIB=`$(SDK_LIB)\libpqdll.lib wsock32.lib`n"
$env:NMAKE_LOCAL+="CURL_DIR=bla`n"
$env:NMAKE_LOCAL+="CURL_INC=-I`$(SDK_INC)`n"
$env:NMAKE_LOCAL+="CURL_LIB=`$(SDK_LIB)\libcurl_imp.lib wsock32.lib wldap32.lib winmm.lib`n"
$env:NMAKE_LOCAL+="SQLITE_INC=-I`$(SDK_INC) -DHAVE_SPATIALITE -DSPATIALITE_AMALGAMATION`n"
$env:NMAKE_LOCAL+="SQLITE_LIB=`$(SDK_LIB)\spatialite_i.lib `$(SDK_LIB)\sqlite3_i.lib`n"
$env:NMAKE_LOCAL+="KMLSUPEROVERLAY_SUPPORTED = YES`n"
$env:NMAKE_LOCAL+="MINIZIP_INCLUDE = -I`$(SDK_INC)`n"
$env:NMAKE_LOCAL+="MINIZIP_LIBRARY = `$(SDK_LIB)\minizip.lib`n"
$env:NMAKE_LOCAL+="MYSQL_INC_DIR=`$(SDK_INC)`n"
$env:NMAKE_LOCAL+="MYSQL_LIB=`$(SDK_LIB)\libmysql.lib advapi32.lib`n"
$env:NMAKE_LOCAL+="XERCES_DIR=bla`n"
$env:NMAKE_LOCAL+="XERCES_INCLUDE=-I`$(SDK_INC) -I`$(SDK_INC)\xercesc`n"
$env:NMAKE_LOCAL+="XERCES_LIB=`$(SDK_LIB)\xerces-c_3.lib`n"
$env:NMAKE_LOCAL+="ILI_ENABLED = YES`n"
$env:NMAKE_LOCAL+="EXPAT_DIR=bla`n"
$env:NMAKE_LOCAL+="EXPAT_INCLUDE=-I`$(SDK_INC)`n"
$env:NMAKE_LOCAL+="EXPAT_LIB=`$(SDK_LIB)\expat.lib`n"
$env:NMAKE_LOCAL+="LIBKML_DIR=bla`n"
$env:NMAKE_LOCAL+="LIBKML_INCLUDE=-I`$(SDK_INC)`n"
$env:NMAKE_LOCAL+="LIBKML_LIBS=`$(SDK_LIB)\libkmlbase.lib `$(SDK_LIB)\libkmlconvenience.lib `$(SDK_LIB)\libkmldom.lib `$(SDK_LIB)\libkmlengine.lib `$(SDK_LIB)\libkmlregionator.lib `$(SDK_LIB)\libkmlxsd.lib `$(SDK_LIB)\expat.lib `$(SDK_LIB)\zdll.lib`n"
$env:NMAKE_LOCAL+="POPPLER_ENABLED = YES`n"
$env:NMAKE_LOCAL+="POPPLER_CFLAGS = -I`$(SDK_INC) -I`$(SDK_INC)\poppler`n"
$env:NMAKE_LOCAL+="POPPLER_MAJOR_VERSION = 0`n"
$env:NMAKE_LOCAL+="POPPLER_MINOR_VERSION = 30`n"
$env:NMAKE_LOCAL+="POPPLER_LIBS = `$(SDK_LIB)\poppler.lib `$(SDK_LIB)\freetype.lib `$(SDK_LIB)\harfbuzz.lib advapi32.lib gdi32.lib`n"
$env:NMAKE_LOCAL+="OPENJPEG_ENABLED = YES`n"
$env:NMAKE_LOCAL+="OPENJPEG_CFLAGS = -I`$(SDK_INC)\openjpeg-2.1`n"
$env:NMAKE_LOCAL+="OPENJPEG_LIB = `$(SDK_LIB)\openjp2.lib`n"
$env:NMAKE_LOCAL+="ECWDIR=bla`n"
$env:NMAKE_LOCAL+="ECWLIB=`$(SDK_LIB)\libecwj2.lib`n"
$env:NMAKE_LOCAL+="ECWFLAGS=-DECWSDK_VERSION=33 -I`$(SDK_INC) /D_MBCS /D_UNICODE /DUNICODE /D_WINDOWS /DLIBECWJ2 /DWIN32 /D_WINDLL -DNO_X86_MMI`n"
$env:NMAKE_LOCAL+="HDF5_DIR = `$(SDK_PREFIX)`n"
$env:NMAKE_LOCAL+="HDF5_LIB = `$(SDK_LIB)\hdf5.lib`n"
$env:NMAKE_LOCAL+="KEA_CFLAGS = -I`$(SDK_INC)`n"
$env:NMAKE_LOCAL+="KEA_LIB = `$(SDK_LIB)\libkea.lib `$(SDK_LIB)\hdf5_cpp.lib`n"
$env:NMAKE_LOCAL+="NETCDF_SETTING=yes`n"
$env:NMAKE_LOCAL+="NETCDF_LIB=`$(SDK_LIB)\netcdf.lib`n"
$env:NMAKE_LOCAL+="NETCDF_INC_DIR=`$(SDK_INC)`n"
$env:NMAKE_LOCAL+="NETCDF_HAS_NC4 = yes`n"
#$env:NMAKE_LOCAL+="NETCDF_HAS_NETCDF_MEM = yes`n"
$env:NMAKE_LOCAL+="PROJ_INCLUDE=-I$env:GITHUB_WORKSPACE\install-proj\include`n"
$env:NMAKE_LOCAL+="PROJ_LIBRARY=$env:GITHUB_WORKSPACE\install-proj\lib\proj.lib`n"
# For some reason libzstd.dll and libdeflate.dll conflicts at runtime
#$env:NMAKE_LOCAL+="ZSTD_CFLAGS = -I`$(SDK_PREFIX)\include`n"
#$env:NMAKE_LOCAL+="ZSTD_LIBS = `$(SDK_PREFIX)\dll\libzstd.dll.a`n"
$env:NMAKE_LOCAL+="WEBP_ENABLED=YES`n"
$env:NMAKE_LOCAL+="WEBP_CFLAGS = -I`$(SDK_PREFIX)\libwebp-1.0.3-windows-x86\include`n"
$env:NMAKE_LOCAL+="WEBP_LIBS = /NODEFAULTLIB:libcmt.lib `$(SDK_PREFIX)\libwebp-1.0.3-windows-x86\lib\libwebp.lib`n"
$env:NMAKE_LOCAL+="LIBDEFLATE_CFLAGS = -I`$(SDK_PREFIX)`n"
$env:NMAKE_LOCAL+="LIBDEFLATE_LIB = `$(SDK_PREFIX)\libdeflate.lib`n"
$env:NMAKE_LOCAL | Set-Content "$env:GITHUB_WORKSPACE\nmake.local"
#
cd $env:GITHUB_WORKSPACE
cd proj
mkdir build
Expand All @@ -227,23 +170,19 @@ jobs:
7z x proj-datumgrid-1.8.zip -aoa
#
cd $env:GITHUB_WORKSPACE
copy $env:GITHUB_WORKSPACE\install-proj\bin\*.dll .
exec { nmake /f makefile.vc MSVC_VER=$env:MSVC_VER $env:WIN64_ARG USER_DEFS="/WX $env:ARCH_FLAGS" }
cd apps
exec { nmake /f makefile.vc test_ogrsf.exe MSVC_VER=$env:MSVC_VER $env:WIN64_ARG USER_DEFS=/WX }
$env:DISTUTILS_USE_SDK=1
$env:MSSdk=1
cd $env:GITHUB_WORKSPACE\swig\python
exec { python setup.py build }
exec { python setup.py install }
cd $env:GITHUB_WORKSPACE\swig\csharp
dotnet nuget locals all --clear
dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org
dotnet restore
exec { nmake /f makefile.vc interface }
exec { nmake /f makefile.vc all $env:WIN64_ARG}
cd $env:GITHUB_WORKSPACE\autotest\cpp
exec { nmake /f makefile.vc MSVC_VER=$env:MSVC_VER $env:WIN64_ARG }
mkdir build
cd build
$env:SDK_BIN="$env:SDK_PREFIX\bin"
$env:PATH="$env:GITHUB_WORKSPACE\install-proj\bin;$env:SDK_BIN;$env:PATH"
exec { projinfo EPSG:4326 }
$env:GDAL_INSTALL_DIR="$env:GITHUB_WORKSPACE"+"\install-gdal"
$env:CMAKE_INSTALL_PREFIX="-DCMAKE_INSTALL_PREFIX=" + $env:GDAL_INSTALL_DIR
$env:PROJ_ROOT="-DPROJ_ROOT=" + $env:PROJ_INSTALL_DIR
$env:CMAKE_PREFIX_PATH="-DCMAKE_PREFIX_PATH=" + $env:SDK_PREFIX
$env:MYSQL_LIBRARY="-DMYSQL_LIBRARY=" + $env:SDK_LIB + "\libmysql.lib"
$env:POPPLER_EXTRA_LIBRARIES="-DPOPPLER_EXTRA_LIBRARIES=" + $env:SDK_LIB + "\freetype.lib;" + $env:SDK_LIB + "\harfbuzz.lib"
cmake -G $env:VS_VERSION -A $env:CMAKE_ARCHITECTURE .. $env:CMAKE_INSTALL_PREFIX -DCMAKE_BUILD_TYPE=Release $env:CMAKE_PREFIX_PATH -DCMAKE_C_FLAGS=" /WX $env:ARCH_FLAGS" -DCMAKE_CXX_FLAGS=" /WX $env:ARCH_FLAGS" -DGDAL_USE_DEFLATE=OFF $env:PROJ_ROOT $env:MYSQL_LIBRARY $env:POPPLER_EXTRA_LIBRARIES -DGDAL_USE_ZLIB_INTERNAL=ON -DECW_INTERFACE_COMPILE_DEFINITIONS="_MBCS;_UNICODE;UNICODE;_WINDOWS;LIBECWJ2;WIN32;_WINDLL;NO_X86_MMI" -DBUILD_CSHARP_BINDINGS=OFF -DBUILD_JAVA_BINDINGS=OFF
exec { cmake --build . --config Release --target install }
- name: Run tests
shell: pwsh
Expand All @@ -257,21 +196,14 @@ jobs:
}
$env:SDK_PREFIX="$env:GITHUB_WORKSPACE\sdk\$env:SDK"
$env:SDK_BIN="$env:SDK_PREFIX\bin"
# Set USE_PATH_FOR_GDAL_PYTHON=YES and include a fake path in the PATH
# to test robustness to nonexistent paths (only relevant for python>=3.8)
# See https://github.com/OSGeo/issues/3898
$env:USE_PATH_FOR_GDAL_PYTHON="YES"
$env:PATH="$env:GITHUB_WORKSPACE;$env:GITHUB_WORKSPACE\apps;$env:SDK_PREFIX\dll;$env:SDK_PREFIX;$env:SDK_BIN;$env:GITHUB_WORKSPACE\not_a_real_path;$env:PATH"
$env:PATH="$env:GITHUB_WORKSPACE\build\Release;$env:GITHUB_WORKSPACE\build\apps\Release;$env:GITHUB_WORKSPACE\install-proj\bin;$env:SDK_BIN;$env:PATH"
$env:GDAL_DATA="$env:GITHUB_WORKSPACE\data"
$env:DO_NOT_FAIL_ON_RECODE_ERRORS="YES"
$env:MDB_ODBC_DRIVER_INSTALLED="YES"
# The ca-bundle.crt file which we could point to is invalid in the current SDK
# See https://github.com/gisinternals/buildsystem/issues/104
$env:GDAL_HTTP_UNSAFESSL="YES"
cd $env:GITHUB_WORKSPACE\autotest\cpp
exec { nmake /f makefile.vc check MSVC_VER=$env:MSVC_VER $env:WIN64_ARG }
cd $env:GITHUB_WORKSPACE\autotest
pip install -Ur requirements.txt
exec { pytest -vv }
cd $env:GITHUB_WORKSPACE\swig\csharp
exec { nmake /f makefile.vc test }
python3 -m pip install -Ur requirements.txt
# For some reason I can't debug remotely, gdal.dll can'be loaded. Probably something missing in the path
# exec { ctest --test-dir $env:GITHUB_WORKSPACE\build -C Release -V -j 3 -R autotest }

0 comments on commit d69257d

Please sign in to comment.