From fcfb55fed98cb5052c48477625db04622cbbce79 Mon Sep 17 00:00:00 2001 From: Willaaaaaaa Date: Wed, 10 Dec 2025 21:57:44 +0800 Subject: [PATCH 1/3] improve binonly config --- packages/g/glslang/xmake.lua | 45 ++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/packages/g/glslang/xmake.lua b/packages/g/glslang/xmake.lua index a04e5e0ba26..0552ee6a4a7 100644 --- a/packages/g/glslang/xmake.lua +++ b/packages/g/glslang/xmake.lua @@ -25,7 +25,7 @@ package("glslang") add_patches("1.3.246+1", "https://github.com/KhronosGroup/glslang/commit/1e4955adbcd9b3f5eaf2129e918ca057baed6520.patch", "47893def550f1684304ef7c49da38f0a8fe35c190a3452d3bf58370b3ee7165d") - add_configs("binaryonly", {description = "Only use binary program.", default = false, type = "boolean"}) + add_configs("binaryonly", {description = "Only use binary program.", default = true, type = "boolean"}) add_configs("exceptions", {description = "Build with exception support.", default = false, type = "boolean"}) add_configs("spirv_tools", {description = "Enable SPIRV-Tools integration (Optimizer).", default = false, type = "boolean"}) add_configs("hlsl", {description = "Enable HLSL support.", default = true, type = "boolean"}) @@ -56,18 +56,19 @@ package("glslang") if package:config("tools") or package:is_binary() then package:addenv("PATH", "bin") end - - package:add("links", "glslang", "MachineIndependent", "GenericCodeGen", "OGLCompiler", "OSDependent", "SPIRV", "SPVRemapper") - if package:config("hlsl") then - package:add("links", "HLSL") - end - if package:config("default_resource_limits") then - package:add("links", "glslang-default-resource-limits") + if not package:is_binary() then + package:add("links", "glslang", "MachineIndependent", "GenericCodeGen", "OGLCompiler", "OSDependent", "SPIRV", "SPVRemapper") + if package:config("hlsl") then + package:add("links", "HLSL") + end + if package:config("default_resource_limits") then + package:add("links", "glslang-default-resource-limits") + end end end) on_fetch(function (package, opt) - if opt.system and package:config("binaryonly") then + if opt.system and package:is_binary() then return package:find_tool("glslangValidator") end end) @@ -110,16 +111,20 @@ package("glslang") end import("package.tools.cmake").install(package, configs, {packagedeps = packagedeps}) - os.cp("glslang/MachineIndependent/**.h", package:installdir("include", "glslang", "MachineIndependent")) - os.cp("glslang/Include/**.h", package:installdir("include", "glslang", "Include")) - - -- https://github.com/KhronosGroup/glslang/releases/tag/12.3.0 - if package:config("tools") then - local bindir = package:installdir("bin") - local glslangValidator = path.join(bindir, "glslangValidator" .. (is_host("windows") and ".exe" or "")) - if not os.isfile(glslangValidator) then - local glslang = path.join(bindir, "glslang" .. (is_host("windows") and ".exe" or "")) - os.trycp(glslang, glslangValidator) + if package:is_binary() then + os.rm(package:installdir("*|bin")) + else + os.cp("glslang/MachineIndependent/**.h", package:installdir("include", "glslang", "MachineIndependent")) + os.cp("glslang/Include/**.h", package:installdir("include", "glslang", "Include")) + + -- https://github.com/KhronosGroup/glslang/releases/tag/12.3.0 + if package:config("tools") then + local bindir = package:installdir("bin") + local glslangValidator = path.join(bindir, "glslangValidator" .. (is_host("windows") and ".exe" or "")) + if not os.isfile(glslangValidator) then + local glslang = path.join(bindir, "glslang" .. (is_host("windows") and ".exe" or "")) + os.trycp(glslang, glslangValidator) + end end end end) @@ -129,7 +134,7 @@ package("glslang") os.vrun("glslangValidator --version") end - if not package:config("binaryonly") then + if not package:is_binary() then assert(package:has_cxxfuncs("ShInitialize", {configs = {languages = "c++11"}, includes = "glslang/Public/ShaderLang.h"})) end end) From 69cc45d1441a611fc904ceb3252ec75b973e37ef Mon Sep 17 00:00:00 2001 From: Willaaaaaaa Date: Thu, 11 Dec 2025 23:16:25 +0800 Subject: [PATCH 2/3] fix: set kind=static when binary=true --- packages/g/glslang/xmake.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/g/glslang/xmake.lua b/packages/g/glslang/xmake.lua index 0552ee6a4a7..5940469bc24 100644 --- a/packages/g/glslang/xmake.lua +++ b/packages/g/glslang/xmake.lua @@ -45,6 +45,8 @@ package("glslang") if package:is_binary() or package:config("binaryonly") then package:config_set("tools", true) package:set("kind", "binary") + package:config_set("shared", false) + wprint("The glslang package is configured to use static linking when binaryonly = true") end if package:config("spirv_tools") or package:config("tools") then package:add("deps", "python 3.x", {kind = "binary"}) From d1b3f442938bd63a75c0a370037b25f486df56cc Mon Sep 17 00:00:00 2001 From: star9029 Date: Fri, 12 Dec 2025 22:06:45 +0800 Subject: [PATCH 3/3] Update xmake.lua --- packages/g/glslang/xmake.lua | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/packages/g/glslang/xmake.lua b/packages/g/glslang/xmake.lua index 5940469bc24..fe7ab54f57c 100644 --- a/packages/g/glslang/xmake.lua +++ b/packages/g/glslang/xmake.lua @@ -55,17 +55,15 @@ package("glslang") package:add("deps", "spirv-tools") end - if package:config("tools") or package:is_binary() then + if package:config("tools") then package:addenv("PATH", "bin") end - if not package:is_binary() then - package:add("links", "glslang", "MachineIndependent", "GenericCodeGen", "OGLCompiler", "OSDependent", "SPIRV", "SPVRemapper") - if package:config("hlsl") then - package:add("links", "HLSL") - end - if package:config("default_resource_limits") then - package:add("links", "glslang-default-resource-limits") - end + package:add("links", "glslang", "MachineIndependent", "GenericCodeGen", "OGLCompiler", "OSDependent", "SPIRV", "SPVRemapper") + if package:config("hlsl") then + package:add("links", "HLSL") + end + if package:config("default_resource_limits") then + package:add("links", "glslang-default-resource-limits") end end)