xmake.lua 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package("clipboard_lite")
  2. set_homepage("https://github.com/smasherprog/clipboard_lite")
  3. set_description("cross platform clipboard library")
  4. set_license("MIT")
  5. add_urls("https://github.com/smasherprog/clipboard_lite.git")
  6. add_versions("2023.10.16", "ffff8f452af0c3587e9789ec40692d519c6170f0")
  7. if is_plat("windows", "mingw") then
  8. add_syslinks("user32", "gdi32", "shlwapi")
  9. elseif is_plat("linux") then
  10. add_deps("libx11")
  11. add_syslinks("pthread")
  12. elseif is_plat("macosx") then
  13. add_frameworks("CoreFoundation", "Cocoa")
  14. end
  15. on_install("windows", "macosx", "mingw", function (package)
  16. io.writefile("xmake.lua", [[
  17. add_rules("mode.debug", "mode.release")
  18. if is_plat("linux") then
  19. add_requires("libx11")
  20. end
  21. set_languages("c++14")
  22. target("clipboard_lite")
  23. set_kind("$(kind)")
  24. if is_plat("windows") and is_kind("shared") then
  25. add_rules("utils.symbols.export_all", {export_classes = true})
  26. end
  27. add_files("src/*.cpp")
  28. add_includedirs("include")
  29. add_headerfiles("include/Clipboard_Lite.h")
  30. if is_plat("windows", "mingw") then
  31. add_files("src/windows/*.cpp")
  32. add_includedirs("include/windows")
  33. add_syslinks("user32", "gdi32", "shlwapi")
  34. elseif is_plat("linux") then
  35. add_files("src/linux/*.cpp")
  36. add_includedirs("include/linux")
  37. add_syslinks("pthread")
  38. add_packages("libx11")
  39. elseif is_plat("macosx") then
  40. add_files("src/ios/*.mm")
  41. add_includedirs("include/ios")
  42. add_frameworks("CoreFoundation", "Cocoa")
  43. end
  44. ]])
  45. import("package.tools.xmake").install(package)
  46. end)
  47. on_test(function (package)
  48. assert(package:check_cxxsnippets({test = [[
  49. #include <Clipboard_Lite.h>
  50. void test() {
  51. auto clipboard = SL::Clipboard_Lite::CreateClipboard();
  52. }
  53. ]]}, {configs = {languages = "c++14"}}))
  54. end)