summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2022-12-14 23:44:02 +0800
committerruki <[email protected]>2022-12-14 23:44:02 +0800
commit638ec113fe945b0692d65d79c438655446e0832c (patch)
treeefd048c9dab413694677638d4be999c549552e30
parent77399e191bb5f318d962bd1b5194afa9c3580df6 (diff)
add xmake.sh for demo
-rwxr-xr-xconfigure41
-rw-r--r--core/src/demo/xmake.lua2
-rwxr-xr-xcore/src/demo/xmake.sh25
-rwxr-xr-xcore/src/lua/xmake.sh1
-rwxr-xr-xcore/xmake.sh2
5 files changed, 66 insertions, 5 deletions
diff --git a/configure b/configure
index dfeef1488..1ef58fc77 100755
--- a/configure
+++ b/configure
@@ -1377,6 +1377,43 @@ _get_target_file() {
_ret="${targetfile}"
}
+# get target librarydeps
+_get_target_librarydeps_impl() {
+ local name="${1}"
+ local librarydeps=""
+ local dep=""
+ _get_target_item "${name}" "deps"; local deps="${_ret}"
+ for dep in ${deps}; do
+ _get_target_item "${dep}" "kind"; local dep_kind="${_ret}"
+ if test_eq "${dep_kind}" "static" || test_eq "${dep_kind}" "shared"; then
+ librarydeps="${librarydeps} ${dep}"
+ _get_target_librarydeps_impl "${dep}"; local dep_librarydeps="${_ret}"
+ if test_nz "${dep_librarydeps}"; then
+ librarydeps="${librarydeps} ${dep_librarydeps}"
+ fi
+ fi
+ done
+ _ret="${librarydeps}"
+}
+
+_get_target_librarydeps() {
+ local name="${1}"
+ _get_target_item "${name}" "librarydeps"; local librarydeps="${_ret}"
+ if test_z "${librarydeps}" && test_nq "${librarydeps}" "__none__"; then
+ _get_target_librarydeps_impl "${name}"; librarydeps="${_ret}"
+ if test_nz "${librarydeps}"; then
+ _dedup_reverse "${librarydeps}"; librarydeps="${_ret}"
+ _set_target_item "${name}" "librarydeps" "${librarydeps}"
+ else
+ _set_target_item "${name}" "librarydeps" "__none__"
+ fi
+ fi
+ if test_eq "${librarydeps}" "__none__"; then
+ librarydeps=""
+ fi
+ _ret="${librarydeps}"
+}
+
# get sourcefiles in target
_get_target_sourcefiles() {
local name="${1}"
@@ -1422,7 +1459,7 @@ _get_target_abstract_flags() {
_get_target_item "${name}" "${itemname}"; values="${_ret}"
# get values from target deps
- _get_target_item "${name}" "deps"; local deps="${_ret}"
+ _get_target_librarydeps "${name}"; local deps="${_ret}"
local dep=""
for dep in ${deps}; do
_get_target_item "${dep}" "kind"; local dep_kind="${_ret}"
@@ -1548,7 +1585,7 @@ _get_target_linker_flags() {
fi
# get flags from target deps
- _get_target_item "${name}" "deps"; local deps="${_ret}"
+ _get_target_librarydeps "${name}"; local deps="${_ret}"
local dep=""
for dep in ${deps}; do
_get_target_item "${dep}" "kind"; local dep_kind="${_ret}"
diff --git a/core/src/demo/xmake.lua b/core/src/demo/xmake.lua
index 1e33415ae..34bf4c0d2 100644
--- a/core/src/demo/xmake.lua
+++ b/core/src/demo/xmake.lua
@@ -31,7 +31,7 @@ target("demo")
add_ldflags("/export:malloc", "/export:free", "/export:memmove")
elseif is_plat("android") then
add_links("m", "c")
- elseif is_plat("macosx") then
+ elseif is_plat("macosx") and is_config("runtime", "luajit") then
add_ldflags("-all_load", "-pagezero_size 10000", "-image_base 100000000")
elseif is_plat("mingw") then
add_ldflags("-static-libgcc", {force = true})
diff --git a/core/src/demo/xmake.sh b/core/src/demo/xmake.sh
new file mode 100755
index 000000000..be352f1f0
--- /dev/null
+++ b/core/src/demo/xmake.sh
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+target "demo"
+ add_deps "xmake"
+ set_kind "binary"
+ set_basename "xmake"
+ set_targetdir "${buildir}"
+
+ # add defines
+ add_defines "__tb_prefix__=\"xmake\""
+
+ # add includes directory
+ add_includedirs "${projectdir}/core" "${projectdir}/core/src"
+
+ # add the common source files
+ add_files "**.c"
+
+ # add links
+ if is_plat "macosx" && is_config "runtime" "luajit"; then
+ add_ldflags "-all_load" "-pagezero_size 10000" "-image_base 100000000"
+ elif is_plat "mingw"; then
+ add_ldflags "-static-libgcc"
+ fi
+
+
diff --git a/core/src/lua/xmake.sh b/core/src/lua/xmake.sh
index 7f08e2ab4..fd5fbac40 100755
--- a/core/src/lua/xmake.sh
+++ b/core/src/lua/xmake.sh
@@ -38,7 +38,6 @@ target "lua"
add_files "lua/lstrlib.c"
add_files "lua/ltable.c"
add_files "lua/ltablib.c"
- add_files "lua/ltests.c"
add_files "lua/ltm.c"
add_files "lua/lundump.c"
add_files "lua/lutf8lib.c"
diff --git a/core/xmake.sh b/core/xmake.sh
index 7c57aa04c..6f5484202 100755
--- a/core/xmake.sh
+++ b/core/xmake.sh
@@ -49,7 +49,7 @@ includes "src/sv"
includes "src/lz4"
includes "src/tbox"
includes "src/xmake"
-#includes "src/demo"
+includes "src/demo"
#if is_config "runtime" "luajit" then
# includes "src/luajit"
#fi