diff --git a/.gitignore b/.gitignore index 7a75456..baa52f5 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ build/ vsxmake*/ test/ pkg_searchdirs/ +searchdir/ diff --git a/packages/s/spirv-cross/xmake.lua b/packages/s/spirv-cross/xmake.lua new file mode 100644 index 0000000..7ad3412 --- /dev/null +++ b/packages/s/spirv-cross/xmake.lua @@ -0,0 +1,33 @@ +package("spirv-cross") + + set_homepage("https://www.lunarg.com/vulkan-sdk/") + set_description("LunarG VulkanĀ® SDK") + + on_load(function (package) + import("detect.sdks.find_vulkansdk") + local vulkansdk = find_vulkansdk() + if vulkansdk then + package:addenv("PATH", vulkansdk.bindir) + end + end) + + on_fetch(function (package, opt) + if opt.system then + import("detect.sdks.find_vulkansdk") + import("lib.detect.find_library") + + local vulkansdk = find_vulkansdk() + if vulkansdk then + local result = {includedirs = vulkansdk.includedirs, linkdirs = vulkansdk.linkdirs, links = {}} + local utils = {"spirv-cross-glsl","spirv-cross-cpp", "spirv-cross-core", "spirv-cross-reflect","spirv-cross-util"} + for _, util in ipairs(utils) do + if not find_library(util, vulkansdk.linkdirs) then + wprint(format("The library %s for %s is not found!", util, package:arch())) + return + end + table.insert(result.links, util) + end + return result + end + end + end) diff --git a/packages/s/spirv/xmake.lua b/packages/s/spirv/xmake.lua new file mode 100644 index 0000000..613ae9a --- /dev/null +++ b/packages/s/spirv/xmake.lua @@ -0,0 +1,33 @@ +package("spirv") + + set_homepage("https://www.lunarg.com/vulkan-sdk/") + set_description("LunarG VulkanĀ® SDK") + + on_load(function (package) + import("detect.sdks.find_vulkansdk") + local vulkansdk = find_vulkansdk() + if vulkansdk then + package:addenv("PATH", vulkansdk.bindir) + end + end) + + on_fetch(function (package, opt) + if opt.system then + import("detect.sdks.find_vulkansdk") + import("lib.detect.find_library") + + local vulkansdk = find_vulkansdk() + if vulkansdk then + local result = {includedirs = vulkansdk.includedirs, linkdirs = vulkansdk.linkdirs, links = {}} + local utils = { "SPIRV", "SPIRV-Tools"} + for _, util in ipairs(utils) do + if not find_library(util, vulkansdk.linkdirs) then + wprint(format("The library %s for %s is not found!", util, package:arch())) + return + end + table.insert(result.links, util) + end + return result + end + end + end)