nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
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 # uname -s is CYGWIN_NT[...] on cygwin, but cmake expects CYGWIN
16 optional (stdenv.hostPlatform.isCygwin) "CYGWIN"
17 ++ optional (!stdenv.hostPlatform.isRedox) stdenv.hostPlatform.uname.system
18 )
19 }"
20 ]
21 ++ optionals (stdenv.hostPlatform.uname.processor != null) [
22 "-DCMAKE_SYSTEM_PROCESSOR=${stdenv.hostPlatform.uname.processor}"
23 ]
24 ++ optionals (stdenv.hostPlatform.uname.release != null) [
25 "-DCMAKE_SYSTEM_VERSION=${stdenv.hostPlatform.uname.release}"
26 ]
27 ++ optionals (stdenv.hostPlatform.isDarwin) [
28 "-DCMAKE_OSX_ARCHITECTURES=${stdenv.hostPlatform.darwinArch}"
29 ]
30 ++ optionals (stdenv.buildPlatform.uname.system != null) [
31 "-DCMAKE_HOST_SYSTEM_NAME=${stdenv.buildPlatform.uname.system}"
32 ]
33 ++ optionals (stdenv.buildPlatform.uname.processor != null) [
34 "-DCMAKE_HOST_SYSTEM_PROCESSOR=${stdenv.buildPlatform.uname.processor}"
35 ]
36 ++ optionals (stdenv.buildPlatform.uname.release != null) [
37 "-DCMAKE_HOST_SYSTEM_VERSION=${stdenv.buildPlatform.uname.release}"
38 ]
39 ++ optionals (stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
40 "-DCMAKE_CROSSCOMPILING_EMULATOR=env"
41 ]
42 ++ optionals (stdenv.hostPlatform.isNone) [
43 "-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY"
44 ]
45 ++ optionals stdenv.hostPlatform.isStatic [
46 "-DCMAKE_LINK_SEARCH_START_STATIC=ON"
47 ]
48 );
49
50 makeCMakeFlags =
51 {
52 cmakeFlags ? [ ],
53 ...
54 }:
55 cmakeFlags ++ cmakeFlags';
56
57in
58{
59 inherit makeCMakeFlags;
60}