xmake.lua 1.5 KB

12345678910111213141516171819202122232425262728293031323334
  1. package("blobify")
  2. set_kind("library", {headeronly = true})
  3. set_homepage("https://github.com/neobrain/blobify")
  4. set_description("C++17 library for all your binary de-/serialization needs")
  5. set_license("BSL-1.0")
  6. add_urls("https://github.com/neobrain/blobify.git", {submodules = false})
  7. add_versions("2023.12.07", "bcd0ad8eb7f67dafe6e01bf0b6a13d28876dcf59")
  8. add_deps("cmake")
  9. add_deps("boost_pfr", "magic_enum")
  10. on_install(function (package)
  11. io.replace("CMakeLists.txt", "add_subdirectory(examples)", "", {plain = true})
  12. io.replace("CMakeLists.txt", [[add_library(blobify-associated-sources STATIC src/blobify.cpp)
  13. target_link_libraries(blobify-associated-sources blobify)]], "", {plain = true})
  14. io.replace("include/blobify/load.hpp", [[#include <magic_enum.hpp>]], [[#include <magic_enum/magic_enum.hpp>
  15. #include <algorithm>]], {plain = true})
  16. io.replace("CMakeLists.txt", [[find_package(magic_enum REQUIRED)]], [[find_package(magic_enum CONFIG REQUIRED)]], {plain = true})
  17. import("package.tools.cmake").install(package)
  18. end)
  19. on_test(function (package)
  20. assert(package:check_cxxsnippets({test = [[
  21. #include <blobify/blobify.hpp>
  22. #include <blobify/stream_storage.hpp>
  23. #include <fstream>
  24. void test() {
  25. std::ifstream file("/path/to/bitmap.bmp");
  26. blob::istream_storage storage { file };
  27. }
  28. ]]}, {configs = {languages = "c++17"}}))
  29. end)