xmake.lua 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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.java.net/java/GA/jdk$(version)/6e380f22cbe7469fa75fb448bd903d8e/9/GPL/openjdk-$(version)_windows-x64_bin.zip")
  7. add_versions("20.0.2", "7e5870fd2e19b87cbd1981c4ff7203897384c2eb104977f40ce4951b40ab433e")
  8. elseif is_host("linux") then
  9. if is_arch("x86_64") then
  10. add_urls("https://download.java.net/java/GA/jdk$(version)/6e380f22cbe7469fa75fb448bd903d8e/9/GPL/openjdk-$(version)_linux-x64_bin.tar.gz")
  11. add_versions("20.0.2", "beaf61959c2953310595e1162b0c626aef33d58628771033ff2936609661956c")
  12. elseif is_arch("arm64") then
  13. add_urls("https://download.java.net/java/GA/jdk$(version)/6e380f22cbe7469fa75fb448bd903d8e/9/GPL/openjdk-$(version)_linux-aarch64_bin.tar.gz")
  14. add_versions("20.0.2", "3238c93267c663dbca00f5d5b0e3fbba40e1eea2b4281612f40542d208b6dd9a")
  15. end
  16. elseif is_host("macosx") then
  17. if is_arch("x86_64") then
  18. add_urls("https://download.java.net/java/GA/jdk$(version)/6e380f22cbe7469fa75fb448bd903d8e/9/GPL/openjdk-$(version)_macos-x64_bin.tar.gz")
  19. add_versions("20.0.2", "c65ba92b73d8076e2a10029a0674d40ce45c3e0183a8063dd51281e92c9f43fc")
  20. elseif is_arch("arm64") then
  21. add_urls("https://download.java.net/java/GA/jdk$(version)/6e380f22cbe7469fa75fb448bd903d8e/9/GPL/openjdk-$(version)_macos-x64_bin.tar.gz")
  22. add_versions("20.0.2", "2e6522bb574f76cd3f81156acd59115a014bf452bbe4107f0d31ff9b41b3da57")
  23. end
  24. end
  25. add_configs("shared", {description = "Download shared binaries.", default = true, type = "boolean", readonly = true})
  26. if is_plat("linux") then
  27. add_deps("alsa-lib", {configs = {shared = true, versioned = false}})
  28. add_deps("freetype", "libxtst", "libxi", "libxrender")
  29. add_extsources("pacman::jdk-openjdk", "apt::default-jdk")
  30. elseif is_plat("macosx") then
  31. add_extsources("brew::openjdk")
  32. end
  33. on_fetch("windows", "mingw", function (package, opt)
  34. if opt.system then
  35. local sdkdir = os.getenv("JAVA_HOME")
  36. if os.isdir(sdkdir) then
  37. local result = {}
  38. result.includedirs = {path.join(sdkdir, "include"), path.join(sdkdir, "include", "win32")}
  39. result.linkdirs = path.join(sdkdir, "lib")
  40. result.links = {"jvm", "jawt"}
  41. package:addenv("PATH", path.join(sdkdir, "bin"), path.join(sdkdir, "bin", "server"))
  42. return result
  43. end
  44. end
  45. end)
  46. on_install("windows|x64", "linux|x86_64", "macosx|x86_64", "macosx|arm64", "mingw|x86_64", function (package)
  47. local plat
  48. if package:is_plat("windows", "mingw") then
  49. plat = "win32"
  50. package:addenv("PATH", "bin/server")
  51. else
  52. package:add("linkdirs", "lib", "lib/server")
  53. if package:is_plat("linux") then
  54. plat = "linux"
  55. elseif package:is_plat("macosx") then
  56. plat = "darwin"
  57. os.cd("Contents/Home")
  58. end
  59. end
  60. os.cp("bin", package:installdir())
  61. os.cp("include", package:installdir())
  62. os.cp("lib", package:installdir())
  63. os.cp("jmods", package:installdir("lib"))
  64. os.cp("conf", package:installdir())
  65. package:add("includedirs", "include", path.join("include", plat))
  66. package:addenv("PATH", "bin")
  67. end)
  68. on_test(function (package)
  69. os.vrun("java -version")
  70. assert(package:has_cfuncs("JNI_CreateJavaVM", {includes = "jni.h"}))
  71. end)