internal/rosa/package: migrate spirv-llvm-translator
All checks were successful
Test / Create distribution (push) Successful in 1m4s
Test / Sandbox (push) Successful in 2m57s
Test / ShareFS (push) Successful in 3m43s
Test / Hakurei (push) Successful in 3m49s
Test / Sandbox (race detector) (push) Successful in 5m25s
Test / Hakurei (race detector) (push) Successful in 6m29s
Test / Flake checks (push) Successful in 1m21s
All checks were successful
Test / Create distribution (push) Successful in 1m4s
Test / Sandbox (push) Successful in 2m57s
Test / ShareFS (push) Successful in 3m43s
Test / Hakurei (push) Successful in 3m49s
Test / Sandbox (race detector) (push) Successful in 5m25s
Test / Hakurei (race detector) (push) Successful in 6m29s
Test / Flake checks (push) Successful in 1m21s
Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
@@ -1,121 +0,0 @@
|
|||||||
package rosa
|
|
||||||
|
|
||||||
import "hakurei.app/internal/pkg"
|
|
||||||
|
|
||||||
func (t Toolchain) newSPIRVLLVMTranslator() (pkg.Artifact, string) {
|
|
||||||
const (
|
|
||||||
version = "22.1.2"
|
|
||||||
checksum = "JZAaV5ewYcm-35YA_U2BM2IcsQouZtX1BLZR0zh2vSlfEXMsT5OCtY4Gh5RJkcGy"
|
|
||||||
)
|
|
||||||
skipChecks := []string{
|
|
||||||
// error: line 13: OpTypeCooperativeMatrixKHR Scope is limited to Workgroup and Subgroup
|
|
||||||
"cooperative_matrix_constant_null.spvasm",
|
|
||||||
}
|
|
||||||
|
|
||||||
switch t.arch {
|
|
||||||
case "arm64":
|
|
||||||
skipChecks = append(skipChecks,
|
|
||||||
// LLVM ERROR: unsupported calling convention
|
|
||||||
"DebugInfo/COFF/no-cus.ll",
|
|
||||||
"DebugInfo/Generic/2009-11-05-DeadGlobalVariable.ll",
|
|
||||||
"DebugInfo/Generic/2009-11-10-CurrentFn.ll",
|
|
||||||
"DebugInfo/Generic/2010-01-05-DbgScope.ll",
|
|
||||||
"DebugInfo/Generic/2010-03-12-llc-crash.ll",
|
|
||||||
"DebugInfo/Generic/2010-03-24-MemberFn.ll",
|
|
||||||
"DebugInfo/Generic/2010-04-19-FramePtr.ll",
|
|
||||||
"DebugInfo/Generic/2010-06-29-InlinedFnLocalVar.ll",
|
|
||||||
"DebugInfo/Generic/2010-10-01-crash.ll",
|
|
||||||
"DebugInfo/Generic/PR20038.ll",
|
|
||||||
"DebugInfo/Generic/constant-pointers.ll",
|
|
||||||
"DebugInfo/Generic/dead-argument-order.ll",
|
|
||||||
"DebugInfo/Generic/debug-info-eis-option.ll",
|
|
||||||
"DebugInfo/Generic/def-line.ll",
|
|
||||||
"DebugInfo/Generic/discriminator.ll",
|
|
||||||
"DebugInfo/Generic/dwarf-public-names.ll",
|
|
||||||
"DebugInfo/Generic/enum.ll",
|
|
||||||
"DebugInfo/Generic/func-using-decl.ll",
|
|
||||||
"DebugInfo/Generic/global.ll",
|
|
||||||
"DebugInfo/Generic/imported-name-inlined.ll",
|
|
||||||
"DebugInfo/Generic/incorrect-variable-debugloc1.ll",
|
|
||||||
"DebugInfo/Generic/inline-scopes.ll",
|
|
||||||
"DebugInfo/Generic/inlined-arguments.ll",
|
|
||||||
"DebugInfo/Generic/inlined-vars.ll",
|
|
||||||
"DebugInfo/Generic/linear-dbg-value.ll",
|
|
||||||
"DebugInfo/Generic/linkage-name-abstract.ll",
|
|
||||||
"DebugInfo/Generic/member-order.ll",
|
|
||||||
"DebugInfo/Generic/missing-abstract-variable.ll",
|
|
||||||
"DebugInfo/Generic/multiline.ll",
|
|
||||||
"DebugInfo/Generic/namespace_function_definition.ll",
|
|
||||||
"DebugInfo/Generic/namespace_inline_function_definition.ll",
|
|
||||||
"DebugInfo/Generic/noscopes.ll",
|
|
||||||
"DebugInfo/Generic/ptrsize.ll",
|
|
||||||
"DebugInfo/Generic/restrict.ll",
|
|
||||||
"DebugInfo/Generic/two-cus-from-same-file.ll",
|
|
||||||
"DebugInfo/Generic/version.ll",
|
|
||||||
"DebugInfo/LocalAddressSpace.ll",
|
|
||||||
"DebugInfo/UnknownBaseType.ll",
|
|
||||||
"DebugInfo/expr-opcode.ll",
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
return t.NewPackage("spirv-llvm-translator", version, newFromGitHub(
|
|
||||||
"KhronosGroup/SPIRV-LLVM-Translator",
|
|
||||||
"v"+version, checksum,
|
|
||||||
), &PackageAttr{
|
|
||||||
Patches: []KV{
|
|
||||||
{"remove-early-prefix", `diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
||||||
index c000a77e..f18f3fde 100644
|
|
||||||
--- a/CMakeLists.txt
|
|
||||||
+++ b/CMakeLists.txt
|
|
||||||
@@ -164,7 +164,7 @@ install(
|
|
||||||
${LLVM_SPIRV_INCLUDE_DIRS}/LLVMSPIRVOpts.h
|
|
||||||
${LLVM_SPIRV_INCLUDE_DIRS}/LLVMSPIRVExtensions.inc
|
|
||||||
DESTINATION
|
|
||||||
- ${CMAKE_INSTALL_PREFIX}/include/LLVMSPIRVLib
|
|
||||||
+ include/LLVMSPIRVLib
|
|
||||||
)
|
|
||||||
|
|
||||||
configure_file(LLVMSPIRVLib.pc.in ${CMAKE_BINARY_DIR}/LLVMSPIRVLib.pc @ONLY)
|
|
||||||
@@ -172,5 +172,5 @@ install(
|
|
||||||
FILES
|
|
||||||
${CMAKE_BINARY_DIR}/LLVMSPIRVLib.pc
|
|
||||||
DESTINATION
|
|
||||||
- ${CMAKE_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}/pkgconfig
|
|
||||||
+ lib${LLVM_LIBDIR_SUFFIX}/pkgconfig
|
|
||||||
)
|
|
||||||
;`},
|
|
||||||
},
|
|
||||||
|
|
||||||
// litArgs emits shell syntax
|
|
||||||
ScriptEarly: `
|
|
||||||
export LIT_OPTS=` + litArgs(true, skipChecks...) + `
|
|
||||||
`,
|
|
||||||
}, &CMakeHelper{
|
|
||||||
Cache: []KV{
|
|
||||||
{"CMAKE_SKIP_BUILD_RPATH", "ON"},
|
|
||||||
{"BUILD_SHARED_LIBS", "ON"},
|
|
||||||
{"LLVM_SPIRV_ENABLE_LIBSPIRV_DIS", "ON"},
|
|
||||||
{"LLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR", "/system"},
|
|
||||||
{"LLVM_EXTERNAL_LIT", "/system/bin/lit"},
|
|
||||||
{"LLVM_INCLUDE_TESTS", "ON"},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Bash,
|
|
||||||
LIT,
|
|
||||||
|
|
||||||
SPIRVTools,
|
|
||||||
), version
|
|
||||||
}
|
|
||||||
func init() {
|
|
||||||
native.mustRegister(Toolchain.newSPIRVLLVMTranslator, &Metadata{
|
|
||||||
Name: "spirv-llvm-translator",
|
|
||||||
Description: "bi-directional translation between SPIR-V and LLVM IR",
|
|
||||||
Website: "https://github.com/KhronosGroup/SPIRV-LLVM-Translator",
|
|
||||||
|
|
||||||
Dependencies: P{
|
|
||||||
SPIRVTools,
|
|
||||||
},
|
|
||||||
|
|
||||||
ID: 227273,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
package spirv-headers {
|
|
||||||
description = "machine-readable files for the SPIR-V Registry";
|
|
||||||
website = "https://github.com/KhronosGroup/SPIRV-Headers";
|
|
||||||
anitya = 230542;
|
|
||||||
// upstream changed version scheme, anitya incapable of filtering them
|
|
||||||
latest = anityaFilterSPIRV;
|
|
||||||
|
|
||||||
version* = "1.4.341.0";
|
|
||||||
source = remoteGitHub {
|
|
||||||
suffix = "KhronosGroup/SPIRV-Headers";
|
|
||||||
tag = "vulkan-sdk-"+version;
|
|
||||||
checksum = "0PL43-19Iaw4k7_D8J8BvoJ-iLgCVSYZ2ThgDPGfAJwIJFtre7l0cnQtLjcY-JvD";
|
|
||||||
};
|
|
||||||
|
|
||||||
exec = cmake {
|
|
||||||
// upstream has no tests
|
|
||||||
skipTest = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
package spirv-tools {
|
|
||||||
description = "an API and commands for processing SPIR-V modules";
|
|
||||||
website = "https://github.com/KhronosGroup/SPIRV-Tools";
|
|
||||||
anitya = 14894;
|
|
||||||
latest = anityaFallback;
|
|
||||||
|
|
||||||
version* = "2026.1";
|
|
||||||
source = remoteGitHub {
|
|
||||||
suffix = "KhronosGroup/SPIRV-Tools";
|
|
||||||
tag = "v"+version;
|
|
||||||
checksum = "ZSQPQx8NltCDzQLk4qlaVxyWRWeI_JtsjEpeFt3kezTanl9DTHfLixSUCezMFBjv";
|
|
||||||
};
|
|
||||||
|
|
||||||
exec = cmake {
|
|
||||||
cache = {
|
|
||||||
"SPIRV-Headers_SOURCE_DIR": "/system";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
inputs = [
|
|
||||||
python,
|
|
||||||
|
|
||||||
spirv-headers,
|
|
||||||
];
|
|
||||||
|
|
||||||
runtime = [ spirv-headers ];
|
|
||||||
}
|
|
||||||
139
internal/rosa/package/spirv/package.az
Normal file
139
internal/rosa/package/spirv/package.az
Normal file
@@ -0,0 +1,139 @@
|
|||||||
|
package spirv-headers {
|
||||||
|
description = "machine-readable files for the SPIR-V Registry";
|
||||||
|
website = "https://github.com/KhronosGroup/SPIRV-Headers";
|
||||||
|
anitya = 230542;
|
||||||
|
// upstream changed version scheme, anitya incapable of filtering them
|
||||||
|
latest = anityaFilterSPIRV;
|
||||||
|
|
||||||
|
version* = "1.4.341.0";
|
||||||
|
source = remoteGitHub {
|
||||||
|
suffix = "KhronosGroup/SPIRV-Headers";
|
||||||
|
tag = "vulkan-sdk-"+version;
|
||||||
|
checksum = "0PL43-19Iaw4k7_D8J8BvoJ-iLgCVSYZ2ThgDPGfAJwIJFtre7l0cnQtLjcY-JvD";
|
||||||
|
};
|
||||||
|
|
||||||
|
exec = cmake {
|
||||||
|
// upstream has no tests
|
||||||
|
skipTest = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
package spirv-tools {
|
||||||
|
description = "an API and commands for processing SPIR-V modules";
|
||||||
|
website = "https://github.com/KhronosGroup/SPIRV-Tools";
|
||||||
|
anitya = 14894;
|
||||||
|
latest = anityaFallback;
|
||||||
|
|
||||||
|
version* = "2026.1";
|
||||||
|
source = remoteGitHub {
|
||||||
|
suffix = "KhronosGroup/SPIRV-Tools";
|
||||||
|
tag = "v"+version;
|
||||||
|
checksum = "ZSQPQx8NltCDzQLk4qlaVxyWRWeI_JtsjEpeFt3kezTanl9DTHfLixSUCezMFBjv";
|
||||||
|
};
|
||||||
|
|
||||||
|
exec = cmake {
|
||||||
|
cache = {
|
||||||
|
"SPIRV-Headers_SOURCE_DIR": "/system";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
inputs = [
|
||||||
|
python,
|
||||||
|
|
||||||
|
spirv-headers,
|
||||||
|
];
|
||||||
|
|
||||||
|
runtime = [ spirv-headers ];
|
||||||
|
}
|
||||||
|
|
||||||
|
package spirv-llvm-translator {
|
||||||
|
description = "bi-directional translation between SPIR-V and LLVM IR";
|
||||||
|
website = "https://github.com/KhronosGroup/SPIRV-LLVM-Translator";
|
||||||
|
anitya = 227273;
|
||||||
|
|
||||||
|
version* = "22.1.2";
|
||||||
|
source = remoteGitHub {
|
||||||
|
suffix = "KhronosGroup/SPIRV-LLVM-Translator";
|
||||||
|
tag = "v"+version;
|
||||||
|
checksum = "JZAaV5ewYcm-35YA_U2BM2IcsQouZtX1BLZR0zh2vSlfEXMsT5OCtY4Gh5RJkcGy";
|
||||||
|
};
|
||||||
|
patches = [ "remove-early-prefix.patch" ];
|
||||||
|
|
||||||
|
// litArgs emits shell syntax
|
||||||
|
early = "\nexport LIT_OPTS=" + litArgs {
|
||||||
|
verbose = true;
|
||||||
|
|
||||||
|
skipChecks = arch {
|
||||||
|
default = [
|
||||||
|
// error: line 13: OpTypeCooperativeMatrixKHR Scope is limited to Workgroup and Subgroup
|
||||||
|
"cooperative_matrix_constant_null.spvasm",
|
||||||
|
];
|
||||||
|
|
||||||
|
arm64 = [
|
||||||
|
// error: line 13: OpTypeCooperativeMatrixKHR Scope is limited to Workgroup and Subgroup
|
||||||
|
"cooperative_matrix_constant_null.spvasm",
|
||||||
|
|
||||||
|
// LLVM ERROR: unsupported calling convention
|
||||||
|
"DebugInfo/COFF/no-cus.ll",
|
||||||
|
"DebugInfo/Generic/2009-11-05-DeadGlobalVariable.ll",
|
||||||
|
"DebugInfo/Generic/2009-11-10-CurrentFn.ll",
|
||||||
|
"DebugInfo/Generic/2010-01-05-DbgScope.ll",
|
||||||
|
"DebugInfo/Generic/2010-03-12-llc-crash.ll",
|
||||||
|
"DebugInfo/Generic/2010-03-24-MemberFn.ll",
|
||||||
|
"DebugInfo/Generic/2010-04-19-FramePtr.ll",
|
||||||
|
"DebugInfo/Generic/2010-06-29-InlinedFnLocalVar.ll",
|
||||||
|
"DebugInfo/Generic/2010-10-01-crash.ll",
|
||||||
|
"DebugInfo/Generic/PR20038.ll",
|
||||||
|
"DebugInfo/Generic/constant-pointers.ll",
|
||||||
|
"DebugInfo/Generic/dead-argument-order.ll",
|
||||||
|
"DebugInfo/Generic/debug-info-eis-option.ll",
|
||||||
|
"DebugInfo/Generic/def-line.ll",
|
||||||
|
"DebugInfo/Generic/discriminator.ll",
|
||||||
|
"DebugInfo/Generic/dwarf-public-names.ll",
|
||||||
|
"DebugInfo/Generic/enum.ll",
|
||||||
|
"DebugInfo/Generic/func-using-decl.ll",
|
||||||
|
"DebugInfo/Generic/global.ll",
|
||||||
|
"DebugInfo/Generic/imported-name-inlined.ll",
|
||||||
|
"DebugInfo/Generic/incorrect-variable-debugloc1.ll",
|
||||||
|
"DebugInfo/Generic/inline-scopes.ll",
|
||||||
|
"DebugInfo/Generic/inlined-arguments.ll",
|
||||||
|
"DebugInfo/Generic/inlined-vars.ll",
|
||||||
|
"DebugInfo/Generic/linear-dbg-value.ll",
|
||||||
|
"DebugInfo/Generic/linkage-name-abstract.ll",
|
||||||
|
"DebugInfo/Generic/member-order.ll",
|
||||||
|
"DebugInfo/Generic/missing-abstract-variable.ll",
|
||||||
|
"DebugInfo/Generic/multiline.ll",
|
||||||
|
"DebugInfo/Generic/namespace_function_definition.ll",
|
||||||
|
"DebugInfo/Generic/namespace_inline_function_definition.ll",
|
||||||
|
"DebugInfo/Generic/noscopes.ll",
|
||||||
|
"DebugInfo/Generic/ptrsize.ll",
|
||||||
|
"DebugInfo/Generic/restrict.ll",
|
||||||
|
"DebugInfo/Generic/two-cus-from-same-file.ll",
|
||||||
|
"DebugInfo/Generic/version.ll",
|
||||||
|
"DebugInfo/LocalAddressSpace.ll",
|
||||||
|
"DebugInfo/UnknownBaseType.ll",
|
||||||
|
"DebugInfo/expr-opcode.ll",
|
||||||
|
];
|
||||||
|
};
|
||||||
|
} + "\n";
|
||||||
|
|
||||||
|
exec = cmake {
|
||||||
|
cache = {
|
||||||
|
"CMAKE_SKIP_BUILD_RPATH": "ON";
|
||||||
|
"BUILD_SHARED_LIBS": "ON";
|
||||||
|
"LLVM_SPIRV_ENABLE_LIBSPIRV_DIS": "ON";
|
||||||
|
"LLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR": "/system";
|
||||||
|
"LLVM_EXTERNAL_LIT": "/system/bin/lit";
|
||||||
|
"LLVM_INCLUDE_TESTS": "ON";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
inputs = [
|
||||||
|
bash,
|
||||||
|
lit,
|
||||||
|
|
||||||
|
spirv-tools,
|
||||||
|
];
|
||||||
|
|
||||||
|
runtime = [ spirv-tools ];
|
||||||
|
}
|
||||||
21
internal/rosa/package/spirv/remove-early-prefix.patch
Normal file
21
internal/rosa/package/spirv/remove-early-prefix.patch
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index c000a77e..f18f3fde 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -164,7 +164,7 @@ install(
|
||||||
|
${LLVM_SPIRV_INCLUDE_DIRS}/LLVMSPIRVOpts.h
|
||||||
|
${LLVM_SPIRV_INCLUDE_DIRS}/LLVMSPIRVExtensions.inc
|
||||||
|
DESTINATION
|
||||||
|
- ${CMAKE_INSTALL_PREFIX}/include/LLVMSPIRVLib
|
||||||
|
+ include/LLVMSPIRVLib
|
||||||
|
)
|
||||||
|
|
||||||
|
configure_file(LLVMSPIRVLib.pc.in ${CMAKE_BINARY_DIR}/LLVMSPIRVLib.pc @ONLY)
|
||||||
|
@@ -172,5 +172,5 @@ install(
|
||||||
|
FILES
|
||||||
|
${CMAKE_BINARY_DIR}/LLVMSPIRVLib.pc
|
||||||
|
DESTINATION
|
||||||
|
- ${CMAKE_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}/pkgconfig
|
||||||
|
+ lib${LLVM_LIBDIR_SUFFIX}/pkgconfig
|
||||||
|
)
|
||||||
|
;
|
||||||
@@ -516,6 +516,24 @@ func (s *S) getFrame() azalea.Frame {
|
|||||||
return
|
return
|
||||||
}},
|
}},
|
||||||
|
|
||||||
|
// formatting helpers
|
||||||
|
|
||||||
|
k("litArgs"): {F: func(
|
||||||
|
args azalea.FArgs,
|
||||||
|
) (v any, set bool, err error) {
|
||||||
|
var verbose bool
|
||||||
|
var skipChecks []string
|
||||||
|
if err = args.Apply(map[unique.Handle[azalea.Ident]]any{
|
||||||
|
k("verbose"): &verbose,
|
||||||
|
k("skipChecks"): &skipChecks,
|
||||||
|
}); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
v = litArgs(verbose, skipChecks...)
|
||||||
|
set = true
|
||||||
|
return
|
||||||
|
}},
|
||||||
|
|
||||||
// intenral/pkg built-ins
|
// intenral/pkg built-ins
|
||||||
|
|
||||||
k("remoteTar"): {F: func(
|
k("remoteTar"): {F: func(
|
||||||
|
|||||||
Reference in New Issue
Block a user