zipline: refactor environment variables (#377101)
[NixPkgs.git] / pkgs / build-support / lib / cmake.nix
blob84c44619e9e20c80e57b1962b06dd41ee3caff2b
1 { stdenv, lib }:
3 let
4   inherit (lib) findFirst isString optional optionals;
6   cmakeFlags' =
7     optionals (stdenv.hostPlatform != stdenv.buildPlatform) ([
8       "-DCMAKE_SYSTEM_NAME=${findFirst isString "Generic" (optional (!stdenv.hostPlatform.isRedox) stdenv.hostPlatform.uname.system)}"
9     ] ++ optionals (stdenv.hostPlatform.uname.processor != null) [
10       "-DCMAKE_SYSTEM_PROCESSOR=${stdenv.hostPlatform.uname.processor}"
11     ] ++ optionals (stdenv.hostPlatform.uname.release != null) [
12       "-DCMAKE_SYSTEM_VERSION=${stdenv.hostPlatform.uname.release}"
13     ] ++ optionals (stdenv.hostPlatform.isDarwin) [
14       "-DCMAKE_OSX_ARCHITECTURES=${stdenv.hostPlatform.darwinArch}"
15     ] ++ optionals (stdenv.buildPlatform.uname.system != null) [
16       "-DCMAKE_HOST_SYSTEM_NAME=${stdenv.buildPlatform.uname.system}"
17     ] ++ optionals (stdenv.buildPlatform.uname.processor != null) [
18       "-DCMAKE_HOST_SYSTEM_PROCESSOR=${stdenv.buildPlatform.uname.processor}"
19     ] ++ optionals (stdenv.buildPlatform.uname.release != null) [
20       "-DCMAKE_HOST_SYSTEM_VERSION=${stdenv.buildPlatform.uname.release}"
21     ] ++ optionals (stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
22       "-DCMAKE_CROSSCOMPILING_EMULATOR=env"
23     ] ++ optionals (stdenv.hostPlatform.isNone) [
24       "-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY"
25     ] ++ optionals stdenv.hostPlatform.isStatic [
26       "-DCMAKE_LINK_SEARCH_START_STATIC=ON"
27     ]);
29   makeCMakeFlags = { cmakeFlags ? [ ], ... }: cmakeFlags ++ cmakeFlags';
33   inherit makeCMakeFlags;