Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 58 lines 1.7 kB view raw
1{ stdenv, lib }: 2 3let 4 inherit (lib) 5 findFirst 6 isString 7 optional 8 optionals 9 ; 10 11 cmakeFlags' = optionals (stdenv.hostPlatform != stdenv.buildPlatform) ( 12 [ 13 "-DCMAKE_SYSTEM_NAME=${ 14 findFirst isString "Generic" ( 15 optional (!stdenv.hostPlatform.isRedox) stdenv.hostPlatform.uname.system 16 ) 17 }" 18 ] 19 ++ optionals (stdenv.hostPlatform.uname.processor != null) [ 20 "-DCMAKE_SYSTEM_PROCESSOR=${stdenv.hostPlatform.uname.processor}" 21 ] 22 ++ optionals (stdenv.hostPlatform.uname.release != null) [ 23 "-DCMAKE_SYSTEM_VERSION=${stdenv.hostPlatform.uname.release}" 24 ] 25 ++ optionals (stdenv.hostPlatform.isDarwin) [ 26 "-DCMAKE_OSX_ARCHITECTURES=${stdenv.hostPlatform.darwinArch}" 27 ] 28 ++ optionals (stdenv.buildPlatform.uname.system != null) [ 29 "-DCMAKE_HOST_SYSTEM_NAME=${stdenv.buildPlatform.uname.system}" 30 ] 31 ++ optionals (stdenv.buildPlatform.uname.processor != null) [ 32 "-DCMAKE_HOST_SYSTEM_PROCESSOR=${stdenv.buildPlatform.uname.processor}" 33 ] 34 ++ optionals (stdenv.buildPlatform.uname.release != null) [ 35 "-DCMAKE_HOST_SYSTEM_VERSION=${stdenv.buildPlatform.uname.release}" 36 ] 37 ++ optionals (stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ 38 "-DCMAKE_CROSSCOMPILING_EMULATOR=env" 39 ] 40 ++ optionals (stdenv.hostPlatform.isNone) [ 41 "-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY" 42 ] 43 ++ optionals stdenv.hostPlatform.isStatic [ 44 "-DCMAKE_LINK_SEARCH_START_STATIC=ON" 45 ] 46 ); 47 48 makeCMakeFlags = 49 { 50 cmakeFlags ? [ ], 51 ... 52 }: 53 cmakeFlags ++ cmakeFlags'; 54 55in 56{ 57 inherit makeCMakeFlags; 58}