mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-11 04:05:40 +03:00
darwin: add darwinMinVersionHook
Adding the hook allows the deployment target to be changed without having to mess with the stdenv. The can also be propagated, which is useful for libraries that have a minimum deployment target higher than the default in nixpkgs. In that case, they can propagate the hook to ensure library users are not targeting an unsupported version.
This commit is contained in:
parent
08ad88285d
commit
40d415f4df
2 changed files with 38 additions and 0 deletions
|
@ -0,0 +1,26 @@
|
|||
local role_post
|
||||
getHostRole
|
||||
|
||||
# Compare the requested deployment target to the existing one. The deployment target has to be a version number,
|
||||
# and this hook tries to do the right thing with deployment targets set outside of it, so it has to parse
|
||||
# the version numbers for the comparison manually.
|
||||
|
||||
local darwinMinVersion=@deploymentTarget@
|
||||
local darwinMinVersionVar=@darwinMinVersionVariable@${role_post}
|
||||
|
||||
local currentDeploymentTargetArr
|
||||
IFS=. read -a currentDeploymentTargetArr <<< "${!darwinMinVersionVar-0.0.0}"
|
||||
|
||||
local darwinMinVersionArr
|
||||
IFS=. read -a darwinMinVersionArr <<< "$darwinMinVersion"
|
||||
|
||||
local currentDeploymentTarget
|
||||
currentDeploymentTarget=$(printf "%02d%02d%02d" "${currentDeploymentTargetArr[0]-0}" "${currentDeploymentTargetArr[1]-0}" "${currentDeploymentTargetArr[2]-0}")
|
||||
|
||||
darwinMinVersion=$(printf "%02d%02d%02d" "${darwinMinVersionArr[0]-0}" "${darwinMinVersionArr[1]-0}" "${darwinMinVersionArr[2]-0}")
|
||||
|
||||
if [ "$darwinMinVersion" -gt "$currentDeploymentTarget" ]; then
|
||||
export "$darwinMinVersionVar"=@deploymentTarget@
|
||||
fi
|
||||
|
||||
unset -v role_post currentDeploymentTarget currentDeploymentTargetArr darwinMinVersion darwinMinVersionArr darwinMinVersionVar
|
|
@ -23740,6 +23740,18 @@ with pkgs;
|
|||
|
||||
plumed = callPackage ../development/libraries/science/chemistry/plumed { };
|
||||
|
||||
### DEVELOPMENT / LIBRARIES / DARWIN SDKS
|
||||
|
||||
darwinMinVersionHook =
|
||||
deploymentTarget:
|
||||
makeSetupHook {
|
||||
name = "darwin-deployment-target-hook-${deploymentTarget}";
|
||||
substitutions = {
|
||||
darwinMinVersionVariable = lib.escapeShellArg stdenv.hostPlatform.darwinMinVersionVariable;
|
||||
deploymentTarget = lib.escapeShellArg deploymentTarget;
|
||||
};
|
||||
} ../os-specific/darwin/darwin-min-version-hook/setup-hook.sh;
|
||||
|
||||
### DEVELOPMENT / LIBRARIES / AGDA
|
||||
|
||||
agdaPackages = callPackage ./agda-packages.nix {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue