xmake.lua 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package("openjdk")
  2. set_homepage("https://jdk.java.net")
  3. set_description("Java Development Kit builds, from Oracle")
  4. set_license("GPL-2.0")
  5. if is_host("windows", "mingw") then
  6. add_urls("https://download.oracle.com/java/$(version)/latest/jdk-$(version)_windows-x64_bin.zip")
  7. add_versions("17", "c98d85c8417703b0f72ddc5757ed66f3478ea7107b0e6d2a98cadbc73a45d77b")
  8. add_versions("21", "776afe55020560f175d8099710d8ac07c4d40772c694385c3dd765117cbd0ac3")
  9. elseif is_host("linux") then
  10. if is_arch("x86_64") then
  11. add_urls("https://download.oracle.com/java/$(version)/latest/jdk-$(version)_linux-x64_bin.tar.gz")
  12. add_versions("17", "e4fb2df9a32a876afb0a6e17f54c594c2780e18badfa2e8fc99bc2656b0a57b1")
  13. add_versions("21", "9f1f4a7f25ef6a73255657c40a6d7714f2d269cf15fb2ff1dc9c0c8b56623a6f")
  14. elseif is_arch("arm64") then
  15. add_urls("https://download.oracle.com/java/$(version)/latest/jdk-$(version)_linux-aarch64_bin.tar.gz")
  16. add_versions("17", "745e7a387e059ddc2481ccd209d691ca926fc0f35d523051822f24b296d17df7")
  17. add_versions("21", "14504bcdea0d8bc3fe9f065924e9e2dc631317b023a722565c8239075f39062d")
  18. end
  19. elseif is_host("macosx") then
  20. if is_arch("x86_64") then
  21. add_urls("https://download.oracle.com/java/$(version)/latest/jdk-$(version)_macos-x64_bin.tar.gz")
  22. add_versions("17", "7b68b833f392aa543ba538f94c60fd477581fef96a9c1ae059fa4158e9ce75ff")
  23. add_versions("21", "197a923b1f7ea2b224fafdfb9c3ef5fc8eb197d9817d7631d96da02b619f5975")
  24. elseif is_arch("arm64") then
  25. add_urls("https://download.oracle.com/java/$(version)/latest/jdk-$(version)_macos-aarch64_bin.tar.gz")
  26. add_versions("17", "d5bec93922815e9337040678ddf3f40e50b63c2b588cf63574fa1f2010206042")
  27. add_versions("21", "4b94951f03efe44cb6656e43f1098db3ce254a00412f9d22dff18a8328a7efdd")
  28. end
  29. end
  30. add_configs("shared", {description = "Download shared binaries.", default = true, type = "boolean", readonly = true})
  31. if is_plat("linux") then
  32. add_deps("alsa-lib", {configs = {shared = true, versioned = false}})
  33. add_deps("freetype", "libxtst", "libxi", "libxrender")
  34. add_extsources("pacman::jdk-openjdk", "apt::default-jdk")
  35. elseif is_plat("macosx") then
  36. add_extsources("brew::openjdk")
  37. end
  38. on_fetch("windows", "mingw", function (package, opt)
  39. if opt.system then
  40. local sdkdir = os.getenv("JAVA_HOME")
  41. if os.isdir(sdkdir) then
  42. local result = {}
  43. result.includedirs = {path.join(sdkdir, "include"), path.join(sdkdir, "include", "win32")}
  44. result.linkdirs = path.join(sdkdir, "lib")
  45. result.links = {"jvm", "jawt"}
  46. package:addenv("PATH", path.join(sdkdir, "bin"), path.join(sdkdir, "bin", "server"))
  47. return result
  48. end
  49. end
  50. end)
  51. on_install("windows|x64", "linux|x86_64", "macosx|x86_64", "macosx|arm64", "mingw|x86_64", function (package)
  52. local plat
  53. if package:is_plat("windows", "mingw") then
  54. plat = "win32"
  55. package:addenv("PATH", "bin/server")
  56. else
  57. package:add("linkdirs", "lib", "lib/server")
  58. if package:is_plat("linux") then
  59. plat = "linux"
  60. elseif package:is_plat("macosx") then
  61. plat = "darwin"
  62. os.cd("Contents/Home")
  63. end
  64. end
  65. os.cp("bin", package:installdir())
  66. os.cp("include", package:installdir())
  67. os.cp("lib", package:installdir())
  68. os.cp("jmods", package:installdir("lib"))
  69. os.cp("conf", package:installdir())
  70. package:add("includedirs", "include", path.join("include", plat))
  71. package:addenv("PATH", "bin")
  72. end)
  73. on_test(function (package)
  74. os.vrun("java -version")
  75. assert(package:has_cfuncs("JNI_CreateJavaVM", {includes = "jni.h"}))
  76. end)