Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
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}