native/tizen/build.cake (65 lines of code) (raw):

#addin nuget:?package=Cake.FileHelpers&version=3.2.1 DirectoryPath ROOT_PATH = MakeAbsolute(Directory("../..")); DirectoryPath OUTPUT_PATH = MakeAbsolute(ROOT_PATH.Combine("output/native/tizen")); #load "../../scripts/cake/native-shared.cake" DirectoryPath TIZEN_STUDIO_HOME = EnvironmentVariable("TIZEN_STUDIO_HOME") ?? PROFILE_PATH.Combine("tizen-studio"); var bat = IsRunningOnWindows() ? ".bat" : ""; var tizen = TIZEN_STUDIO_HOME.CombineWithFilePath($"tools/ide/bin/tizen{bat}").FullPath; var tizenVersion = "6.0"; Task("libSkiaSharp") .IsDependentOn("git-sync-deps") .Does(() => { Build("armel", "arm", $"mobile-{tizenVersion}-device.core"); Build("i586", "x86", $"mobile-{tizenVersion}-emulator.core"); void Build(string arch, string skiaArch, string rootstrap) { if (Skip(arch)) return; GnNinja($"tizen/{arch}", "skia modules/skottie", $"target_os='tizen' " + $"target_cpu='{skiaArch}' " + $"skia_enable_ganesh=true " + $"skia_use_harfbuzz=false " + $"skia_use_icu=false " + $"skia_use_piex=true " + $"skia_use_sfntly=false " + $"skia_use_system_expat=false " + $"skia_use_system_freetype2=true " + $"skia_use_system_libjpeg_turbo=false " + $"skia_use_system_libpng=false " + $"skia_use_system_libwebp=false " + $"skia_use_system_zlib=true " + $"skia_enable_skottie=true " + $"extra_cflags=[ '-DSKIA_C_DLL', '-DXML_DEV_URANDOM' ] " + $"ncli='{TIZEN_STUDIO_HOME}' " + $"ncli_version='{tizenVersion}'"); RunProcess(tizen, new ProcessSettings { Arguments = $"build-native -a {skiaArch} -c llvm -C {CONFIGURATION} -r {rootstrap}" , WorkingDirectory = MakeAbsolute((DirectoryPath)"libSkiaSharp").FullPath, }); var outDir = OUTPUT_PATH.Combine(arch); EnsureDirectoryExists(outDir); CopyFile($"libSkiaSharp/{CONFIGURATION}/libskiasharp.so", outDir.CombineWithFilePath("libSkiaSharp.so")); } }); Task("libHarfBuzzSharp") .Does(() => { Build("armel", "arm", $"mobile-{tizenVersion}-device.core"); Build("i586", "x86", $"mobile-{tizenVersion}-emulator.core"); void Build(string arch, string cliArch, string rootstrap) { if (Skip(arch)) return; RunProcess(tizen, new ProcessSettings { Arguments = $"build-native -a {cliArch} -c llvm -C {CONFIGURATION} -r {rootstrap}" , WorkingDirectory = MakeAbsolute((DirectoryPath)"libHarfBuzzSharp").FullPath, }); var outDir = OUTPUT_PATH.Combine(arch); EnsureDirectoryExists(outDir); CopyFile($"libHarfBuzzSharp/{CONFIGURATION}/libharfbuzzsharp.so", outDir.CombineWithFilePath("libHarfBuzzSharp.so")); } }); Task("Default") .IsDependentOn("libSkiaSharp") .IsDependentOn("libHarfBuzzSharp"); RunTarget(TARGET);