xmake.lua 827 B

1234567891011121314151617181920212223242526272829
  1. option("python_bindings", {default = false, description = "Build Python bindings"})
  2. add_requires("dlpack 1.1")
  3. add_rules("mode.debug", "mode.release")
  4. -- config dependencies
  5. if has_config("python_bindings") then
  6. add_requires("nanobind v2.5.0")
  7. end
  8. -- common global settings
  9. add_packages("dlpack")
  10. set_languages("c++17")
  11. add_includedirs("3rdparty/picojson")
  12. add_includedirs("include", {public = true})
  13. add_headerfiles("include/(**.h)")
  14. -- xgrammar static library
  15. target("xgrammar")
  16. set_kind("$(kind)")
  17. add_files("cpp/*.cc")
  18. add_files("cpp/support/*.cc")
  19. if has_config("python_bindings") then
  20. add_files("cpp/nanobind/*.cc")
  21. add_packages("nanobind")
  22. end
  23. if is_plat("windows") and is_kind("shared") then
  24. add_rules("utils.symbols.export_all", {export_classes = true})
  25. end