package An official xmake package repository
https://xrepo.xmake.io/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
3.3 KiB
84 lines
3.3 KiB
package("skia") |
|
|
|
set_homepage("https://skia.org/") |
|
set_description("A complete 2D graphic library for drawing Text, Geometries, and Images.") |
|
|
|
set_urls("https://skia.googlesource.com/skia.git", |
|
"https://github.com/google/skia.git") |
|
|
|
add_versions("68046c", "68046cd7be837bd31bc8f0e821a2f82a02dda9cf") |
|
|
|
add_deps("python2", "ninja") |
|
|
|
add_links("skia") |
|
add_includedirs("include") |
|
add_includedirs("include/android") |
|
add_includedirs("include/atlastext") |
|
add_includedirs("include/c") |
|
add_includedirs("include/codec") |
|
add_includedirs("include/config") |
|
add_includedirs("include/core") |
|
add_includedirs("include/docs") |
|
add_includedirs("include/effects") |
|
add_includedirs("include/encode") |
|
add_includedirs("include/gpu") |
|
add_includedirs("include/pathops") |
|
add_includedirs("include/ports") |
|
add_includedirs("include/private") |
|
add_includedirs("include/svg") |
|
add_includedirs("include/third_party") |
|
add_includedirs("include/utils") |
|
|
|
-- @note windows: only can build for vs2017 or vs2015 update 3 |
|
on_install("macosx", "linux", "windows", function (package) |
|
local pathes = os.getenv("PATH") or "" |
|
pathes = pathes .. path.envsep() .. path.join(os.curdir(), "depot_tools") |
|
pathes = pathes .. path.envsep() .. path.join(os.curdir(), "bin") |
|
local args = {is_official_build = false, |
|
is_component_build = false, |
|
is_debug = package:debug(), |
|
skia_enable_gpu = true, |
|
skia_enable_pdf = false, |
|
skia_enable_nvpr = false, |
|
skia_enable_tools = false, |
|
skia_use_icu = false, |
|
skia_use_sfntly = false, |
|
skia_use_piex = false, |
|
skia_use_freetype = false, |
|
skia_use_harfbuzz = false, |
|
skia_use_libheif = false, |
|
skia_use_expat = false, |
|
skia_use_libjpeg_turbo = false, |
|
skia_use_libpng = false, |
|
skia_use_libwebp = false, |
|
skia_use_zlib = false} |
|
args.cc = package:build_getenv("cc") |
|
args.cxx = package:build_getenv("cxx") |
|
local argstr = "" |
|
for k, v in pairs(args) do |
|
if type(v) == "string" then |
|
argstr = argstr .. ' ' .. k .. '=\"' .. v .. "\"" |
|
else |
|
argstr = argstr .. ' ' .. k .. '=' .. tostring(v) |
|
end |
|
end |
|
os.vrun("python2 tools/git-sync-deps") |
|
os.vrun("bin/gn gen build --args='%s'", argstr:trim()) |
|
os.vrun("ninja -C build") |
|
os.cp("include", package:installdir()) |
|
os.cp("third_party/skcms/*.h", package:installdir("third_party/skcms")) |
|
if is_plat("windows") then |
|
os.cp("build/*.lib", package:installdir("lib")) |
|
else |
|
os.cp("build/*.a", package:installdir("lib")) |
|
end |
|
end) |
|
|
|
on_test(function (package) |
|
assert(package:check_cxxsnippets({test = [[ |
|
static void test() { |
|
SkPaint paint; |
|
paint.setStyle(SkPaint::kFill_Style); |
|
} |
|
]]}, {configs = {languages = "c++14"}, includes = "core/SkPaint.h", defines = "DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN"})) |
|
end)
|
|
|