Skip to content

Commit

Permalink
project: Update AppVeyor CI to use gitlink.
Browse files Browse the repository at this point in the history
  • Loading branch information
Sibras committed Jul 11, 2016
1 parent b37bd9c commit fdcc7ae
Show file tree
Hide file tree
Showing 3 changed files with 73 additions and 31 deletions.
59 changes: 49 additions & 10 deletions SMP/appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,29 +4,51 @@ branches:
only:
- master
skip_non_tags: true
configuration: Release+ReleaseDLL
shallow_clone: true

configuration: Release+ReleaseDLL

platform: x86+x64

environment:
matrix:
- MSVC_VER: 14
- MSVC_VER: 12

- MSVC_VER: 14

install:
# Install GitLink
- cmd: choco install gitlink

before_build:
# Create build project to compile all configurations and platforms at once
- ps: >-
$script = @'
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build" ToolsVersion="4.0">
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="GitLink" ToolsVersion="4.0">
<ItemGroup>
<ConfigurationList Condition="'@(ConfigurationList)' == '' and $(Configuration) != ''" Include="$(Configuration.Split('+'))" />
<ConfigurationList Condition="'@(ConfigurationList)' == ''" Include="Release" />
<PlatformList Condition="'@(PlatformList)' == ''" Include="x64;Win32" />
<PlatformList Condition="'@(PlatformList)' == '' and $(Platform) != ''" Include="$(Platform.Split('+'))" />
<PlatformList Condition="'@(PlatformList)' == ''" Include="x64;x86" />
</ItemGroup>
<Target Name="Build" Outputs="%(PlatformList.Identity)">
<Target Name="List" Outputs="%(PlatformList.Identity)">
<PropertyGroup>
<CurrentPlatform>%(PlatformList.Identity)</CurrentPlatform>
</PropertyGroup>
<ItemGroup>
<ProjectToBuild Include="SMP/APPVEYOR_PROJECT_NAME.sln">
<Properties>Configuration=%(ConfigurationList.Identity);Platform=$(CurrentPlatform);OutDir=$(MSBuildThisFileDirectory)build_out\</Properties>
</ProjectToBuild>
</ItemGroup>
</Target>
<Target Name="Build" DependsOnTargets="List">
<MSBuild Projects="@(ProjectToBuild)" BuildInParallel="true" />
</Target>
<Target Name="GitLink" DependsOnTargets="Build" Outputs="%(PlatformList.Identity)">
<PropertyGroup>
<CurrentPlatform>%(PlatformList.Identity)</CurrentPlatform>
</PropertyGroup>
<MSBuild Projects="SMP/APPVEYOR_PROJECT_NAME.sln" Properties="Configuration=%(ConfigurationList.Identity);Platform=$(CurrentPlatform);OutDir=$(MSBuildThisFileDirectory)build_out\;" />
<Exec Command="GitLink . -f SMP/APPVEYOR_PROJECT_NAME.sln -c %(ConfigurationList.Identity) -p $(CurrentPlatform) -d $(MSBuildThisFileDirectory)build_out\lib\$(CurrentPlatform) -u https://github.com/APPVEYOR_REPO_NAME.git -s APPVEYOR_REPO_COMMIT -errorsaswarnings"/>
</Target>
</Project>
Expand All @@ -35,16 +57,33 @@ before_build:
$script = $script -replace "APPVEYOR_PROJECT_NAME", "$env:APPVEYOR_PROJECT_NAME"
$script = $script -replace "APPVEYOR_REPO_NAME", "$env:APPVEYOR_REPO_NAME"
$script = $script -replace "APPVEYOR_REPO_COMMIT", "$env:APPVEYOR_REPO_COMMIT"
$script | Out-File build.vcxproj
# Backup platform so it is not affected by vcvars
- cmd: SET PLATFORMBACK=%PLATFORM%

# Setup msvc environment for required compiler version (specified by MSVC_VER)
- ps: $env:VSCOMNTOOLS=(Get-Content ("env:VS" + "$env:MSVC_VER" + "0COMNTOOLS"))
- cmd: call "%VSCOMNTOOLS%\..\..\VC\vcvarsall.bat" amd64

# Reset platform
- cmd: SET PLATFORM=%PLATFORMBACK%

# Download and install yasm integration
- ps: (New-Object Net.WebClient).DownloadFile('http://www.tortall.net/projects/yasm/releases/vsyasm-1.3.0-win64.zip', "$pwd\yasm.zip")
- ps: Add-Type -A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::ExtractToDirectory("$pwd\yasm.zip", "$pwd\TempYASMUnpack");
- ps: Add-Type -A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::ExtractToDirectory("$pwd\yasm.zip", "$pwd\TempYASMUnpack")
- ps: Move-Item -Force "TempYASMUnpack\*.exe" "$env:VSCOMNTOOLS\..\..\VC\bin"
- ps: $env:MSBUILDDIR=((Get-Command msbuild.exe).Path | Split-Path -parent)
- ps: (Get-Content "$pwd\TempYASMUnpack\vsyasm.props") -replace '\$\(Platform\)', 'win$(PlatformArchitecture)' | Set-Content "$pwd\TempYASMUnpack\vsyasm.props"
- ps: Move-Item -Force "TempYASMUnpack\*.*" "$env:MSBUILDDIR\..\..\..\Microsoft.Cpp\v4.0\V${env:MSVC_VER}0\BuildCustomizations"

- ps: Copy-Item -Force "TempYASMUnpack\*.*" "$env:MSBUILDDIR\..\..\..\Microsoft.Cpp\v4.0\V${env:MSVC_VER}0\BuildCustomizations"
# Make additional copy so its available to GitLink (which currently looks in the wrong location)
- ps: Copy-Item -Force "TempYASMUnpack\*.*" "$env:MSBUILDDIR\..\..\..\Microsoft.Cpp\v4.0\BuildCustomizations"
- ps: Copy-Item -Force "TempYASMUnpack\*.*" "$env:MSBUILDDIR\..\..\..\Microsoft.Cpp\v4.0\V120\BuildCustomizations"

build:
project: build.vcxproj
parallel: true
Expand Down
43 changes: 22 additions & 21 deletions SMP/libx265.sln
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 12.00

VisualStudioVersion = 12.0.30723.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libx265", "libx265.vcxproj", "{2CF9B09C-DC32-46BD-BF78-5B00B7E4ED00}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "program", "program", "{20A224A6-544D-49B2-B0B0-4B5B5FF9689D}"
Expand All @@ -12,48 +13,48 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "x265cli", "x265cli.vcxproj"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
DebugDLL|Win32 = DebugDLL|Win32
Debug|x86 = Debug|x86
DebugDLL|x64 = DebugDLL|x64
Release|Win32 = Release|Win32
DebugDLL|x86 = DebugDLL|x86
Release|x64 = Release|x64
ReleaseDLL|Win32 = ReleaseDLL|Win32
Release|x86 = Release|x86
ReleaseDLL|x64 = ReleaseDLL|x64
ReleaseLTO|Win32 = ReleaseLTO|Win32
ReleaseDLL|x86 = ReleaseDLL|x86
ReleaseLTO|x64 = ReleaseLTO|x64
ReleaseLTO|x86 = ReleaseLTO|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{2CF9B09C-DC32-46BD-BF78-5B00B7E4ED00}.Debug|Win32.ActiveCfg = Debug|Win32
{2CF9B09C-DC32-46BD-BF78-5B00B7E4ED00}.Debug|Win32.Build.0 = Debug|Win32
{2CF9B09C-DC32-46BD-BF78-5B00B7E4ED00}.Debug|x64.ActiveCfg = Debug|x64
{2CF9B09C-DC32-46BD-BF78-5B00B7E4ED00}.Debug|x64.Build.0 = Debug|x64
{2CF9B09C-DC32-46BD-BF78-5B00B7E4ED00}.DebugDLL|Win32.ActiveCfg = DebugDLL|Win32
{2CF9B09C-DC32-46BD-BF78-5B00B7E4ED00}.DebugDLL|Win32.Build.0 = DebugDLL|Win32
{2CF9B09C-DC32-46BD-BF78-5B00B7E4ED00}.Debug|x86.ActiveCfg = Debug|Win32
{2CF9B09C-DC32-46BD-BF78-5B00B7E4ED00}.Debug|x86.Build.0 = Debug|Win32
{2CF9B09C-DC32-46BD-BF78-5B00B7E4ED00}.DebugDLL|x64.ActiveCfg = DebugDLL|x64
{2CF9B09C-DC32-46BD-BF78-5B00B7E4ED00}.DebugDLL|x64.Build.0 = DebugDLL|x64
{2CF9B09C-DC32-46BD-BF78-5B00B7E4ED00}.Release|Win32.ActiveCfg = Release|Win32
{2CF9B09C-DC32-46BD-BF78-5B00B7E4ED00}.Release|Win32.Build.0 = Release|Win32
{2CF9B09C-DC32-46BD-BF78-5B00B7E4ED00}.DebugDLL|x86.ActiveCfg = DebugDLL|Win32
{2CF9B09C-DC32-46BD-BF78-5B00B7E4ED00}.DebugDLL|x86.Build.0 = DebugDLL|Win32
{2CF9B09C-DC32-46BD-BF78-5B00B7E4ED00}.Release|x64.ActiveCfg = Release|x64
{2CF9B09C-DC32-46BD-BF78-5B00B7E4ED00}.Release|x64.Build.0 = Release|x64
{2CF9B09C-DC32-46BD-BF78-5B00B7E4ED00}.ReleaseDLL|Win32.ActiveCfg = ReleaseDLL|Win32
{2CF9B09C-DC32-46BD-BF78-5B00B7E4ED00}.ReleaseDLL|Win32.Build.0 = ReleaseDLL|Win32
{2CF9B09C-DC32-46BD-BF78-5B00B7E4ED00}.Release|x86.ActiveCfg = Release|Win32
{2CF9B09C-DC32-46BD-BF78-5B00B7E4ED00}.Release|x86.Build.0 = Release|Win32
{2CF9B09C-DC32-46BD-BF78-5B00B7E4ED00}.ReleaseDLL|x64.ActiveCfg = ReleaseDLL|x64
{2CF9B09C-DC32-46BD-BF78-5B00B7E4ED00}.ReleaseDLL|x64.Build.0 = ReleaseDLL|x64
{2CF9B09C-DC32-46BD-BF78-5B00B7E4ED00}.ReleaseLTO|Win32.ActiveCfg = ReleaseLTO|Win32
{2CF9B09C-DC32-46BD-BF78-5B00B7E4ED00}.ReleaseLTO|Win32.Build.0 = ReleaseLTO|Win32
{2CF9B09C-DC32-46BD-BF78-5B00B7E4ED00}.ReleaseDLL|x86.ActiveCfg = ReleaseDLL|Win32
{2CF9B09C-DC32-46BD-BF78-5B00B7E4ED00}.ReleaseDLL|x86.Build.0 = ReleaseDLL|Win32
{2CF9B09C-DC32-46BD-BF78-5B00B7E4ED00}.ReleaseLTO|x64.ActiveCfg = ReleaseLTO|x64
{2CF9B09C-DC32-46BD-BF78-5B00B7E4ED00}.ReleaseLTO|x64.Build.0 = ReleaseLTO|x64
{23B73CAF-85E7-442F-AACA-D0ECDDA50E1A}.Debug|Win32.ActiveCfg = Debug|Win32
{2CF9B09C-DC32-46BD-BF78-5B00B7E4ED00}.ReleaseLTO|x86.ActiveCfg = ReleaseLTO|Win32
{2CF9B09C-DC32-46BD-BF78-5B00B7E4ED00}.ReleaseLTO|x86.Build.0 = ReleaseLTO|Win32
{23B73CAF-85E7-442F-AACA-D0ECDDA50E1A}.Debug|x64.ActiveCfg = Debug|x64
{23B73CAF-85E7-442F-AACA-D0ECDDA50E1A}.DebugDLL|Win32.ActiveCfg = Debug|Win32
{23B73CAF-85E7-442F-AACA-D0ECDDA50E1A}.Debug|x86.ActiveCfg = Debug|Win32
{23B73CAF-85E7-442F-AACA-D0ECDDA50E1A}.DebugDLL|x64.ActiveCfg = Debug|x64
{23B73CAF-85E7-442F-AACA-D0ECDDA50E1A}.Release|Win32.ActiveCfg = Release|Win32
{23B73CAF-85E7-442F-AACA-D0ECDDA50E1A}.DebugDLL|x86.ActiveCfg = Debug|Win32
{23B73CAF-85E7-442F-AACA-D0ECDDA50E1A}.Release|x64.ActiveCfg = Release|x64
{23B73CAF-85E7-442F-AACA-D0ECDDA50E1A}.ReleaseDLL|Win32.ActiveCfg = Release|Win32
{23B73CAF-85E7-442F-AACA-D0ECDDA50E1A}.Release|x86.ActiveCfg = Release|Win32
{23B73CAF-85E7-442F-AACA-D0ECDDA50E1A}.ReleaseDLL|x64.ActiveCfg = Release|x64
{23B73CAF-85E7-442F-AACA-D0ECDDA50E1A}.ReleaseLTO|Win32.ActiveCfg = Release|Win32
{23B73CAF-85E7-442F-AACA-D0ECDDA50E1A}.ReleaseDLL|x86.ActiveCfg = Release|Win32
{23B73CAF-85E7-442F-AACA-D0ECDDA50E1A}.ReleaseLTO|x64.ActiveCfg = Release|x64
{23B73CAF-85E7-442F-AACA-D0ECDDA50E1A}.ReleaseLTO|x86.ActiveCfg = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
2 changes: 2 additions & 0 deletions SMP/libx265.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -972,6 +972,7 @@ del /f /q $(OutDir)\licenses\x265.txt
<AdditionalDependencies>libx265_10b.lib;libx265_12b.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(OutDir)\lib\x86\;$(SolutionDir)obj\$(Platform)\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalOptions>/IGNORE:4006,4221 %(AdditionalOptions)</AdditionalOptions>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
<YASM>
<IncludePaths>$(ProjectDir)\..\common\x86;%(IncludePaths)</IncludePaths>
Expand Down Expand Up @@ -1048,6 +1049,7 @@ del /f /q $(OutDir)\licenses\x265.txt
<AdditionalDependencies>libx265_10b.lib;libx265_12b.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(OutDir)\lib\x64\;$(SolutionDir)obj\$(Platform)\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalOptions>/IGNORE:4006,4221 %(AdditionalOptions)</AdditionalOptions>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
<YASM>
<IncludePaths>$(ProjectDir)\..\common\x86;%(IncludePaths)</IncludePaths>
Expand Down

0 comments on commit fdcc7ae

Please sign in to comment.