xmake.lua 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package("qdcae")
  2. set_homepage("https://github.com/qd-cae/qd-cae-python")
  3. set_description("qd python (and C++) library for CAE (currently mostly LS-Dyna) ")
  4. set_urls("https://github.com/qd-cae/qd-cae-python/archive/$(version).zip",
  5. "https://github.com/qd-cae/qd-cae-python.git")
  6. add_versions("0.8.9", "d5e838a7685d3407919c3e6ad33a17a8bfe376df26dbcc74a5368d8e8fd64c4c")
  7. add_patches("0.8.9", path.join(os.scriptdir(), "patches", "fix.patch"), "b865ac7c0db7bd792aa536a9ca8b7d504b04cce7e7aea2073dbc00e276f5b8fc")
  8. if is_plat("linux", "bsd") then
  9. add_syslinks("pthread")
  10. end
  11. on_install("linux", "windows", "mingw", "bsd", function (package)
  12. io.writefile("xmake.lua", [[
  13. add_rules("mode.debug", "mode.release")
  14. target("qdcae_dyna")
  15. set_kind("$(kind)")
  16. add_files("qd/cae/dyna_cpp/**.cpp", "qd/cae/dyna_cpp/**.c")
  17. del_files("qd/cae/dyna_cpp/dyna/d3plot/ArrayD3plot.cpp",
  18. "qd/cae/dyna_cpp/dyna/d3plot/D3plotHeader.cpp",
  19. "qd/cae/dyna_cpp/dyna/d3plot/FemzipBuffer.cpp",
  20. "qd/cae/dyna_cpp/utility/HDF5_Utility.cpp",
  21. "qd/cae/dyna_cpp/python_api/*.cpp",
  22. "**test.cpp")
  23. add_includedirs("qd/cae")
  24. set_languages("c11", "cxx11")
  25. ]])
  26. local configs = {}
  27. if package:config("shared") then
  28. configs.kind = "shared"
  29. end
  30. import("package.tools.xmake").install(package, configs)
  31. os.cp("qd/cae/dyna_cpp/**.h", path.join(package:installdir(), "include"), {rootdir = "qd/cae"})
  32. os.cp("qd/cae/dyna_cpp/**.hpp", path.join(package:installdir(), "include"), {rootdir = "qd/cae"})
  33. end)
  34. on_test(function (package)
  35. assert(package:check_cxxsnippets({test = [[
  36. void test(int argc, char** argv) {
  37. qd::D3plot file("d3plot", std::string());
  38. }
  39. ]]}, {includes = "dyna_cpp/dyna/d3plot/D3plot.hpp", languages="cxx11"}))
  40. end)