Skip to content

Commit 2ab6943

Browse files
authored
Add a build_windows.bat file to make it easier to build on windows (#75)
1 parent aa586ad commit 2ab6943

File tree

4 files changed

+78
-23
lines changed

4 files changed

+78
-23
lines changed

LibZipSharp.UnitTest/LibZipSharp.UnitTest.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,10 @@
1313
<ItemGroup>
1414
<PackageReference Include="nunit" Version="3.12.0" />
1515
<PackageReference Include="NUnit3TestAdapter" Version="3.16.1" />
16-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.8.0" />
16+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.8.3" />
1717
<PackageReference Include="Xamarin.LibZipSharp" Version="$(_LibZipSharpNugetVersion)" Condition="'$(ReferenceNuget)' == 'True'" />
1818
<PackageReference Include="NUnit.ConsoleRunner" Version="3.11.1" />
19+
<PackageReference Include="Mono.Posix.NETStandard" Version="1.0.0" />
1920
</ItemGroup>
2021

2122
<ItemGroup>

azure-pipelines.yml

Lines changed: 16 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,6 @@ stages:
1818
- job: buildWindows
1919
pool:
2020
vmImage: windows-latest
21-
variables:
22-
LIBZIP_FEATURES: -DENABLE_COMMONCRYPTO=OFF -DENABLE_GNUTLS=OFF -DENABLE_MBEDTLS=OFF -DENABLE_OPENSSL=OFF -DENABLE_WINDOWS_CRYPTO=OFF -DBUILD_TOOLS=OFF -DBUILD_REGRESS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_DOC=OFF -DENABLE_BZIP2=OFF -DENABLE_LZMA=OFF
23-
COMMON_CMAKE_PARAMS: -DCMAKE_BUILD_TYPE=Release -G "Visual Studio 16 2019" -DBUILD_SHARED_LIBS=ON -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded -DCMAKE_POLICY_DEFAULT_CMP0074=NEW -DCMAKE_POLICY_DEFAULT_CMP0091=NEW
2421
steps:
2522
- script: |
2623
echo "Hello"
@@ -31,25 +28,8 @@ stages:
3128
git apply -v ../../libzip-changes.patch
3229
displayName: "Apply Patches"
3330
- script: |
34-
cd external/vcpkg
35-
bootstrap-vcpkg.bat
36-
displayName: "Build vcpkg"
37-
- script: |
38-
external\vcpkg\vcpkg.exe integrate install
39-
external\vcpkg\vcpkg.exe install zlib:x64-windows-static
40-
mkdir .\build\Windows\64
41-
cd .\build\Windows\64
42-
cmake $(LIBZIP_FEATURES) $(COMMON_CMAKE_PARAMS) -DZLIB_ROOT=..\..\..\external\vcpkg\installed\x64-windows-static -A x64 ..\..\..\external\libzip
43-
cmake --build . --config Release -v
44-
displayName: "x64 Build"
45-
- script: |
46-
external\vcpkg\vcpkg.exe integrate install
47-
external\vcpkg\vcpkg.exe install zlib:x86-windows-static
48-
mkdir .\build\Windows\32
49-
cd .\build\Windows\32
50-
cmake $(LIBZIP_FEATURES) $(COMMON_CMAKE_PARAMS) -DZLIB_ROOT=..\..\..\external\vcpkg\installed\x86-windows-static -A Win32 ..\..\..\external\libzip
51-
cmake --build . --config Release -v
52-
displayName: "x86 Build"
31+
build_windows.bat
32+
displayName: "Build"
5333
- task: ArchiveFiles@2
5434
inputs:
5535
rootFolderOrFile: build\Windows\32\lib\Release\zip.dll
@@ -196,6 +176,8 @@ stages:
196176
pathtoPublish: $(Build.ArtifactStagingDirectory)
197177
- stage: Test
198178
dependsOn: Build
179+
variables:
180+
DotNetCoreVersion: 3.1.201
199181
jobs:
200182
- job: testlinux
201183
displayName: 'Test Linux'
@@ -213,11 +195,20 @@ stages:
213195
solution: LibZipSharp.UnitTest/LibZipSharp.UnitTest.csproj
214196
configuration: Release
215197
msbuildArguments: /restore /t:RunNunitTests /p:ReferenceNuget=True /v:diag
198+
- task: DotNetCoreCLI@2
199+
displayName: "Run Tests under .net Core"
200+
inputs:
201+
command: test
202+
projects: 'LibZipSharp.UnitTest/LibZipSharp.UnitTest.csproj'
203+
arguments: '--configuration Release --framework netcoreapp3.1 --no-build'
216204
- job: testmacos
217205
displayName: 'Test MacOS'
218206
pool:
219207
vmImage: macOS-10.14
220208
steps:
209+
- template: yaml-templates/use-dot-net.yaml
210+
parameters:
211+
version: $(DotNetCoreVersion)
221212
- task: DownloadBuildArtifacts@0
222213
displayName: download artifacts
223214
inputs:
@@ -234,6 +225,9 @@ stages:
234225
pool:
235226
vmImage: windows-2019
236227
steps:
228+
- template: yaml-templates/use-dot-net.yaml
229+
parameters:
230+
version: $(DotNetCoreVersion)
237231
- task: DownloadBuildArtifacts@0
238232
displayName: download artifacts
239233
inputs:

build_windows.bat

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
@echo off
2+
3+
set LIBZIP_FEATURES=-DENABLE_COMMONCRYPTO=OFF -DENABLE_GNUTLS=OFF -DENABLE_MBEDTLS=OFF -DENABLE_OPENSSL=OFF -DENABLE_WINDOWS_CRYPTO=OFF -DBUILD_TOOLS=OFF -DBUILD_REGRESS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_DOC=OFF -DENABLE_BZIP2=OFF -DENABLE_LZMA=OFF
4+
set COMMON_CMAKE_PARAMS=-DCMAKE_BUILD_TYPE=Release -G "Visual Studio 16 2019" -DBUILD_SHARED_LIBS=ON -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded -DCMAKE_POLICY_DEFAULT_CMP0074=NEW -DCMAKE_POLICY_DEFAULT_CMP0091=NEW
5+
6+
echo %LIBZIP_FEATURES%
7+
echo %COMMON_CMAKE_PARAMS%
8+
9+
pushd .
10+
cd external\vcpkg
11+
call bootstrap-vcpkg.bat
12+
popd
13+
external\vcpkg\vcpkg.exe integrate install
14+
external\vcpkg\vcpkg.exe install zlib:x64-windows-static zlib:x86-windows-static
15+
pushd .
16+
mkdir .\build\Windows\64
17+
cd .\build\Windows\64
18+
cmake %LIBZIP_FEATURES% %COMMON_CMAKE_PARAMS% -DZLIB_ROOT=..\..\..\external\vcpkg\installed\x64-windows-static -A x64 ..\..\..\external\libzip
19+
cmake --build . --config Release -v
20+
popd
21+
pushd .
22+
23+
mkdir .\build\Windows\32
24+
cd .\build\Windows\32
25+
cmake %LIBZIP_FEATURES% %COMMON_CMAKE_PARAMS% -DZLIB_ROOT=..\..\..\external\vcpkg\installed\x86-windows-static -A Win32 ..\..\..\external\libzip
26+
cmake --build . --config Release -v
27+
popd

yaml-templates/use-dot-net.yaml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# This template enables installation of stable and master/nighly builds of .NET.
2+
# We prefer this over the UseDotNet task so that we can always clean up old/unstable versions on disk.
3+
4+
parameters:
5+
version: $(DotNetCoreVersion)
6+
remove_dotnet: false
7+
8+
steps:
9+
10+
- powershell: |
11+
$ErrorActionPreference = 'Stop'
12+
$ProgressPreference = 'SilentlyContinue'
13+
$DotNetRoot = "$env:ProgramFiles\dotnet\"
14+
if ("${{ parameters.remove_dotnet }}" -eq $true) {
15+
Remove-Item -Recurse $DotNetRoot -Verbose
16+
}
17+
Invoke-WebRequest -Uri "https://dot.net/v1/dotnet-install.ps1" -OutFile dotnet-install.ps1
18+
& .\dotnet-install.ps1 -Version ${{ parameters.version }} -InstallDir $DotNetRoot -Verbose
19+
& dotnet --list-sdks
20+
displayName: install .NET Core ${{ parameters.version }}
21+
condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'))
22+
- bash: >
23+
DOTNET_ROOT=~/.dotnet/ &&
24+
(if [[ "${{ parameters.remove_dotnet }}" == "true" ]] ; then rm -rfv $DOTNET_ROOT; fi) &&
25+
curl -L https://dot.net/v1/dotnet-install.sh > dotnet-install.sh &&
26+
chmod +x dotnet-install.sh &&
27+
./dotnet-install.sh --version ${{ parameters.version }} --install-dir $DOTNET_ROOT --verbose &&
28+
PATH="$DOTNET_ROOT:$PATH" &&
29+
dotnet --list-sdks &&
30+
echo "##vso[task.setvariable variable=DOTNET_ROOT]$DOTNET_ROOT" &&
31+
echo "##vso[task.setvariable variable=PATH]$PATH"
32+
displayName: install .NET Core ${{ parameters.version }}
33+
condition: and(succeeded(), eq(variables['agent.os'], 'Darwin'))

0 commit comments

Comments
 (0)