diff --git a/LibZipSharp.props b/LibZipSharp.props index be6aa96d..ce4dfa91 100644 --- a/LibZipSharp.props +++ b/LibZipSharp.props @@ -1,11 +1,11 @@ - <_LibZipSharpAssemblyVersion>2.0.3 + <_LibZipSharpAssemblyVersion>2.0.4 - <_LibZipSharpNugetVersion>$(_LibZipSharpAssemblyVersion) + <_LibZipSharpNugetVersion>$(_LibZipSharpAssemblyVersion)-alpha-1 <_NativeBuildDir>$(MSBuildThisFileDirectory)lzsbuild <_ExternalDir>$(MSBuildThisFileDirectory)external <_MonoPosixNugetVersion>7.0.0-final.1.21369.2 diff --git a/LibZipSharp/Xamarin.LibZipSharp.targets b/LibZipSharp/Xamarin.LibZipSharp.targets index d8c82a97..533120ff 100644 --- a/LibZipSharp/Xamarin.LibZipSharp.targets +++ b/LibZipSharp/Xamarin.LibZipSharp.targets @@ -6,6 +6,9 @@ <_LibZipNativeLibs Include="$(MSBuildThisFileDirectory)..\runtimes\win-x64\native\libZipSharpNative.*"> lib64\%(FileName)%(Extension) + <_LibZipNativeLibs Include="$(MSBuildThisFileDirectory)..\runtimes\win-arm64\native\libZipSharpNative.*"> + %(FileName)%(Extension) + <_LibZipNativeLibs Include="$(MSBuildThisFileDirectory)..\runtimes\win-x86\native\libZipSharpNative.*"> %(FileName)%(Extension) diff --git a/LibZipSharp/libZipSharp.csproj b/LibZipSharp/libZipSharp.csproj index d5589433..009ebcfc 100644 --- a/LibZipSharp/libZipSharp.csproj +++ b/LibZipSharp/libZipSharp.csproj @@ -54,6 +54,8 @@ + + diff --git a/azure-pipelines.yml b/azure-pipelines.yml index e265341d..47fcfc3c 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -19,7 +19,7 @@ stages: pool: name: AzurePipelines-EO demands: - - ImageOverride -equals AzurePipelinesWindows2019compliant + - ImageOverride -equals AzurePipelinesWindows2022compliant steps: - script: | echo "Hello" @@ -42,6 +42,13 @@ stages: archiveType: 7z replaceExistingArchive: true archiveFile: $(Build.ArtifactStagingDirectory)\libzip-windows-x64.7z + - task: ArchiveFiles@2 + inputs: + rootFolderOrFile: lzsbuild\lib\winarm64\RelWithDebInfo\ + includeRootFolder: false + archiveType: 7z + replaceExistingArchive: true + archiveFile: $(Build.ArtifactStagingDirectory)\libzip-windows-arm-x64.7z - task: PublishBuildArtifacts@1 displayName: upload artifacts inputs: @@ -107,6 +114,11 @@ stages: inputs: archiveFilePatterns: $(Build.ArtifactStagingDirectory)/native/libzip-windows-x64.7z destinationFolder: lzsbuild/lib/win64 + - task: ExtractFiles@1 + displayName: Extract 64 bit ARM Windows native + inputs: + archiveFilePatterns: $(Build.ArtifactStagingDirectory)/native/libzip-windows-arm-x64.7z + destinationFolder: lzsbuild/lib/winarm64 - task: ExtractFiles@1 displayName: Extract 32 bit Windows native inputs: @@ -158,7 +170,9 @@ stages: - job: testlinux displayName: 'Test Linux' pool: - vmImage: ubuntu-18.04 + name: AzurePipelines-EO + demands: + - ImageOverride -equals AzurePipelinesUbuntu18.04compliant steps: - task: DownloadBuildArtifacts@0 displayName: download artifacts @@ -185,7 +199,7 @@ stages: - job: testmacos displayName: 'Test MacOS' pool: - vmImage: macOS-latest + vmImage: internal-macos-11 steps: - template: yaml-templates/use-dot-net.yaml parameters: @@ -215,7 +229,9 @@ stages: - job: testwindows displayName: 'Test Windows' pool: - vmImage: windows-latest + name: AzurePipelines-EO + demands: + - ImageOverride -equals AzurePipelinesWindows2022compliant steps: - template: yaml-templates/use-dot-net.yaml parameters: diff --git a/build_windows.bat b/build_windows.bat index 7b990532..412e6ff0 100644 --- a/build_windows.bat +++ b/build_windows.bat @@ -4,25 +4,31 @@ set BUILD_DIR_ROOT=%CD%\lzsbuild set DEPS_BUILD_DIR_ROOT=%BUILD_DIR_ROOT%\deps set DEPS_BUILD_DIR_ROOT_32=%DEPS_BUILD_DIR_ROOT%\win32 set DEPS_BUILD_DIR_ROOT_64=%DEPS_BUILD_DIR_ROOT%\win64 +set DEPS_BUILD_DIR_ROOT_ARM64=%DEPS_BUILD_DIR_ROOT%\winarm64 set LIB_BUILD_DIR_ROOT=%BUILD_DIR_ROOT%\lib set LIB_BUILD_DIR_ROOT_32=%LIB_BUILD_DIR_ROOT%\win32 set LIB_BUILD_DIR_ROOT_64=%LIB_BUILD_DIR_ROOT%\win64 +set LIB_BUILD_DIR_ROOT_ARM64=%LIB_BUILD_DIR_ROOT%\winarm64 set ARTIFACTS_DIR_ROOT=%CD%\artifacts set ARTIFACTS_DIR_ROOT_64=%ARTIFACTS_DIR_ROOT%\win64 set ARTIFACTS_DIR_ROOT_32=%ARTIFACTS_DIR_ROOT%\win32 +set ARTIFACTS_DIR_ROOT_ARM64=%ARTIFACTS_DIR_ROOT%\winarm64 set CONFIG=RelWithDebInfo -set COMMON_CMAKE_PARAMS=-DCMAKE_BUILD_TYPE=%CONFIG% -G "Visual Studio 16 2019" +set COMMON_CMAKE_PARAMS=-DCMAKE_BUILD_TYPE=%CONFIG% -G "Visual Studio 17 2022" echo Common cmake params: %COMMON_CMAKE_PARAMS% echo 32-bit dependencies artifacts dir: %ARTIFACTS_DIR_ROOT_32% echo 64-bit dependencies artifacts dir: %ARTIFACTS_DIR_ROOT_64% +echo 64-bit arm dependencies artifacts dir: %ARTIFACTS_DIR_ROOT_ARM64% echo 32-bit dependencies build root: %DEPS_BUILD_DIR_ROOT_32% echo 64-bit dependencies build root: %DEPS_BUILD_DIR_ROOT_64% +echo 64-bit arm dependencies build root: %DEPS_BUILD_DIR_ROOT_ARM64% echo 32-bit library build root: %LIB_BUILD_DIR_ROOT_32% echo 64-bit library build root: %LIB_BUILD_DIR_ROOT_64% +echo 64-bit arm library build root: %LIB_BUILD_DIR_ROOT_ARM64% pushd . cd external\vcpkg @@ -31,12 +37,19 @@ popd external\vcpkg\vcpkg.exe integrate install if %errorlevel% neq 0 exit /b %errorlevel% -external\vcpkg\vcpkg.exe install liblzma:x64-windows-static liblzma:x86-windows-static +external\vcpkg\vcpkg.exe install liblzma:x64-windows-static liblzma:x86-windows-static liblzma:arm-windows-static if %errorlevel% neq 0 exit /b %errorlevel% REM 64-bit deps mkdir "%DEPS_BUILD_DIR_ROOT_64%" -cmake %COMMON_CMAKE_PARAMS% -B "%DEPS_BUILD_DIR_ROOT_64%" -DVCPKG_TARGET_TRIPLET=x64-windows-static -DBUILD_DEPENDENCIES=ON "-DARTIFACTS_ROOT_DIR=%ARTIFACTS_DIR_ROOT_64%" "-DCMAKE_INSTALL_PREFIX=%ARTIFACTS_DIR_ROOT_64%" -A x64 . +cmake %COMMON_CMAKE_PARAMS% ^ + -B "%DEPS_BUILD_DIR_ROOT_64%" ^ + -DVCPKG_TARGET_TRIPLET=x64-windows-static ^ + -DBUILD_DEPENDENCIES=ON ^ + "-DARTIFACTS_ROOT_DIR=%ARTIFACTS_DIR_ROOT_64%" ^ + "-DCMAKE_INSTALL_PREFIX=%ARTIFACTS_DIR_ROOT_64%" ^ + -A x64 . + if %errorlevel% neq 0 exit /b %errorlevel% cmake --build "%DEPS_BUILD_DIR_ROOT_64%" -v --config %CONFIG% @@ -45,9 +58,34 @@ if %errorlevel% neq 0 exit /b %errorlevel% cmake --install "%DEPS_BUILD_DIR_ROOT_64%" --config %CONFIG% if %errorlevel% neq 0 exit /b %errorlevel% +REM 64-bit arm deps +mkdir "%DEPS_BUILD_DIR_ROOT_ARM64%" +cmake %COMMON_CMAKE_PARAMS% ^ + -B "%DEPS_BUILD_DIR_ROOT_ARM64%" ^ + -DVCPKG_TARGET_TRIPLET=arm-windows-static ^ + -DBUILD_DEPENDENCIES=ON ^ + "-DARTIFACTS_ROOT_DIR=%ARTIFACTS_DIR_ROOT_ARM64%" ^ + "-DCMAKE_INSTALL_PREFIX=%ARTIFACTS_DIR_ROOT_ARM64%" ^ + -A arm64 . + +if %errorlevel% neq 0 exit /b %errorlevel% + +cmake --build "%DEPS_BUILD_DIR_ROOT_ARM64%" -v --config %CONFIG% +if %errorlevel% neq 0 exit /b %errorlevel% + +cmake --install "%DEPS_BUILD_DIR_ROOT_ARM64%" --config %CONFIG% +if %errorlevel% neq 0 exit /b %errorlevel% + REM 32-bit deps mkdir "%DEPS_BUILD_DIR_ROOT_32%" -cmake %COMMON_CMAKE_PARAMS% -B "%DEPS_BUILD_DIR_ROOT_32%" -DVCPKG_TARGET_TRIPLET=x86-windows-static -DBUILD_DEPENDENCIES=ON "-DARTIFACTS_ROOT_DIR=%ARTIFACTS_DIR_ROOT_32%" "-DCMAKE_INSTALL_PREFIX=%ARTIFACTS_DIR_ROOT_32%" -A Win32 . +cmake %COMMON_CMAKE_PARAMS% ^ + -B "%DEPS_BUILD_DIR_ROOT_32%" ^ + -DVCPKG_TARGET_TRIPLET=x86-windows-static ^ + -DBUILD_DEPENDENCIES=ON ^ + "-DARTIFACTS_ROOT_DIR=%ARTIFACTS_DIR_ROOT_32%" ^ + "-DCMAKE_INSTALL_PREFIX=%ARTIFACTS_DIR_ROOT_32%" ^ + -A Win32 . + if %errorlevel% neq 0 exit /b %errorlevel% cmake --build "%DEPS_BUILD_DIR_ROOT_32%" --config %CONFIG% -v @@ -59,15 +97,44 @@ if %errorlevel% neq 0 exit /b %errorlevel% REM 64-bit library mkdir "%LIB_BUILD_DIR_ROOT_64%" -cmake %COMMON_CMAKE_PARAMS% -B "%LIB_BUILD_DIR_ROOT_64%" -DVCPKG_TARGET_TRIPLET=x64-windows-static -DBUILD_LIBZIP=ON "-DARTIFACTS_ROOT_DIR=%ARTIFACTS_DIR_ROOT_64%" "-DCMAKE_INSTALL_PREFIX=%ARTIFACTS_DIR_ROOT_64%" -A x64 . +cmake %COMMON_CMAKE_PARAMS% ^ + -B "%LIB_BUILD_DIR_ROOT_64%" ^ + -DVCPKG_TARGET_TRIPLET=x64-windows-static ^ + -DBUILD_LIBZIP=ON ^ + "-DARTIFACTS_ROOT_DIR=%ARTIFACTS_DIR_ROOT_64%" ^ + "-DCMAKE_INSTALL_PREFIX=%ARTIFACTS_DIR_ROOT_64%" ^ + -A x64 . + if %errorlevel% neq 0 exit /b %errorlevel% cmake --build "%LIB_BUILD_DIR_ROOT_64%" --config %CONFIG% -v if %errorlevel% neq 0 exit /b %errorlevel% +REM 64-bit arm library +mkdir "%LIB_BUILD_DIR_ROOT_ARM64%" +cmake %COMMON_CMAKE_PARAMS% ^ + -B "%LIB_BUILD_DIR_ROOT_ARM64%" ^ + -DVCPKG_TARGET_TRIPLET=arm-windows-static ^ + -DBUILD_LIBZIP=ON ^ + "-DARTIFACTS_ROOT_DIR=%ARTIFACTS_DIR_ROOT_ARM64%" ^ + "-DCMAKE_INSTALL_PREFIX=%ARTIFACTS_DIR_ROOT_ARM64%" ^ + -A arm64 . + +if %errorlevel% neq 0 exit /b %errorlevel% + +cmake --build "%LIB_BUILD_DIR_ROOT_ARM64%" --config %CONFIG% -v +if %errorlevel% neq 0 exit /b %errorlevel% + REM 32-bit library mkdir "%LIB_BUILD_DIR_ROOT_32%" -cmake %COMMON_CMAKE_PARAMS% -B "%LIB_BUILD_DIR_ROOT_32%" -DVCPKG_TARGET_TRIPLET=x86-windows-static -DBUILD_LIBZIP=ON "-DARTIFACTS_ROOT_DIR=%ARTIFACTS_DIR_ROOT_32%" "-DCMAKE_INSTALL_PREFIX=%ARTIFACTS_DIR_ROOT_32%" -A Win32 . +cmake %COMMON_CMAKE_PARAMS% ^ + -B "%LIB_BUILD_DIR_ROOT_32%" ^ + -DVCPKG_TARGET_TRIPLET=x86-windows-static ^ + -DBUILD_LIBZIP=ON ^ + "-DARTIFACTS_ROOT_DIR=%ARTIFACTS_DIR_ROOT_32%" ^ + "-DCMAKE_INSTALL_PREFIX=%ARTIFACTS_DIR_ROOT_32%" ^ + -A Win32 . + if %errorlevel% neq 0 exit /b %errorlevel% cmake --build "%LIB_BUILD_DIR_ROOT_32%" --config %CONFIG% -v diff --git a/external/vcpkg b/external/vcpkg index ec6fe06e..18e6e885 160000 --- a/external/vcpkg +++ b/external/vcpkg @@ -1 +1 @@ -Subproject commit ec6fe06e8da05a8157dc8581fa96b36b571c1bd5 +Subproject commit 18e6e8855d2da137fada2387b6d137583c02b77c