summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSirLynix <[email protected]>2022-12-11 14:24:13 +0100
committerSirLynix <[email protected]>2022-12-11 14:24:13 +0100
commit74698cc483c68972ab9487e08b3c6ab05b410585 (patch)
treef1d6bff196cc004637df2de3ec06b3b048891b4d
parent4baf5673b19297a2f05fe8f087f0d4283365956d (diff)
emscripten fixes
-rw-r--r--xmake/modules/detect/tools/find_emar.lua15
-rw-r--r--xmake/modules/detect/tools/find_emxx.lua15
-rw-r--r--xmake/modules/package/tools/cmake.lua13
-rw-r--r--xmake/modules/private/action/trybuild/cmake.lua13
4 files changed, 22 insertions, 34 deletions
diff --git a/xmake/modules/detect/tools/find_emar.lua b/xmake/modules/detect/tools/find_emar.lua
index 5d44e85a3..5c09f9952 100644
--- a/xmake/modules/detect/tools/find_emar.lua
+++ b/xmake/modules/detect/tools/find_emar.lua
@@ -21,7 +21,7 @@
-- imports
import("core.tool.compiler")
import("lib.detect.find_program")
-import("detect.sdks.find_emscripten")
+import("detect.sdks.find_emsdk")
-- check
function _check(program)
@@ -64,16 +64,13 @@ function main(opt)
opt.check = opt.check or _check
-- init the search directories
- local paths = {}
- local emscriptendir = find_emscripten()
- if emscriptendir then
- table.insert(paths, emscriptendir.sdkdir)
+ local emsdk = find_emsdk()
+ if emsdk and emsdk.emscripten then
+ local paths = {}
+ table.insert(paths, emsdk.emscripten)
+ opt.paths = paths
end
-- find program
- opt.paths = paths
- opt.envs = {PATH = os.getenv("PATH")}
-
- -- find program
return find_program(opt.program or (is_host("windows") and "emar.bat" or "emar"), opt)
end
diff --git a/xmake/modules/detect/tools/find_emxx.lua b/xmake/modules/detect/tools/find_emxx.lua
index f1f42a3f7..4018b9b13 100644
--- a/xmake/modules/detect/tools/find_emxx.lua
+++ b/xmake/modules/detect/tools/find_emxx.lua
@@ -21,7 +21,7 @@
-- imports
import("lib.detect.find_program")
import("lib.detect.find_programver")
-import("detect.sdks.find_emscripten")
+import("detect.sdks.find_emsdk")
-- find emxx
--
@@ -42,17 +42,14 @@ function main(opt)
opt = opt or {}
-- init the search directories
- local paths = {}
- local emscriptendir = find_emscripten()
- if emscriptendir then
- table.insert(paths, emscriptendir.sdkdir)
+ local emsdk = find_emsdk()
+ if emsdk and emsdk.emscripten then
+ local paths = {}
+ table.insert(paths, emsdk.emscripten)
+ opt.paths = paths
end
-- find program
- opt.paths = paths
- opt.envs = {PATH = os.getenv("PATH")}
-
- -- find program
local program = find_program(opt.program or (is_host("windows") and "em++.bat" or "em++"), opt)
-- find program version
diff --git a/xmake/modules/package/tools/cmake.lua b/xmake/modules/package/tools/cmake.lua
index 3304cf90b..7e9b9d6c9 100644
--- a/xmake/modules/package/tools/cmake.lua
+++ b/xmake/modules/package/tools/cmake.lua
@@ -27,6 +27,7 @@ import("core.tool.compiler")
import("lib.detect.find_file")
import("lib.detect.find_tool")
import("package.tools.ninja")
+import("detect.sdks.find_emsdk")
-- get the number of parallel jobs
function _get_parallel_njobs(opt)
@@ -474,15 +475,11 @@ end
-- get configs for wasm
function _get_configs_for_wasm(package, configs, opt)
- local emsdk = os.getenv("EMSDK")
- local emscripten_cmakefile
- if emsdk and os.isdir(emsdk) then
- emscripten_cmakefile = find_file("Emscripten.cmake", path.join(emsdk, "*", "emscripten/cmake/Modules/Platform"))
- end
- if emscripten_cmakefile then
- table.insert(configs, "-DCMAKE_TOOLCHAIN_FILE=" .. emscripten_cmakefile)
- end
+ local emsdk = find_emsdk()
+ assert(emsdk and emsdk.emscripten, "emscripten not found!")
+ local emscripten_cmakefile = find_file("Emscripten.cmake", path.join(emsdk.emscripten, "cmake/Modules/Platform"))
assert(emscripten_cmakefile, "Emscripten.cmake not found!")
+ table.insert(configs, "-DCMAKE_TOOLCHAIN_FILE=" .. emscripten_cmakefile)
if is_subhost("windows") then
local mingw = assert(package:build_getenv("mingw") or package:build_getenv("sdk"), "mingw not found!")
table.insert(configs, "-DCMAKE_MAKE_PROGRAM=" .. _translate_paths(path.join(mingw, "bin", "mingw32-make.exe")))
diff --git a/xmake/modules/private/action/trybuild/cmake.lua b/xmake/modules/private/action/trybuild/cmake.lua
index bd4d7b5c0..8247141d7 100644
--- a/xmake/modules/private/action/trybuild/cmake.lua
+++ b/xmake/modules/private/action/trybuild/cmake.lua
@@ -151,14 +151,11 @@ end
-- get configs for wasm
function _get_configs_for_wasm(configs)
- local emsdk = os.getenv("EMSDK")
- local emscripten_cmakefile
- if emsdk and os.isdir(emsdk) then
- emscripten_cmakefile = find_file("Emscripten.cmake", path.join(emsdk, "*", "emscripten/cmake/Modules/Platform"))
- end
- if emscripten_cmakefile then
- table.insert(configs, "-DCMAKE_TOOLCHAIN_FILE=" .. emscripten_cmakefile)
- end
+ local emsdk = find_emsdk()
+ assert(emsdk and emsdk.emscripten, "emscripten not found!")
+ local emscripten_cmakefile = find_file("Emscripten.cmake", path.join(emsdk.emscripten, "cmake/Modules/Platform"))
+ assert(emscripten_cmakefile, "Emscripten.cmake not found!")
+ table.insert(configs, "-DCMAKE_TOOLCHAIN_FILE=" .. emscripten_cmakefile)
assert(emscripten_cmakefile, "Emscripten.cmake not found!")
_get_configs_for_generic(configs)
end