xmake.lua 1019 B

1234567891011121314151617181920212223242526272829303132
  1. package("access_private")
  2. set_kind("library", {headeronly = true})
  3. set_homepage("https://github.com/martong/access_private")
  4. set_description("Access private members and statics of a C++ class")
  5. set_license("MIT")
  6. add_urls("https://github.com/martong/access_private.git")
  7. add_versions("2024.02.01", "9e47d135067ecfe569158b2f42ead9c6db9aaedf")
  8. on_install(function (package)
  9. os.cp("include", package:installdir())
  10. end)
  11. on_test(function (package)
  12. assert(package:check_cxxsnippets({test = [[
  13. #include <access_private.hpp>
  14. class A {
  15. int m_i = 3;
  16. int m_f(int p) { return 14 * p; }
  17. };
  18. ACCESS_PRIVATE_FIELD(A, int, m_i)
  19. ACCESS_PRIVATE_FUN(A, int(int), m_f)
  20. void test() {
  21. A a;
  22. auto &i = access_private::m_i(a);
  23. auto res = call_private::m_f(a, 3);
  24. }
  25. ]]}, {configs = {languages = "cxx11"}}))
  26. end)