xmake.lua 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. package("glew")
  2. set_homepage("http://glew.sourceforge.net/")
  3. set_description("A cross-platform open-source C/C++ extension loading library.")
  4. set_urls("https://github.com/nigels-com/glew/releases/download/glew-$(version)/glew-$(version).zip")
  5. add_versions("2.1.0", "2700383d4de2455f06114fbaf872684f15529d4bdc5cdea69b5fb0e9aa7763f1")
  6. add_versions("2.2.0", "a9046a913774395a095edcc0b0ac2d81c3aacca61787b39839b941e9be14e0d4")
  7. if is_plat("windows") or is_plat("mingw") then
  8. add_syslinks("opengl32")
  9. elseif is_plat("linux") then
  10. add_syslinks("GL")
  11. add_deps("libx11", "xorgproto")
  12. end
  13. add_defines("GLEW_NO_GLU")
  14. on_load("windows", "mingw", function (package)
  15. if not package:config("shared") then
  16. package:add("defines", "GLEW_STATIC")
  17. end
  18. end)
  19. on_install("linux", "macosx", "mingw", "windows", function (package)
  20. local configs = {}
  21. configs.mode = package:debug() and "debug" or "release"
  22. if package:config("shared") then
  23. configs.kind = "shared"
  24. elseif package:is_plat("linux") and package:config("pic") ~= false then
  25. configs.cxflags = "-fPIC"
  26. end
  27. os.cp(path.join(package:scriptdir(), "port", "xmake.lua"), "xmake.lua")
  28. import("package.tools.xmake").install(package, configs)
  29. end)
  30. on_test(function (package)
  31. assert(package:has_cfuncs("glewInit", {includes = "GL/glew.h"}))
  32. end)