xmake.lua 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. package("bass24")
  2. set_homepage("https://www.un4seen.com/")
  3. set_description("BASS is an audio library for use in software. It provides efficient sample, stream, MOD music, MO3 music, and recording functions.")
  4. if is_plat("windows") then
  5. if is_arch("arm64") then
  6. add_urls("https://www.un4seen.com/files/bass$(version)-arm64.zip", {version = function (version)
  7. return version:gsub("%.", "")
  8. end})
  9. add_versions("2.4", "57986e7868e524bd554ba31945e758fb973091bc74ee536859153a89f9b01617")
  10. add_resources("2.4", "bass_header", "https://www.un4seen.com/files/bass24.zip", "f9e74a672eb1ecee8e41dff0ec5bad24a2678181312c94b81988a718d7c29574")
  11. else
  12. add_urls("https://www.un4seen.com/files/bass$(version).zip", {version = function (version)
  13. return version:gsub("%.", "")
  14. end})
  15. add_versions("2.4", "f9e74a672eb1ecee8e41dff0ec5bad24a2678181312c94b81988a718d7c29574")
  16. end
  17. elseif is_plat("linux") then
  18. add_urls("https://www.un4seen.com/files/bass$(version)-linux.zip", {version = function (version)
  19. return version:gsub("%.", "")
  20. end})
  21. add_versions("2.4", "fc9025bed66d9f3bb36635b2de7d564fc4396552ced012490094fbfdd10b4b7a")
  22. elseif is_plat("macosx") then
  23. add_urls("https://www.un4seen.com/files/bass$(version)-osx.zip", {version = function (version)
  24. return version:gsub("%.", "")
  25. end})
  26. add_versions("2.4", "9fbcb50e5d3c6bb666b921f4a1088d975603a276128a7ceab527ff401ee0f352")
  27. elseif is_plat("android") then
  28. add_urls("https://www.un4seen.com/files/bass$(version)-android.zip", {version = function (version)
  29. return version:gsub("%.", "")
  30. end})
  31. add_versions("2.4", "9fce1f66a2754963665c5fc55fdefcd0d62a078a2299ae061f9c5f1e209fdd9e")
  32. elseif is_plat("iphoneos") then
  33. add_urls("https://www.un4seen.com/files/bass$(version)-ios.zip", {version = function (version)
  34. return version:gsub("%.", "")
  35. end})
  36. add_versions("2.4", "78f0b372c94d0bef767dc8fd08689e42d41db63a386b1ae718ef6982ca278733")
  37. end
  38. add_configs("shared", {description = "Build shared library.", default = true, type = "boolean", readonly = true})
  39. if is_plat("iphoneos") then
  40. add_includedirs("lib/bass.framework/Headers")
  41. add_linkdirs("lib/bass.framework")
  42. add_frameworkdirs("lib/bass.framework")
  43. add_frameworks("bass")
  44. end
  45. on_install("windows", function (package)
  46. if package:is_arch("arm64") then
  47. local headerdir = package:resourcedir("bass_header")
  48. os.cp(path.join(headerdir, "c", "bass.h"), package:installdir("include"))
  49. os.cp("arm64/bass.dll", package:installdir("bin"))
  50. os.cp("c/arm64/bass.lib", package:installdir("lib"))
  51. elseif package:is_arch("x64") then
  52. os.cp("c/bass.h", package:installdir("include"))
  53. os.cp("x64/bass.dll", package:installdir("bin"))
  54. os.cp("c/x64/bass.lib", package:installdir("lib"))
  55. else
  56. os.cp("c/bass.h", package:installdir("include"))
  57. os.cp("bass.dll", package:installdir("bin"))
  58. os.cp("c/bass.lib", package:installdir("lib"))
  59. end
  60. end)
  61. on_install("linux", function (package)
  62. os.cp("bass.h", package:installdir("include"))
  63. if package:is_arch("x86_64") then
  64. os.cp("libs/x86_64/libbass.so", package:installdir("lib"))
  65. elseif package:is_arch("x86") then
  66. os.cp("libs/x86/libbass.so", package:installdir("lib"))
  67. elseif package:is_arch("arm64.*") then
  68. os.cp("libs/aarch64/libbass.so", package:installdir("lib"))
  69. else
  70. os.cp("libs/armhf/libbass.so", package:installdir("lib"))
  71. end
  72. end)
  73. on_install("macosx", function (package)
  74. os.cp("bass.h", package:installdir("include"))
  75. os.cp("libbass.dylib", package:installdir("lib"))
  76. end)
  77. on_install("android", function (package)
  78. os.cp("c/bass.h", package:installdir("include"))
  79. if package:is_arch("arm64.*") then
  80. os.cp("libs/arm64-v8a/libbass.so", package:installdir("lib"))
  81. elseif package:is_arch("arm.*") then
  82. os.cp("libs/armeabi-v7a/libbass.so", package:installdir("lib"))
  83. elseif package:is_arch("x86") then
  84. os.cp("libs/x86/libbass.so", package:installdir("lib"))
  85. else
  86. os.cp("libs/x86_64/libbass.so", package:installdir("lib"))
  87. end
  88. end)
  89. on_install("iphoneos", function (package)
  90. if package:is_arch("arm.*") then
  91. os.cp("bass.xcframework/ios-arm64_armv7_armv7s/bass.framework", package:installdir("lib"))
  92. else
  93. os.cp("bass.xcframework/ios-arm64_i386_x86_64-simulator/bass.framework", package:installdir("lib"))
  94. end
  95. os.cp("bass.h", package:installdir("lib/bass.framework/Headers"))
  96. end)
  97. on_test(function (package)
  98. assert(package:has_cfuncs("BASS_Init", {includes = "bass.h"}))
  99. end)