@ -1,5 +1,4 @@
package ( " spirv-cross " )
set_homepage ( " https://github.com/KhronosGroup/SPIRV-Cross/ " )
set_description ( " SPIRV-Cross is a practical tool and library for performing reflection on SPIR-V and disassembling SPIR-V back to high level languages. " )
set_license ( " Apache-2.0 " )
@ -11,17 +10,33 @@ package("spirv-cross")
add_versions ( " 1.3.231+1 " , " f09ba2777714871bddb70d049878af34b94fa54d " )
add_versions ( " 1.3.268+0 " , " 2de1265fca722929785d9acdec4ab728c47a0254 " )
add_configs ( " exceptions " , { description = " Enable exception handling " , default = true , type = " boolean " } )
add_deps ( " cmake " )
add_links ( " spirv-cross-c " , " spirv-cross-cpp " , " spirv-cross-reflect " , " spirv-cross-msl " , " spirv-cross-util " , " spirv-cross-hlsl " , " spirv-cross-glsl " , " spirv-cross-core " )
if is_plat ( " windows " ) then
set_policy ( " platform.longpaths " , true )
end
on_install ( " windows " , " linux " , " macosx " , " mingw " , function ( package )
local configs = { " -DSPIRV_CROSS_ENABLE_TESTS=OFF " }
local cxflags
if package : config ( " exceptions " ) then
table.insert ( configs , " -DSPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS=OFF " )
if package : is_plat ( " windows " ) and package : has_tool ( " cxx " , " cl " , " clang_cl " ) then
cxflags = " /EHsc "
end
else
table.insert ( configs , " -DSPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS=ON " )
end
if package : config ( " shared " ) then
table.insert ( configs , " -DSPIRV_CROSS_SHARED=ON " )
else
table.insert ( configs , " -DSPIRV_CROSS_SHARED=OFF " )
end
import ( " package.tools.cmake " ) . install ( package , configs )
import ( " package.tools.cmake " ) . install ( package , configs , { cxflags = cxflags } )
package : addenv ( " PATH " , " bin " )
end )