diff --git a/.gitignore b/.gitignore index ee394036..7cf4584f 100644 --- a/.gitignore +++ b/.gitignore @@ -34,3 +34,5 @@ main pypi/ libpocketpy.dylib + +.xmake/ diff --git a/xmake.lua b/xmake.lua new file mode 100644 index 00000000..ba19dfe3 --- /dev/null +++ b/xmake.lua @@ -0,0 +1,49 @@ +set_project("pocketpy") + +set_allowedplats("windows", "linux", "macosx", "wasm") + +option("dev", {default = false, showmenu = true, description = ""}) + +add_requires("python", {kind = "binary"}) + +add_rules("mode.debug", "mode.release") + +set_languages("c++17") + +add_cxflags("/utf-8", {tools = "cl"}) + +add_includedirs("include") + +if is_plat("linux", "macosx") then + add_syslinks("dl") +end + +target("pocketpy") + if has_config("dev") then + set_kind("shared") + else + set_kind("$(kind)") + end + + add_files("src/*.cpp") + add_headerfiles("include/(**.h)") + + if is_plat("windows") and is_kind("shared") then + add_rules("utils.symbols.export_all") + end + + before_build(function (target) + local python = assert(import("lib.detect.find_tool")("python3"), "python3 not found!") + os.execv(python.program, {"prebuild.py"}) + end) + +target("main") + set_kind("binary") + add_files("src2/main.cpp") + add_deps("pocketpy") + + on_load(function (target) + if not has_config("dev") then + target:set("enabled", false) + end + end)