summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSirLynix <[email protected]>2022-12-10 14:15:58 +0100
committerSirLynix <[email protected]>2022-12-10 14:15:58 +0100
commit4baf5673b19297a2f05fe8f087f0d4283365956d (patch)
tree1a4b7e2b65c5ed2247a03ee66eadad132a2780b9
parent2741dbd3bad8b53cf7c5651016ac374421dcd212 (diff)
Remove find_emscripten
-rw-r--r--xmake/modules/detect/sdks/find_emscripten.lua120
-rw-r--r--xmake/modules/detect/sdks/find_emsdk.lua14
-rw-r--r--xmake/modules/detect/tools/find_emcc.lua15
-rw-r--r--xmake/platforms/wasm/xmake.lua2
4 files changed, 19 insertions, 132 deletions
diff --git a/xmake/modules/detect/sdks/find_emscripten.lua b/xmake/modules/detect/sdks/find_emscripten.lua
deleted file mode 100644
index fad281df9..000000000
--- a/xmake/modules/detect/sdks/find_emscripten.lua
+++ /dev/null
@@ -1,120 +0,0 @@
---!A cross-platform build utility based on Lua
---
--- Licensed under the Apache License, Version 2.0 (the "License");
--- you may not use this file except in compliance with the License.
--- You may obtain a copy of the License at
---
--- http://www.apache.org/licenses/LICENSE-2.0
---
--- Unless required by applicable law or agreed to in writing, software
--- distributed under the License is distributed on an "AS IS" BASIS,
--- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--- See the License for the specific language governing permissions and
--- limitations under the License.
---
--- Copyright (C) 2015-present, TBOOX Open Source Group.
---
--- @author SirLynix
--- @file find_emscripten.lua
---
-
--- imports
-import("core.base.semver")
-import("core.base.option")
-import("core.base.global")
-import("core.project.config")
-import("core.cache.detectcache")
-import("lib.detect.find_file")
-import("detect.sdks.find_emsdk")
-
--- find emscripten directory
-function _find_emscriptendir(sdkdir)
-
- -- try to find emcc (compiler script)
- local paths = {}
- if sdkdir then
- table.insert(paths, sdkdir)
- end
- table.insert(paths, function ()
- local emsdk = find_emsdk(sdkdir)
- if emsdk then
- return emsdk.sdkdir
- end
- end)
-
- local subdirs = {}
- table.insert(subdirs, path.join("upstream", "emscripten"))
-
- local emcc = find_file("emcc", paths, {suffixes = subdirs})
-
- -- get sdk directory
- if emcc then
- return path.directory(emcc)
- end
-
-end
-
--- find emscripten
-function _find_emscripten(sdkdir)
-
- -- find emscripten directory
- sdkdir = _find_emscriptendir(sdkdir)
- if not sdkdir then
- return {}
- end
-
- -- ok?
- return {sdkdir = sdkdir}
-end
-
--- find emscripten directory
---
--- @param sdkdir the emscripten directory
--- @param opt the argument options, e.g. {force = true}
---
--- @return the sdk toolchains. e.g. {sdkdir = ..}
---
--- @code
---
--- local sdk = find_emscripten("~/emsdk/upstream/emscripten")
---
--- @endcode
---
-function main(sdkdir, opt)
-
- -- init arguments
- opt = opt or {}
-
- -- attempt to load cache first
- local key = "detect.sdks.find_emscripten"
- local cacheinfo = detectcache:get(key) or {}
- if not opt.force and cacheinfo.sdk and cacheinfo.sdk.sdkdir and os.isdir(cacheinfo.sdk.sdkdir) then
- return cacheinfo.sdk
- end
-
- -- find sdk
- local sdk = _find_emscripten(sdkdir or config.get("emscripten") or global.get("emscripten"))
- if sdk and sdk.sdkdir then
-
- -- save to config
- config.set("emscripten", sdk.sdkdir, {force = true, readonly = true})
-
- -- trace
- if opt.verbose or option.get("verbose") then
- cprint("checking for emscripten toolchain directory ... ${color.success}%s", sdk.sdkdir)
- end
-
- else
-
- -- trace
- if opt.verbose or option.get("verbose") then
- cprint("checking for emscripten toolchain directory ... ${color.nothing}${text.nothing}")
- end
- end
-
- -- save to cache
- cacheinfo.sdk = sdk or false
- detectcache:set(key, cacheinfo)
- detectcache:save()
- return sdk
-end
diff --git a/xmake/modules/detect/sdks/find_emsdk.lua b/xmake/modules/detect/sdks/find_emsdk.lua
index 799c254ac..52f47079d 100644
--- a/xmake/modules/detect/sdks/find_emsdk.lua
+++ b/xmake/modules/detect/sdks/find_emsdk.lua
@@ -52,8 +52,20 @@ function _find_emsdk(sdkdir)
return {}
end
+ -- find emscripten toolchain directory
+ local emscripten
+
+ local subdirs = {}
+ table.insert(subdirs, path.join("upstream", "emscripten"))
+
+ local emcc = find_file("emcc", sdkdir, {suffixes = subdirs})
+ if emcc then
+ emscripten = path.directory(emcc)
+ end
+
-- ok?
- return {sdkdir = sdkdir}
+ return {sdkdir = sdkdir, emscripten = emscripten}
+
end
-- find emsdk directory
diff --git a/xmake/modules/detect/tools/find_emcc.lua b/xmake/modules/detect/tools/find_emcc.lua
index 22539fe7e..020ed29b7 100644
--- a/xmake/modules/detect/tools/find_emcc.lua
+++ b/xmake/modules/detect/tools/find_emcc.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 emcc
--
@@ -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 "emcc.bat" or "emcc"), opt)
-- find program version
diff --git a/xmake/platforms/wasm/xmake.lua b/xmake/platforms/wasm/xmake.lua
index fc259a546..578620384 100644
--- a/xmake/platforms/wasm/xmake.lua
+++ b/xmake/platforms/wasm/xmake.lua
@@ -46,13 +46,11 @@ platform("wasm")
{
{category = "Emscripten Configuration" }
, {nil, "emsdk", "kv", nil, "emsdk directory" }
- , {nil, "emscripten", "kv", nil, "emscripten directory" }
}
, global =
{
{category = "Emscripten Configuration" }
, {nil, "emsdk", "kv", nil, "emsdk directory" }
- , {nil, "emscripten", "kv", nil, "emscripten directory" }
}
}