xmake.lua 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package("fakeit")
  2. set_kind("library", {headeronly = true})
  3. set_homepage("https://github.com/eranpeer/FakeIt")
  4. set_description("C++ mocking made easy. A simple yet very expressive, headers only library for c++ mocking.")
  5. set_license("MIT")
  6. add_urls("https://github.com/eranpeer/FakeIt/archive/refs/tags/$(version).tar.gz",
  7. "https://github.com/eranpeer/FakeIt.git")
  8. add_versions("2.5.0", "57adedf802271513d88a1d9342d829cfb34988c3d835e07346f8129047200c53")
  9. add_versions("2.4.1", "f5234a36d42363cb7ccd2cf99c8a754c832d9092035d984ad40aafa5371d0e95")
  10. add_versions("2.4.0", "eb79459ad6a97a5c985e3301b0d44538bdce2ba26115afe040f3874688edefb5")
  11. local test_frameworks = {
  12. "gtest",
  13. "mstest",
  14. "boost",
  15. "catch",
  16. "tpunit",
  17. "mettle",
  18. "qtest",
  19. "nunit",
  20. "cute",
  21. "doctest",
  22. "standalone",
  23. }
  24. add_configs("framework", {description = "Choose test library to use", default = "standalone", type = "string", values = test_frameworks})
  25. on_load(function (package)
  26. local framework = package:config("framework")
  27. if framework == "gtest" then
  28. package:add("deps", "gtest")
  29. elseif framework == "boost" then
  30. package:add("deps", "boost", {configs = {test = true}})
  31. elseif framework == "catch" then
  32. package:add("deps", "catch2")
  33. elseif framework == "doctest" then
  34. package:add("deps", "doctest")
  35. end
  36. end)
  37. on_install(function (package)
  38. os.vcp(path.join("single_header", package:config("framework"), "*"), package:installdir("include"))
  39. end)
  40. on_test(function (package)
  41. assert(package:check_cxxsnippets({test = [[
  42. struct SomeInterface {
  43. virtual int foo(int) = 0;
  44. };
  45. void test() {
  46. fakeit::Mock<SomeInterface> mock;
  47. }
  48. ]]}, {configs = {languages = "c++11"}, includes = "fakeit.hpp"}))
  49. end)