Skip to content

Commit

Permalink
Fix CI after VS updates (#2047)
Browse files Browse the repository at this point in the history
  • Loading branch information
mattleibow authored May 17, 2022
1 parent 2e12735 commit e2a8025
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 9 deletions.
2 changes: 1 addition & 1 deletion externals/skia
39 changes: 31 additions & 8 deletions native/uwp/build.cake
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
var SKIP_ANGLE = Argument ("skipAngle", false);
bool SKIP_ANGLE = Argument ("skipAngle", false);
string VC_TOOLSET_VERSION = Argument("vcToolsetVersion", "14.2");

DirectoryPath ROOT_PATH = MakeAbsolute(Directory("../.."));
DirectoryPath VCPKG_PATH = MakeAbsolute(ROOT_PATH.Combine("externals/vcpkg"));
Expand All @@ -21,6 +22,7 @@ Task("libSkiaSharp")
{
if (Skip(arch)) return;
var win_vcvars_version = string.IsNullOrEmpty(VC_TOOLSET_VERSION) ? "" : $"win_vcvars_version='{VC_TOOLSET_VERSION}' ";
var d = CONFIGURATION.ToLower() == "release" ? "" : "d";
GnNinja($"uwp/{arch}", "SkiaSharp",
Expand All @@ -35,6 +37,7 @@ Task("libSkiaSharp")
$"skia_use_system_libpng=false " +
$"skia_use_system_libwebp=false " +
$"skia_use_system_zlib=false " +
win_vcvars_version +
$"extra_cflags=[ " +
$" '-DSKIA_C_DLL', '/MD{d}', '/EHsc', '/Z7', " +
$" '-DSK_HAS_DWRITE_1_H', '-DSK_HAS_DWRITE_2_H', '-DNO_GETENV', '-D_HAS_AUTO_PTR_ETC=1' ] " +
Expand Down Expand Up @@ -105,6 +108,9 @@ Task("ANGLE")
if (!FileExists (vcpkg))
RunProcess (VCPKG_PATH.CombineWithFilePath ("bootstrap-vcpkg.bat"));
var platform_toolset = string.IsNullOrEmpty(VC_TOOLSET_VERSION) ? "" : $"v{VC_TOOLSET_VERSION.Replace(".", "")}";
var toolset_suffix = string.IsNullOrEmpty(VC_TOOLSET_VERSION) ? "" : $"-{platform_toolset}";
Build("x86");
Build("x64");
Build("arm");
Expand All @@ -114,19 +120,36 @@ Task("ANGLE")
{
if (Skip(arch)) return;
var triplet = $"{arch}-uwp{toolset_suffix}";
// make the versioned triplets
if (!string.IsNullOrEmpty(VC_TOOLSET_VERSION)) {
var cmake = VCPKG_PATH.CombineWithFilePath ($"triplets/community/{triplet}.cmake");
if (!FileExists (cmake)) {
var src = VCPKG_PATH.CombineWithFilePath ($"triplets/{arch}-uwp.cmake");
if (!FileExists (src))
src = VCPKG_PATH.CombineWithFilePath ($"triplets/community/{arch}-uwp.cmake");
CopyFile (src, cmake);
System.IO.File.AppendAllLines (cmake.FullPath, new [] {
$"set(VCPKG_PLATFORM_TOOLSET \"{platform_toolset}\")",
$"set(VCPKG_DEP_INFO_OVERRIDE_VARS \"{platform_toolset}\")",
});
}
}
var d = CONFIGURATION.ToLower() == "release" ? "" : "debug/";
var zd = CONFIGURATION.ToLower() == "release" ? "" : "d";
RunProcess (vcpkg, $"install angle:{arch}-uwp");
RunProcess (vcpkg, $"install angle:{triplet}");
var outDir = OUTPUT_PATH.Combine(arch);
EnsureDirectoryExists(outDir);
CopyFileToDirectory(VCPKG_PATH.CombineWithFilePath ($"installed/{arch}-uwp/{d}bin/libEGL.dll"), outDir);
CopyFileToDirectory(VCPKG_PATH.CombineWithFilePath ($"installed/{arch}-uwp/{d}bin/libEGL.pdb"), outDir);
CopyFileToDirectory(VCPKG_PATH.CombineWithFilePath ($"installed/{arch}-uwp/{d}bin/libGLESv2.dll"), outDir);
CopyFileToDirectory(VCPKG_PATH.CombineWithFilePath ($"installed/{arch}-uwp/{d}bin/libGLESv2.pdb"), outDir);
CopyFileToDirectory(VCPKG_PATH.CombineWithFilePath ($"installed/{arch}-uwp/{d}bin/zlib{zd}1.dll"), outDir);
CopyFileToDirectory(VCPKG_PATH.CombineWithFilePath ($"installed/{arch}-uwp/{d}bin/zlib{zd}.pdb"), outDir);
CopyFileToDirectory(VCPKG_PATH.CombineWithFilePath ($"installed/{triplet}/{d}bin/libEGL.dll"), outDir);
CopyFileToDirectory(VCPKG_PATH.CombineWithFilePath ($"installed/{triplet}/{d}bin/libEGL.pdb"), outDir);
CopyFileToDirectory(VCPKG_PATH.CombineWithFilePath ($"installed/{triplet}/{d}bin/libGLESv2.dll"), outDir);
CopyFileToDirectory(VCPKG_PATH.CombineWithFilePath ($"installed/{triplet}/{d}bin/libGLESv2.pdb"), outDir);
CopyFileToDirectory(VCPKG_PATH.CombineWithFilePath ($"installed/{triplet}/{d}bin/zlib{zd}1.dll"), outDir);
CopyFileToDirectory(VCPKG_PATH.CombineWithFilePath ($"installed/{triplet}/{d}bin/zlib{zd}.pdb"), outDir);
}
});

Expand Down
3 changes: 3 additions & 0 deletions native/windows/build.cake
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ DirectoryPath ROOT_PATH = MakeAbsolute(Directory("../.."));
DirectoryPath OUTPUT_PATH = MakeAbsolute(ROOT_PATH.Combine("output/native"));

DirectoryPath LLVM_HOME = Argument("llvm", EnvironmentVariable("LLVM_HOME") ?? "C:/Program Files/LLVM");
string VC_TOOLSET_VERSION = Argument("vcToolsetVersion", "14.2");

string SUPPORT_VULKAN_VAR = Argument ("supportVulkan", EnvironmentVariable ("SUPPORT_VULKAN") ?? "true");
bool SUPPORT_VULKAN = SUPPORT_VULKAN_VAR == "1" || SUPPORT_VULKAN_VAR.ToLower () == "true";
Expand Down Expand Up @@ -31,6 +32,7 @@ Task("libSkiaSharp")
if (Skip(arch)) return;
var clang = string.IsNullOrEmpty(LLVM_HOME.FullPath) ? "" : $"clang_win='{LLVM_HOME}' ";
var win_vcvars_version = string.IsNullOrEmpty(VC_TOOLSET_VERSION) ? "" : $"win_vcvars_version='{VC_TOOLSET_VERSION}' ";
var d = CONFIGURATION.ToLower() == "release" ? "" : "d";
GnNinja($"{VARIANT}/{arch}", "SkiaSharp",
Expand All @@ -48,6 +50,7 @@ Task("libSkiaSharp")
$"skia_use_system_zlib=false " +
$"skia_use_vulkan={SUPPORT_VULKAN} ".ToLower () +
clang +
win_vcvars_version +
$"extra_cflags=[ '-DSKIA_C_DLL', '/MT{d}', '/EHsc', '/Z7', '-D_HAS_AUTO_PTR_ETC=1' ] " +
$"extra_ldflags=[ '/DEBUG:FULL' ] " +
ADDITIONAL_GN_ARGS);
Expand Down
4 changes: 4 additions & 0 deletions scripts/install-llvm.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,8 @@ Write-Host "Installing LLVM..."
# make sure that LLVM is in LLVM_HOME
Write-Host "##vso[task.setvariable variable=LLVM_HOME;]$InstallDestination";

# TODO: update the version of `win_vcvars_version` in
# - native\windows\build.cake
# - native\uwp\build.cake

exit $LASTEXITCODE

0 comments on commit e2a8025

Please sign in to comment.