xmake.lua 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package("libdc1394")
  2. set_homepage("https://sourceforge.net/projects/libdc1394/")
  3. set_description("IIDC Camera Control Library")
  4. set_license("LGPL-2.1")
  5. add_urls("https://sourceforge.net/projects/libdc1394/files/libdc1394-2/$(version)/libdc1394-$(version).tar.gz")
  6. add_versions("2.2.6", "2b905fc9aa4eec6bdcf6a2ae5f5ba021232739f5be047dec8fe8dd6049c10fed")
  7. if is_plat("linux") then
  8. add_extsources("apt::libdc1394-22-dev", "pacman::libdc1394")
  9. end
  10. add_deps("libusb")
  11. if is_plat("macosx") then
  12. add_frameworks("CoreFoundation", "CoreServices", "IOKit")
  13. end
  14. on_install("macosx", "linux", function (package)
  15. local configs = {"--disable-dependency-tracking"}
  16. table.insert(configs, "--enable-shared=" .. (package:config("shared") and "yes" or "no"))
  17. table.insert(configs, "--enable-static=" .. (package:config("shared") and "no" or "yes"))
  18. if package:config("pic") then
  19. table.insert(configs, "--with-pic")
  20. end
  21. local cppflags = {}
  22. local ldflags = {}
  23. for _, dep in ipairs(package:orderdeps()) do
  24. local fetchinfo = dep:fetch()
  25. if fetchinfo then
  26. for _, includedir in ipairs(fetchinfo.includedirs or fetchinfo.sysincludedirs) do
  27. table.insert(cppflags, "-I" .. includedir)
  28. end
  29. for _, linkdir in ipairs(fetchinfo.linkdirs) do
  30. table.insert(ldflags, "-L" .. linkdir)
  31. end
  32. for _, link in ipairs(fetchinfo.links) do
  33. table.insert(ldflags, "-l" .. link)
  34. end
  35. end
  36. end
  37. import("package.tools.autoconf").install(package, configs, {cppflags = cppflags, ldflags = ldflags})
  38. end)
  39. on_test(function (package)
  40. assert(package:has_cfuncs("dc1394_new", {includes = "dc1394/dc1394.h"}))
  41. end)