-
Notifications
You must be signed in to change notification settings - Fork 3
/
.appveyor.yml
125 lines (100 loc) · 5.1 KB
/
.appveyor.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
# Notes:
# - Minimal appveyor.yml file is an empty file. All sections are optional.
# - Indent each level of configuration with 2 spaces. Do not use tabs!
# - All section names are case-sensitive.
# - Section names should be unique on each level.
#---------------------------------#
# general configuration #
#---------------------------------#
# version format
version: '{branch}-{build}'
# Do not build on tags (GitHub only)
skip_tags: true
# avoid malicious attempt via pull requests
branches:
only:
- stable
#---------------------------------#
# environment configuration #
#---------------------------------#
# environment variables
# build system info: https://www.appveyor.com/docs/windows-images-software/
os: Visual Studio 2022
environment:
REPO_DIR: &REPO_DIR c:\project # directory created by appveyor
NASM_URL: https://www.nasm.us/pub/nasm/releasebuilds/2.16.03/win64/nasm-2.16.03-win64.zip
LAME_LATEST_URL: https://svn.code.sf.net/p/lame/svn/trunk
LAME_STABLE_URL: https://sourceforge.net/projects/lame/files/lame/3.100/lame-3.100.tar.gz
LAME_SOL_FILE: vs2019_lame.sln
LAME_MSBUILD_CMD_X86: /maxcpucount /target:"lame" /property:Configuration=ReleaseNASM,Platform=Win32
LAME_MSBUILD_CMD_X64: /maxcpucount /target:"lame" /property:Configuration=Release,Platform=x64
MPG123_URL_X86: https://mpg123.de/download/win32/1.32.6/mpg123-1.32.6-x86.zip
MPG123_URL_X64: https://mpg123.de/download/win64/1.32.6/mpg123-1.32.6-x86-64.zip
# clone directory
clone_folder: *REPO_DIR
#---------------------------------#
# build configuration #
#---------------------------------#
# scripts to run before build
install:
- CD \
- appveyor DownloadFile "%NASM_URL%" -FileName "c:\nasm.zip"
- 7z x "nasm.zip" > nul
- MOVE nasm-* NASM
- SET PATH=%PATH%;c:\NASM;
- nasm -v
before_build:
# download code according to branch name
- CD "%REPO_DIR%"
- ECHO "%APPVEYOR_REPO_BRANCH%"
- IF "%APPVEYOR_REPO_BRANCH%" == "master" (
svn checkout "%LAME_LATEST_URL%" "lame-svn" &&
MOVE "lame-svn\lame" "lame_src" &&
powershell -Command "& { (Get-Content 'lame_src\vc_solution\vs2019_lame_lame.vcxproj') | ForEach-Object { $_ -replace 'v142', 'v143' } | Set-Content 'lame_src\vc_solution\vs2019_lame_lame.vcxproj' }" &&
powershell -Command "& { (Get-Content 'lame_src\vc_solution\vs2019_lame_mp3rtp.vcxproj') | ForEach-Object { $_ -replace 'v142', 'v143' } | Set-Content 'lame_src\vc_solution\vs2019_lame_mp3rtp.vcxproj' }" &&
powershell -Command "& { (Get-Content 'lame_src\vc_solution\vs2019_lame_mp3x.vcxproj') | ForEach-Object { $_ -replace 'v142', 'v143' } | Set-Content 'lame_src\vc_solution\vs2019_lame_mp3x.vcxproj' }" &&
powershell -Command "& { (Get-Content 'lame_src\vc_solution\vs2019_libmp3lame.vcxproj') | ForEach-Object { $_ -replace 'v142', 'v143' } | Set-Content 'lame_src\vc_solution\vs2019_libmp3lame.vcxproj' }" &&
powershell -Command "& { (Get-Content 'lame_src\vc_solution\vs2019_libmp3lame_dll.vcxproj') | ForEach-Object { $_ -replace 'v142', 'v143' } | Set-Content 'lame_src\vc_solution\vs2019_libmp3lame_dll.vcxproj' }" &&
powershell -Command "& { (Get-Content 'lame_src\vc_solution\vs2019_libmpg123_config.props') | ForEach-Object { $_ -replace '<HaveMpg123>false</', '<HaveMpg123>true</' } | Set-Content 'lame_src\vc_solution\vs2019_libmpg123_config.props' }" &&
MKDIR lame_src\vc_solution\mpg123 &&
appveyor DownloadFile "%MPG123_URL_X86%" -FileName "mpg123_x86.zip" &&
7z x "mpg123_x86.zip" > nul &&
MOVE mpg123-* Win32 &&
MOVE Win32 lame_src\vc_solution\mpg123 &&
appveyor DownloadFile "%MPG123_URL_X64%" -FileName "mpg123_x64.zip" &&
7z x "mpg123_x64.zip" > nul &&
MOVE mpg123-* x64 &&
MOVE x64 lame_src\vc_solution\mpg123
)
- IF "%APPVEYOR_REPO_BRANCH%" == "stable" (
appveyor DownloadFile "%LAME_STABLE_URL%" -FileName "%REPO_DIR%\lame.tar.gz" &&
7z x "lame.tar.gz" > nul && 7z x "*.tar" > nul && DEL lame* &&
MOVE "lame*" "lame_src"
)
build_script:
# compile
- msbuild "%REPO_DIR%\lame_src\vc_solution\%LAME_SOL_FILE%" %LAME_MSBUILD_CMD_X86%
- msbuild "%REPO_DIR%\lame_src\vc_solution\%LAME_SOL_FILE%" %LAME_MSBUILD_CMD_X64%
after_build:
# prepare for artifacts packaging
- CD "%REPO_DIR%"
- MKDIR "win32" "x64"
- copy "%REPO_DIR%\lame_src\output\Win32\ReleaseNASM\lame.exe" "win32"
- copy "%REPO_DIR%\lame_src\output\Win32\ReleaseNASM\libmpg123-0.dll" "win32"
- copy "%REPO_DIR%\lame_src\output\x64\Release\lame.exe" "x64"
- copy "%REPO_DIR%\lame_src\output\x64\Release\libmpg123-0.dll" "x64"
- 7z a -sfx7z.sfx -mx9 "lame.exe" "Readme.md" "win32" "x64"
- 'powershell -Command "& { $hash = (Get-FileHash -Algorithm SHA256 "lame.exe").hash.ToString().toLower(); Write-Host $hash " *lame.exe"; }" > "lame.exe.sha256"'
#---------------------------------#
# tests configuration #
#---------------------------------#
# to disable automatic tests
test: off
#---------------------------------#
# artifacts configuration #
#---------------------------------#
artifacts:
- path: lame.exe
name: exe
- path: lame.exe.sha256
name: checksum