xmake.lua 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. package("ultralight")
  2. set_homepage("https://ultralig.ht")
  3. set_description("Ultralight makes it easy for C/C++ developers to seamlessly integrate web-content into games and desktop apps.")
  4. set_license("LGPL")
  5. local versions = {
  6. ["1.3.0"] = "208d653"
  7. }
  8. if is_plat("windows") then
  9. if is_arch("x86_64", "x64") then
  10. add_urls("https://ultralight-sdk.sfo2.cdn.digitaloceanspaces.com/ultralight-sdk-$(version)-win-x64.7z", {alias = "release", version = function (version)
  11. return versions[tostring(version)]
  12. end})
  13. add_versions("release:1.3.0", "4fa7aadd1e4ba4a7dc04d17b1d82b37b141c6e4e7196501150486fa6ac1635c5")
  14. add_urls("https://github.com/xmake-mirror/Ultralight/releases/download/$(version)", {alias = "mirror", version = function (version)
  15. local beta_version, count = version:gsub("-beta$", "b")
  16. if count ~= 1 then
  17. return version .. "/ultralight-free-sdk-" .. beta_version .. "-win-x64.7z"
  18. else
  19. return version .. "/ultralight-sdk-" .. beta_version .. "-win-x64.7z"
  20. end
  21. end})
  22. add_versions("mirror:1.4.0-beta", "6749c3d1aef49ba1c4ca783a453fe2f68b827b5935534751b68623b4b0eb91f1")
  23. add_versions("mirror:1.4.0", "136d5d166da07b2029d915cc3c809288e56dd0bce0f0e54c5102f3ed16ce385a")
  24. end
  25. elseif is_plat("linux") then
  26. if is_arch("x86_64", "x64") then
  27. add_urls("https://ultralight-sdk.sfo2.cdn.digitaloceanspaces.com/ultralight-sdk-$(version)-linux-x64.7z", {alias = "release", version = function (version)
  28. return versions[tostring(version)]
  29. end})
  30. add_versions("release:1.3.0", "1de6298b5ed3c5e0c22ac27e0e30fcb0ba6d195467a58ee44ef4e13dd1a6d352")
  31. add_urls("https://github.com/xmake-mirror/Ultralight/releases/download/$(version)", {alias = "mirror", version = function (version)
  32. local beta_version, count = version:gsub("-beta$", "b")
  33. if count ~= 1 then
  34. return version .. "/ultralight-free-sdk-" .. beta_version .. "-linux-x64.7z"
  35. else
  36. return version .. "/ultralight-sdk-" .. beta_version .. "-linux-x64.7z"
  37. end
  38. end})
  39. add_versions("mirror:1.4.0-beta", "1d5092bfd7d96417547872a5c5b5950207f495ea299d713fa105314f4185c760")
  40. add_versions("mirror:1.4.0", "75e3079a9bcae834e98607af0d8ec6ef8f8144abc674ce961cf878fb2d816ddd")
  41. else
  42. add_urls("https://github.com/xmake-mirror/Ultralight/releases/download/$(version)", {alias = "mirror", version = function (version)
  43. local beta_version, count = version:gsub("-beta$", "b")
  44. if count ~= 1 then
  45. return version .. "/ultralight-free-sdk-" .. beta_version .. "-linux-arm64.7z"
  46. else
  47. return version .. "/ultralight-sdk-" .. beta_version .. "-linux-arm64.7z"
  48. end
  49. end})
  50. add_versions("mirror:1.4.0-beta", "efa8f6c8b351daa42570f11bcb162f280cca2ce8e167f854a5e0687db854f268")
  51. add_versions("mirror:1.4.0", "7c577948493f52d7f647d3fd5fde6bee8c102b0448c74c460ccf695eab01a742")
  52. end
  53. elseif is_plat("macosx") then
  54. if is_arch("x86_64", "x64") then
  55. add_urls("https://ultralight-sdk.sfo2.cdn.digitaloceanspaces.com/ultralight-sdk-$(version)-mac-x64.7z", {alias = "release", version = function (version)
  56. return versions[tostring(version)]
  57. end})
  58. add_versions("release:1.3.0", "bbf81ed456a617a60a19e9a76946e4479d5bac877f859005c50f66e9ec3c77a2")
  59. add_urls("https://github.com/xmake-mirror/Ultralight/releases/download/$(version)", {alias = "mirror", version = function (version)
  60. local beta_version, count = version:gsub("-beta$", "b")
  61. if count ~= 1 then
  62. return version .. "/ultralight-free-sdk-" .. beta_version .. "-mac-x64.7z"
  63. else
  64. return version .. "/ultralight-sdk-" .. beta_version .. "-mac-x64.7z"
  65. end
  66. end})
  67. add_versions("mirror:1.4.0-beta", "ac2abd395a5080d35d36a482b7c8e2f4e7bb89bfb6705d35ec07d9dcb4528fa7")
  68. add_versions("mirror:1.4.0", "96c6fa7ad6ae46254fc13633cd04d1684f900028831666bea2f1b1618c12f87f")
  69. else
  70. add_urls("https://github.com/xmake-mirror/Ultralight/releases/download/$(version)", {alias = "mirror", version = function (version)
  71. local beta_version, count = version:gsub("-beta$", "b")
  72. if count ~= 1 then
  73. return version .. "/ultralight-free-sdk-" .. beta_version .. "-mac-arm64.7z"
  74. else
  75. return version .. "/ultralight-sdk-" .. beta_version .. "-mac-arm64.7z"
  76. end
  77. end})
  78. add_versions("mirror:1.4.0-beta", "3b8c71cf8e403738dcdb12cacc233838c168d48322c31d40ec1c6fcaa761a016")
  79. add_versions("mirror:1.4.0", "8f9b46a83d9fdeca5a9f67b7c7e59f1dbdcf3bb78d38a645ad33678199b4d9e7")
  80. end
  81. end
  82. add_configs("shared", {description = "Build shared library.", default = true, type = "boolean", readonly = true})
  83. if is_plat("linux") then
  84. add_deps("fontconfig")
  85. end
  86. on_check(function (package)
  87. if package:version():gt("1.3.0") then
  88. if package:is_plat("linux") then
  89. local distrib = linuxos.name()
  90. assert(distrib ~= "archlinux", "package(ultralight): Archlinux is not supported.")
  91. assert(distrib ~= "fedora", "package(ultralight): Fedora is not supported.")
  92. end
  93. else
  94. assert(not package:is_arch("arm.*"), "package(ultralight): version older than 1.4.0 does not support arm.")
  95. end
  96. assert(not package:is_arch("x86", "i386", "i686"), "package(ultralight): does not support x86/i386/i686.")
  97. end)
  98. on_install("windows|!arm*", "linux", "macosx", function (package)
  99. os.cp("include", package:installdir())
  100. os.trycp("bin/*.dll", package:installdir("bin"))
  101. os.trycp("lib/*.lib", package:installdir("lib"))
  102. os.trycp("bin/*.so", package:installdir("lib"))
  103. os.trycp("bin/*.dylib", package:installdir("lib"))
  104. end)
  105. on_test(function (package)
  106. assert(package:check_cxxsnippets({test = [[
  107. #include <AppCore/App.h>
  108. #include <Ultralight/platform/Platform.h>
  109. void test()
  110. {
  111. auto app = ultralight::App::Create();
  112. }
  113. ]]}, {configs = {languages = "c++17"}}))
  114. end)