summaryrefslogtreecommitdiff
path: root/make
diff options
context:
space:
mode:
authoractboy168 <actboy168@gmail.com>2022-04-25 15:25:36 +0800
committeractboy168 <actboy168@gmail.com>2022-04-25 15:25:45 +0800
commitf4b84ee34638cb2950ca3776d2b26abc3edc9031 (patch)
treed54ea8695ee6b4cd1afa255b40ec8db5f70a4309 /make
parent9fa031a22f4481775dcd233be1382a73c2bc3064 (diff)
downloadlua-language-server-f4b84ee34638cb2950ca3776d2b26abc3edc9031.zip
clean build scripts
Diffstat (limited to 'make')
-rw-r--r--make/copy_vcrt.lua6
-rw-r--r--make/detect_platform.lua64
2 files changed, 64 insertions, 6 deletions
diff --git a/make/copy_vcrt.lua b/make/copy_vcrt.lua
deleted file mode 100644
index bd08a9fa..00000000
--- a/make/copy_vcrt.lua
+++ /dev/null
@@ -1,6 +0,0 @@
-local output, arch = ...
-local fs = require 'bee.filesystem'
-require 'msvc'.copy_vcrt(
- arch == "x86" and 'x86' or 'x64',
- fs.current_path() / output
-)
diff --git a/make/detect_platform.lua b/make/detect_platform.lua
new file mode 100644
index 00000000..8dba298c
--- /dev/null
+++ b/make/detect_platform.lua
@@ -0,0 +1,64 @@
+local lm = require 'luamake'
+
+local platform = require 'bee.platform'
+
+if platform.OS == 'macOS' then
+ if lm.platform == nil then
+ elseif lm.platform == "darwin-arm64" then
+ lm.target = "arm64-apple-macos11"
+ elseif lm.platform == "darwin-x64" then
+ lm.target = "x86_64-apple-macos10.12"
+ else
+ error "unknown platform"
+ end
+elseif platform.OS == 'Windows' then
+ if lm.platform == nil then
+ elseif lm.platform == "win32-ia32" then
+ lm.arch = "x86"
+ elseif lm.platform == "win32-x64" then
+ lm.arch = "x86_64"
+ else
+ error "unknown platform"
+ end
+elseif platform.OS == 'Linux' then
+ if lm.platform == nil then
+ elseif lm.platform == "linux-x64" then
+ elseif lm.platform == "linux-arm64" then
+ lm.cc = 'aarch64-linux-gnu-gcc'
+ else
+ error "unknown platform"
+ end
+end
+
+local function detectWindowsArch()
+ if os.getenv "PROCESSOR_ARCHITECTURE" == "ARM64" then
+ return "arm64"
+ end
+ if os.getenv "PROCESSOR_ARCHITECTURE" == "AMD64" or os.getenv "PROCESSOR_ARCHITEW6432" == "AMD64" then
+ return "x64"
+ end
+ return "ia32"
+end
+
+local function detectPosixArch()
+ local f <close> = assert(io.popen("uname -m", 'r'))
+ return f:read 'l':lower()
+end
+
+local function detectArch()
+ if platform.OS == 'Windows' then
+ return detectWindowsArch()
+ end
+ return detectPosixArch()
+end
+
+local function targetPlatformArch()
+ if lm.platform == nil then
+ return detectArch()
+ end
+ return lm.platform:match "^[^-]*-(.*)$"
+end
+
+if not lm.notest then
+ lm.notest = (platform.OS ~= 'Windows' and targetPlatformArch() ~= detectArch())
+end