72 lines
2.4 KiB
Nix
72 lines
2.4 KiB
Nix
|
|
{ _cuda, lib }:
|
||
|
|
{
|
||
|
|
/**
|
||
|
|
Returns a list of bad platforms for a given package if assertsions in `finalAttrs.passthru.platformAssertions`
|
||
|
|
fail, optionally logging evaluation warnings for each reason.
|
||
|
|
|
||
|
|
NOTE: No guarantees are made about this function's stability. You may use it at your own risk.
|
||
|
|
|
||
|
|
NOTE: This function requires `finalAttrs.passthru.platformAssertions` to be a list of assertions and
|
||
|
|
`finalAttrs.finalPackage.name` and `finalAttrs.finalPackage.stdenv` to be available.
|
||
|
|
|
||
|
|
# Type
|
||
|
|
|
||
|
|
```
|
||
|
|
_mkMetaBadPlatforms :: (warn :: Bool) -> (finalAttrs :: AttrSet) -> List String
|
||
|
|
```
|
||
|
|
*/
|
||
|
|
_mkMetaBadPlatforms =
|
||
|
|
warn: finalAttrs:
|
||
|
|
let
|
||
|
|
failedAssertionsString = _cuda.lib._mkFailedAssertionsString finalAttrs.passthru.platformAssertions;
|
||
|
|
hasFailedAssertions = failedAssertionsString != "";
|
||
|
|
finalStdenv = finalAttrs.finalPackage.stdenv;
|
||
|
|
in
|
||
|
|
lib.warnIf (warn && hasFailedAssertions)
|
||
|
|
"Package ${finalAttrs.finalPackage.name} is unsupported on this platform due to the following failed assertions:${failedAssertionsString}"
|
||
|
|
(
|
||
|
|
lib.optionals hasFailedAssertions (
|
||
|
|
lib.unique [
|
||
|
|
finalStdenv.buildPlatform.system
|
||
|
|
finalStdenv.hostPlatform.system
|
||
|
|
finalStdenv.targetPlatform.system
|
||
|
|
]
|
||
|
|
)
|
||
|
|
);
|
||
|
|
|
||
|
|
/**
|
||
|
|
Returns a boolean indicating whether the package is broken as a result of `finalAttrs.passthru.brokenAssertions`,
|
||
|
|
optionally logging evaluation warnings for each reason.
|
||
|
|
|
||
|
|
NOTE: No guarantees are made about this function's stability. You may use it at your own risk.
|
||
|
|
|
||
|
|
NOTE: This function requires `finalAttrs.passthru.brokenAssertions` to be a list of assertions and
|
||
|
|
`finalAttrs.finalPackage.name` to be available.
|
||
|
|
|
||
|
|
# Type
|
||
|
|
|
||
|
|
```
|
||
|
|
_mkMetaBroken :: (warn :: Bool) -> (finalAttrs :: AttrSet) -> Bool
|
||
|
|
```
|
||
|
|
|
||
|
|
# Inputs
|
||
|
|
|
||
|
|
`warn`
|
||
|
|
|
||
|
|
: A boolean indicating whether to log warnings
|
||
|
|
|
||
|
|
`finalAttrs`
|
||
|
|
|
||
|
|
: The final attributes of the package
|
||
|
|
*/
|
||
|
|
_mkMetaBroken =
|
||
|
|
warn: finalAttrs:
|
||
|
|
let
|
||
|
|
failedAssertionsString = _cuda.lib._mkFailedAssertionsString finalAttrs.passthru.brokenAssertions;
|
||
|
|
hasFailedAssertions = failedAssertionsString != "";
|
||
|
|
in
|
||
|
|
lib.warnIf (warn && hasFailedAssertions)
|
||
|
|
"Package ${finalAttrs.finalPackage.name} is marked as broken due to the following failed assertions:${failedAssertionsString}"
|
||
|
|
hasFailedAssertions;
|
||
|
|
}
|