nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix

macos-sierra-shared: Make live code and add to nascent Darwin channel

Also add appropriate `meta.platforms = ...` to each derivation.

authored by

John Ericson and committed by
John Ericson
14e05c30 eeed1814

+29 -4
+23 -4
pkgs/test/macos-sierra-shared/default.nix
··· 1 - { lib, clangStdenv, clang-sierraHack-stdenv }: 1 + { lib, clangStdenv, clang-sierraHack-stdenv, stdenvNoCC }: 2 2 3 3 let 4 4 makeBigExe = stdenv: prefix: rec { ··· 22 22 mkdir -p "$out/lib" 23 23 mv lib${name}.dylib "$out/lib" 24 24 ''; 25 + meta.platforms = lib.platforms.darwin; 25 26 }) count; 26 27 27 28 finalExe = stdenv.mkDerivation rec { ··· 54 53 EOF 55 54 ''; 56 55 buildPhase = '' 57 - $CXX -std=c++11 main.cxx ${toString (map (x: "-l${x.name}") sillyLibs)} -o asdf 56 + $CXX -std=c++11 main.cxx ${toString (map (x: "-l${x.name}") sillyLibs)} -o ${prefix}-asdf 58 57 ''; 59 58 buildInputs = sillyLibs; 60 59 installPhase = '' 61 60 mkdir -p "$out/bin" 62 - mv asdf "$out/bin" 61 + mv ${prefix}-asdf "$out/bin" 63 62 ''; 63 + meta.platforms = lib.platforms.darwin; 64 64 }; 65 65 66 66 }; 67 67 68 - in { 69 68 good = makeBigExe clang-sierraHack-stdenv "good"; 69 + 70 70 bad = makeBigExe clangStdenv "bad"; 71 + 72 + in stdenvNoCC.mkDerivation { 73 + name = "macos-sierra-shared-test"; 74 + buildInputs = [ good.finalExe bad.finalExe ]; 75 + # TODO(@Ericson2314): Be impure or require exact MacOS version of builder? 76 + buildCommand = '' 77 + if bad-asdf 78 + then echo "bad-asdf can succeed on non-sierra, OK" >&2 79 + else echo "bad-asdf should fail on sierra, OK" >&2 80 + fi 81 + 82 + # Must succeed on all supported MacOS versions 83 + good-asdf 84 + 85 + touch $out 86 + ''; 87 + meta.platforms = lib.platforms.darwin; 71 88 }
+5
pkgs/top-level/all-packages.nix
··· 19223 19223 undaemonize = callPackage ../tools/system/undaemonize {}; 19224 19224 19225 19225 houdini = callPackage ../applications/misc/houdini {}; 19226 + 19227 + # No `recurseIntoAttrs` because there's no need to nix-env these. 19228 + tests = { 19229 + macOSSierraShared = callPackage ../test/macos-sierra-shared {}; 19230 + }; 19226 19231 }
+1
pkgs/top-level/release.nix
··· 42 42 jobs.python.x86_64-darwin 43 43 jobs.rustc.x86_64-darwin 44 44 jobs.go.x86_64-darwin 45 + jobs.tests.macOSSierraShared 45 46 ]; 46 47 }; 47 48