xmake.lua 1.3 KB

12345678910111213141516171819202122232425262728293031
  1. package("elfio")
  2. set_kind("library", {headeronly = true})
  3. set_homepage("http://serge1.github.io/ELFIO")
  4. set_description("ELFIO - ELF (Executable and Linkable Format) reader and producer implemented as a header only C++ library")
  5. set_license("MIT")
  6. add_urls("https://github.com/serge1/ELFIO/archive/refs/tags/Release_$(version).tar.gz")
  7. add_versions("3.11", "c896b1c41ac19348b040e4adbd1bd14950c4c216da97f900dff726eb0adf20b2")
  8. add_versions("3.12", "e4ebc9ce3d6916461bc3e7765bb45e6210f0a9b93978bf91e59b05388c024489")
  9. add_deps("cmake")
  10. on_install(function (package)
  11. local configs = {"-DELFIO_BUILD_TESTS=OFF", "-DELFIO_BUILD_EXAMPLES=OFF"}
  12. if package:version():le("3.12") then
  13. io.replace("elfio/elf_types.hpp", "#define ELFTYPES_H", "#define ELFTYPES_H\n\n#include <stdint.h>", {plain = true})
  14. end
  15. import("package.tools.cmake").install(package, configs)
  16. end)
  17. on_test(function (package)
  18. assert(package:check_cxxsnippets({test = [[
  19. #include <iostream>
  20. #include <elfio/elfio.hpp>
  21. using namespace ELFIO;
  22. void test() {
  23. elfio reader;
  24. reader.load("");
  25. }
  26. ]]}, {configs = {languages = "c++17"}}))
  27. end)