summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2025-12-20 00:41:52 +0800
committerruki <[email protected]>2025-12-20 00:41:52 +0800
commit6e0596421078eb7f50ef4fb33bb9227e425e2233 (patch)
tree1ef73480fd98a1b21f3f49c58beb94c401759a6d
parent435dbb4c47173a34b29cfc5fd903c406147b332e (diff)
improve gcc toolchains
-rw-r--r--xmake/toolchains/gcc-10/xmake.lua2
-rw-r--r--xmake/toolchains/gcc-11/xmake.lua2
-rw-r--r--xmake/toolchains/gcc-12/xmake.lua2
-rw-r--r--xmake/toolchains/gcc-13/xmake.lua2
-rw-r--r--xmake/toolchains/gcc-14/xmake.lua2
-rw-r--r--xmake/toolchains/gcc-15/xmake.lua2
-rw-r--r--xmake/toolchains/gcc-4.8/xmake.lua2
-rw-r--r--xmake/toolchains/gcc-4.9/xmake.lua2
-rw-r--r--xmake/toolchains/gcc-8/xmake.lua2
-rw-r--r--xmake/toolchains/gcc-9/xmake.lua2
-rw-r--r--xmake/toolchains/gcc/toolchain_gcc.lua64
-rw-r--r--xmake/toolchains/gcc/xmake.lua45
12 files changed, 54 insertions, 75 deletions
diff --git a/xmake/toolchains/gcc-10/xmake.lua b/xmake/toolchains/gcc-10/xmake.lua
index c94754290..8f18c9ffb 100644
--- a/xmake/toolchains/gcc-10/xmake.lua
+++ b/xmake/toolchains/gcc-10/xmake.lua
@@ -1,3 +1,3 @@
-includes(path.join(os.scriptdir(), "../gcc/toolchain_gcc.lua"))
+includes(path.join(os.scriptdir(), "../gcc"))
toolchain_gcc("10")
diff --git a/xmake/toolchains/gcc-11/xmake.lua b/xmake/toolchains/gcc-11/xmake.lua
index 8ffda8d7b..713c105bd 100644
--- a/xmake/toolchains/gcc-11/xmake.lua
+++ b/xmake/toolchains/gcc-11/xmake.lua
@@ -1,3 +1,3 @@
-includes(path.join(os.scriptdir(), "../gcc/toolchain_gcc.lua"))
+includes(path.join(os.scriptdir(), "../gcc"))
toolchain_gcc("11")
diff --git a/xmake/toolchains/gcc-12/xmake.lua b/xmake/toolchains/gcc-12/xmake.lua
index 9a400417b..9eb2a6dae 100644
--- a/xmake/toolchains/gcc-12/xmake.lua
+++ b/xmake/toolchains/gcc-12/xmake.lua
@@ -1,3 +1,3 @@
-includes(path.join(os.scriptdir(), "../gcc/toolchain_gcc.lua"))
+includes(path.join(os.scriptdir(), "../gcc"))
toolchain_gcc("12")
diff --git a/xmake/toolchains/gcc-13/xmake.lua b/xmake/toolchains/gcc-13/xmake.lua
index 7935e6df1..ba45c0f0e 100644
--- a/xmake/toolchains/gcc-13/xmake.lua
+++ b/xmake/toolchains/gcc-13/xmake.lua
@@ -1,3 +1,3 @@
-includes(path.join(os.scriptdir(), "../gcc/toolchain_gcc.lua"))
+includes(path.join(os.scriptdir(), "../gcc"))
toolchain_gcc("13")
diff --git a/xmake/toolchains/gcc-14/xmake.lua b/xmake/toolchains/gcc-14/xmake.lua
index cc6f29d34..266894d5b 100644
--- a/xmake/toolchains/gcc-14/xmake.lua
+++ b/xmake/toolchains/gcc-14/xmake.lua
@@ -1,3 +1,3 @@
-includes(path.join(os.scriptdir(), "../gcc/toolchain_gcc.lua"))
+includes(path.join(os.scriptdir(), "../gcc"))
toolchain_gcc("14")
diff --git a/xmake/toolchains/gcc-15/xmake.lua b/xmake/toolchains/gcc-15/xmake.lua
index 56b742362..08bf4cd9e 100644
--- a/xmake/toolchains/gcc-15/xmake.lua
+++ b/xmake/toolchains/gcc-15/xmake.lua
@@ -1,3 +1,3 @@
-includes(path.join(os.scriptdir(), "../gcc/toolchain_gcc.lua"))
+includes(path.join(os.scriptdir(), "../gcc"))
toolchain_gcc("15")
diff --git a/xmake/toolchains/gcc-4.8/xmake.lua b/xmake/toolchains/gcc-4.8/xmake.lua
index 8695753a8..9b51b85f7 100644
--- a/xmake/toolchains/gcc-4.8/xmake.lua
+++ b/xmake/toolchains/gcc-4.8/xmake.lua
@@ -1,3 +1,3 @@
-includes(path.join(os.scriptdir(), "../gcc/toolchain_gcc.lua"))
+includes(path.join(os.scriptdir(), "../gcc"))
toolchain_gcc("4.8")
diff --git a/xmake/toolchains/gcc-4.9/xmake.lua b/xmake/toolchains/gcc-4.9/xmake.lua
index b54c53958..89e7cdae1 100644
--- a/xmake/toolchains/gcc-4.9/xmake.lua
+++ b/xmake/toolchains/gcc-4.9/xmake.lua
@@ -1,3 +1,3 @@
-includes(path.join(os.scriptdir(), "../gcc/toolchain_gcc.lua"))
+includes(path.join(os.scriptdir(), "../gcc"))
toolchain_gcc("4.9")
diff --git a/xmake/toolchains/gcc-8/xmake.lua b/xmake/toolchains/gcc-8/xmake.lua
index 463ef017e..b6bb9e55b 100644
--- a/xmake/toolchains/gcc-8/xmake.lua
+++ b/xmake/toolchains/gcc-8/xmake.lua
@@ -1,3 +1,3 @@
-includes(path.join(os.scriptdir(), "../gcc/toolchain_gcc.lua"))
+includes(path.join(os.scriptdir(), "../gcc"))
toolchain_gcc("8")
diff --git a/xmake/toolchains/gcc-9/xmake.lua b/xmake/toolchains/gcc-9/xmake.lua
index 05432d12c..21bd4d436 100644
--- a/xmake/toolchains/gcc-9/xmake.lua
+++ b/xmake/toolchains/gcc-9/xmake.lua
@@ -1,3 +1,3 @@
-includes(path.join(os.scriptdir(), "../gcc/toolchain_gcc.lua"))
+includes(path.join(os.scriptdir(), "../gcc"))
toolchain_gcc("9")
diff --git a/xmake/toolchains/gcc/toolchain_gcc.lua b/xmake/toolchains/gcc/toolchain_gcc.lua
deleted file mode 100644
index caa60c85a..000000000
--- a/xmake/toolchains/gcc/toolchain_gcc.lua
+++ /dev/null
@@ -1,64 +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, Xmake Open Source Community.
---
--- @author ruki, romeoxbm
--- @file toolchain_gcc.lua
---
-
--- define toolchain
-function toolchain_gcc(version)
- local suffix = version and ("-" .. version) or ""
-
- toolchain("gcc" .. suffix)
- set_kind("standalone")
- set_homepage("https://gcc.gnu.org/")
- set_description("GNU Compiler Collection" .. (version and (" (" .. version .. ")") or ""))
- set_runtimes("stdc++_static", "stdc++_shared")
-
- set_toolset("cc", "gcc" .. suffix)
- set_toolset("cxx", "g++" .. suffix, "gcc" .. suffix)
- set_toolset("ld", "g++" .. suffix, "gcc" .. suffix)
- set_toolset("sh", "g++" .. suffix, "gcc" .. suffix)
- set_toolset("ar", "ar")
- set_toolset("strip", "strip")
- set_toolset("objcopy", "objcopy")
- set_toolset("ranlib", "ranlib")
- set_toolset("mm", "gcc" .. suffix)
- set_toolset("mxx", "g++" .. suffix, "gcc" .. suffix)
- set_toolset("as", "gcc" .. suffix)
-
- on_check(function (toolchain)
- return import("lib.detect.find_tool")("gcc", {program = "gcc" .. suffix})
- end)
-
- on_load(function (toolchain)
-
- -- add march flags
- local march
- if toolchain:is_arch("x86_64", "x64") then
- march = "-m64"
- elseif toolchain:is_arch("i386", "x86") then
- march = "-m32"
- end
- if march then
- toolchain:add("cxflags", march)
- toolchain:add("mxflags", march)
- toolchain:add("asflags", march)
- toolchain:add("ldflags", march)
- toolchain:add("shflags", march)
- end
- end)
-end
diff --git a/xmake/toolchains/gcc/xmake.lua b/xmake/toolchains/gcc/xmake.lua
index e478e4712..1b4a971f4 100644
--- a/xmake/toolchains/gcc/xmake.lua
+++ b/xmake/toolchains/gcc/xmake.lua
@@ -17,6 +17,49 @@
-- @author ruki
-- @file xmake.lua
--
-includes(path.join(os.scriptdir(), "toolchain_gcc.lua"))
+-- define toolchain
+function toolchain_gcc(version)
+ local suffix = version and ("-" .. version) or ""
+
+ toolchain("gcc" .. suffix)
+ set_kind("standalone")
+ set_homepage("https://gcc.gnu.org/")
+ set_description("GNU Compiler Collection" .. (version and (" (" .. version .. ")") or ""))
+ set_runtimes("stdc++_static", "stdc++_shared")
+
+ set_toolset("cc", "gcc" .. suffix)
+ set_toolset("cxx", "g++" .. suffix, "gcc" .. suffix)
+ set_toolset("ld", "g++" .. suffix, "gcc" .. suffix)
+ set_toolset("sh", "g++" .. suffix, "gcc" .. suffix)
+ set_toolset("ar", "ar")
+ set_toolset("strip", "strip")
+ set_toolset("objcopy", "objcopy")
+ set_toolset("ranlib", "ranlib")
+ set_toolset("mm", "gcc" .. suffix)
+ set_toolset("mxx", "g++" .. suffix, "gcc" .. suffix)
+ set_toolset("as", "gcc" .. suffix)
+
+ on_check(function (toolchain)
+ return import("lib.detect.find_tool")("gcc", {program = "gcc" .. suffix})
+ end)
+
+ on_load(function (toolchain)
+
+ -- add march flags
+ local march
+ if toolchain:is_arch("x86_64", "x64") then
+ march = "-m64"
+ elseif toolchain:is_arch("i386", "x86") then
+ march = "-m32"
+ end
+ if march then
+ toolchain:add("cxflags", march)
+ toolchain:add("mxflags", march)
+ toolchain:add("asflags", march)
+ toolchain:add("ldflags", march)
+ toolchain:add("shflags", march)
+ end
+ end)
+end
toolchain_gcc()