Просмотр исходного кода

Merge pull request #112 from star-hengxing/xmake

Add xmake
BLUELOVETH 2 лет назад
Родитель
Сommit
5f058efec5
2 измененных файлов с 51 добавлено и 0 удалено
  1. 2 0
      .gitignore
  2. 49 0
      xmake.lua

+ 2 - 0
.gitignore

@@ -34,3 +34,5 @@ main
 
 pypi/
 libpocketpy.dylib
+
+.xmake/

+ 49 - 0
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)