From 8dfd2c7ff3eaacd0e328ee2e32d6064856ddf952 Mon Sep 17 00:00:00 2001 From: Aneesh Agrawal Date: Sun, 22 Jan 2017 22:01:54 -0500 Subject: [PATCH 1/2] Remove unnecessary CMAKE_BUILD_TYPE=Release --- pkgs/applications/networking/seafile-client/default.nix | 2 +- .../compilers/emscripten/fastcomp/emscripten-fastcomp.nix | 1 - pkgs/misc/emulators/vbam/default.nix | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/pkgs/applications/networking/seafile-client/default.nix b/pkgs/applications/networking/seafile-client/default.nix index d28e241e746f3..9e920da875104 100644 --- a/pkgs/applications/networking/seafile-client/default.nix +++ b/pkgs/applications/networking/seafile-client/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { buildInputs = [ qtbase qttools seafile-shared ] ++ optional withShibboleth qtwebengine; - cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" ] + cmakeFlags = [] ++ optional withShibboleth "-DBUILD_SHIBBOLETH_SUPPORT=ON"; postInstall = '' diff --git a/pkgs/development/compilers/emscripten/fastcomp/emscripten-fastcomp.nix b/pkgs/development/compilers/emscripten/fastcomp/emscripten-fastcomp.nix index 06acebd2ba4a8..f963302aa9cb1 100644 --- a/pkgs/development/compilers/emscripten/fastcomp/emscripten-fastcomp.nix +++ b/pkgs/development/compilers/emscripten/fastcomp/emscripten-fastcomp.nix @@ -27,7 +27,6 @@ stdenv.mkDerivation rec { chmod +w -R tools/clang ''; cmakeFlags = [ - "-DCMAKE_BUILD_TYPE=Release" "-DLLVM_TARGETS_TO_BUILD='X86;JSBackend'" "-DLLVM_INCLUDE_EXAMPLES=OFF" "-DLLVM_INCLUDE_TESTS=ON" diff --git a/pkgs/misc/emulators/vbam/default.nix b/pkgs/misc/emulators/vbam/default.nix index ac078f622515d..f60ba573ea2ca 100644 --- a/pkgs/misc/emulators/vbam/default.nix +++ b/pkgs/misc/emulators/vbam/default.nix @@ -42,7 +42,6 @@ stdenv.mkDerivation rec { ]; cmakeFlags = [ - "-DCMAKE_BUILD_TYPE='Release'" "-DENABLE_FFMPEG='true'" #"-DENABLE_LINK='true'" currently broken :/ "-DSYSCONFDIR=etc" From e62f88b65774ac864d04f7c3f85bc48581f64999 Mon Sep 17 00:00:00 2001 From: Aneesh Agrawal Date: Sat, 20 Aug 2016 15:38:05 -0400 Subject: [PATCH 2/2] WIP cmake: make cmakeFlags more ergonomic There are three main parts to this change: - Support a new `setupHookFunc` in `mkDerivation` - Using attribute sets for `cmakeFlags` in Nix - Passing `cmakeFlags` to the builder more smartly == Introducing `setupHookFunc` The `setupHook` attribute allows a derivation to register arbitrary modifications to run in the context of downstream dependents' builds. To enable similar modifications to be made to the attributes passed to `mkDerivation`, teach `mkDerivation` a new trick: `setupHookFunc`. A derivation can set `setupHookFunc` to a Nix function which will be called for downstream dependencies (TODO using the same logic as the setupHook inclusion), and which takes the attribute set which was passed to `mkDerivation` and returns a new attribute set with any desired changes. These will stack (TODO: resolution order?) for composability, and having these live alongside the original derivation avoids cluttering `mkDerivation` with cmake-specific code (which was done in an earlier iteration). TODO: benchmark == Using Attribute Sets for `cmakeFlags` Almost all flags passed to `cmakeFlags` are setting CMake cache options with "-D=" or "-D:=". Because the CMake cache is essentially a set of keys and values, model `cmakeFlags` as an attribute set in Nix as well. The cmake `setupHookFunc` will take a `cmakeFlags` set and convert each key/value pair to an appropriate "-D" option for cmake. String values are used as is, while integers are converted to strings and booleans are converted to `"ON"` and `"OFF"`. This presents the following benefits: - Removal of "-D" visual noise everywhere for ease of reading. - The `=` operater is literal, allowing extra whitespace for more ease of reading. - CMake options are now first class Nix values that can be operated on directly with the full strength of the Nix language. For example, boolean values can be used directly because the serialization logic is consolidated into the cmake `setupHookFunc`, getting rid of helpers like `edf` and making it easier to re-use feature flags like `pythonSupport`. - Sets automatically sort options, improving cache re-use. - An override which updates a CMake flag option will only incur (amortized) O(1) cost with a set, as opposed to O(n) cost with an (unsorted) list, which would require a full linear search. It's also shorter to write: just use `//`. A few other CMake flag types are supported: - Setting a value to null will cause its key to be unset via "-U". - The `generator` key is mapped to the "-G" option. - The `extraArgs` key is an escape hatch; any flags in this list of strings are not pre-processed, but concatenated to the generated list. Because `setupHookFunc`s are processed during `mkDerivation`, when overriding `cmakeFlags` `overrideAttrs` should be used instead of `overrideDerivation` so the cmake `setupHookFunc` has a chance to rerun. == Passing `cmakeFlags` to the builder more smartly Nix's regular conversion of lists to an environment variable simply concatenates the contents with spaces, which breaks if any of the flags themselves contain spaces. `cmakeFlagsArray` was added as a way to get around this limitation, but is unsatisfactory to use because items must be appended via bash in a preConfigure hook. Instead, pass the list to the builder in a smarter way: instead of relying on Nix's conversion to a string, perform our own conversion by escaping double quotes, double quoting each item, and passing the flags as a Bash array, which is hydrated via `eval`. This handles flags with spaces, newlines and other whitespace, as well as double quotes, faithfully. TODO: does it handle eg some_var="$out/blah" Make the list available during preConfigure as a bash array, so any dynamic modifications to the CMake flags can be done there. These changes make also `cmakeFlagsArray` redundant, so it has been removed and replaced in all cases with `cmakeFlags`. --- lib/strings.nix | 17 ++++++ pkgs/applications/audio/i-score/default.nix | 12 ++-- pkgs/applications/audio/kid3/default.nix | 5 +- pkgs/applications/audio/musescore/default.nix | 5 +- pkgs/applications/audio/projectm/default.nix | 18 +++--- pkgs/applications/audio/tomahawk/default.nix | 8 +-- pkgs/applications/audio/yoshimi/default.nix | 4 +- .../display-managers/slim/default.nix | 2 +- pkgs/applications/editors/neovim/default.nix | 8 +-- pkgs/applications/editors/neovim/qt.nix | 8 +-- pkgs/applications/gis/qgis/default.nix | 13 ++--- .../graphics/darktable/default.nix | 8 +-- pkgs/applications/graphics/hugin/default.nix | 2 +- pkgs/applications/graphics/nomacs/default.nix | 12 ++-- .../graphics/openimageio/default.nix | 6 +- .../graphics/renderdoc/default.nix | 16 ++--- .../graphics/screencloud/default.nix | 20 +++---- pkgs/applications/graphics/seg3d/default.nix | 32 +++++----- .../graphics/smartdeblur/default.nix | 2 +- pkgs/applications/misc/bibletime/default.nix | 5 +- .../misc/dfilemanager/default.nix | 2 +- pkgs/applications/misc/finalterm/default.nix | 4 +- .../misc/j4-dmenu-desktop/default.nix | 2 +- .../misc/mysql-workbench/default.nix | 22 +++---- pkgs/applications/misc/navit/default.nix | 2 +- pkgs/applications/misc/opencpn/default.nix | 8 +-- .../networking/browsers/midori/default.nix | 10 ++-- .../purple-vk-plugin/default.nix | 2 +- .../instant-messengers/psi-plus/default.nix | 6 +- .../networking/irc/quassel/default.nix | 19 +++--- .../networking/irc/weechat/default.nix | 16 ++--- .../networking/owncloud-client/default.nix | 6 +- .../networking/remote/remmina/default.nix | 18 +++--- .../networking/sniffers/ettercap/default.nix | 8 +-- pkgs/applications/office/ledger/default.nix | 5 +- .../science/biology/ants/default.nix | 10 ++-- .../science/biology/minc-tools/default.nix | 2 +- .../machine-learning/torch/torch-distro.nix | 9 ++- .../molecular-dynamics/gromacs/default.nix | 18 +++--- .../science/robotics/gazebo/default.nix | 13 +++-- .../applications/video/obs-studio/default.nix | 4 +- .../window-managers/icewm/default.nix | 2 +- .../fastcomp/emscripten-fastcomp.nix | 20 +++---- pkgs/development/compilers/llvm/3.4/clang.nix | 18 +++--- pkgs/development/compilers/llvm/3.4/lld.nix | 12 ++-- pkgs/development/compilers/llvm/3.4/lldb.nix | 12 ++-- pkgs/development/compilers/llvm/3.4/polly.nix | 8 +-- pkgs/development/compilers/llvm/3.5/clang.nix | 14 +++-- .../compilers/llvm/3.5/libc++/default.nix | 12 ++-- .../compilers/llvm/3.5/libc++abi/default.nix | 5 +- pkgs/development/compilers/llvm/3.5/lld.nix | 4 +- pkgs/development/compilers/llvm/3.5/lldb.nix | 12 ++-- pkgs/development/compilers/llvm/3.5/polly.nix | 8 +-- .../compilers/llvm/3.7/clang/default.nix | 14 +++-- .../compilers/llvm/3.7/libc++/default.nix | 4 +- .../compilers/llvm/3.7/libc++abi.nix | 5 +- pkgs/development/compilers/llvm/3.7/lldb.nix | 14 ++--- pkgs/development/compilers/llvm/3.7/llvm.nix | 28 ++++----- .../compilers/llvm/3.8/clang/default.nix | 14 +++-- .../compilers/llvm/3.8/libc++/default.nix | 4 +- .../compilers/llvm/3.8/libc++abi.nix | 5 +- pkgs/development/compilers/llvm/3.8/llvm.nix | 41 ++++++------- pkgs/development/compilers/llvm/3.9/llvm.nix | 47 +++++++-------- .../compilers/llvm/4/clang/default.nix | 23 ++++---- .../compilers/llvm/4/libc++/default.nix | 12 ++-- .../compilers/llvm/4/libc++abi.nix | 5 +- pkgs/development/compilers/llvm/4/lldb.nix | 6 +- pkgs/development/compilers/llvm/4/llvm.nix | 52 ++++++++--------- pkgs/development/compilers/llvm/5/llvm.nix | 50 ++++++++-------- pkgs/development/compilers/llvm/6/llvm.nix | 58 +++++++++---------- .../development/compilers/shaderc/default.nix | 4 +- .../interpreters/supercollider/default.nix | 8 +-- pkgs/development/libraries/allegro/5.nix | 2 +- .../development/libraries/allegro/default.nix | 2 +- .../libraries/aws-sdk-cpp/default.nix | 13 +++-- .../development/libraries/beignet/default.nix | 2 +- pkgs/development/libraries/box2d/default.nix | 5 +- pkgs/development/libraries/bullet/default.nix | 24 ++++---- .../libraries/chromaprint/default.nix | 2 +- .../libraries/clucene-core/2.x.nix | 5 +- .../libraries/cpp-netlib/default.nix | 6 +- pkgs/development/libraries/cppcms/default.nix | 6 +- .../libraries/docopt_cpp/default.nix | 2 +- .../libraries/double-conversion/default.nix | 2 +- pkgs/development/libraries/fcppt/default.nix | 5 +- pkgs/development/libraries/gdcm/default.nix | 10 ++-- pkgs/development/libraries/git2/default.nix | 2 +- pkgs/development/libraries/glfw/3.x.nix | 2 +- .../libraries/google-gflags/default.nix | 10 ++-- .../gstreamer/legacy/qt-gstreamer/default.nix | 5 +- .../gstreamer/qt-gstreamer/default.nix | 5 +- pkgs/development/libraries/itk/default.nix | 20 +++---- .../development/libraries/jsoncpp/default.nix | 8 +-- .../libraries/kinetic-cpp-client/default.nix | 6 +- .../libraries/libbladeRF/default.nix | 12 ++-- pkgs/development/libraries/libcec/default.nix | 2 +- .../libraries/libcouchbase/default.nix | 2 +- .../libraries/libdbusmenu-qt/default.nix | 2 +- .../libraries/libdbusmenu-qt/qt-5.5.nix | 2 +- .../development/libraries/libdynd/default.nix | 6 +- .../development/libraries/libminc/default.nix | 11 ++-- .../libraries/libmsgpack/generic.nix | 12 ++-- .../libmysqlconnectorcpp/default.nix | 2 +- .../development/libraries/libsolv/default.nix | 14 ++--- .../development/libraries/libtcod/default.nix | 2 +- .../libraries/libtoxcore/default.nix | 10 ++-- .../libraries/lucene++/default.nix | 2 +- .../libraries/mailcore2/default.nix | 6 +- pkgs/development/libraries/mygui/default.nix | 6 +- .../nvidia-texture-tools/default.nix | 6 +- pkgs/development/libraries/ogre/default.nix | 11 ++-- .../libraries/ogrepaged/default.nix | 2 +- pkgs/development/libraries/opencv/default.nix | 21 +++---- .../libraries/openjpeg/generic.nix | 30 +++++----- .../libraries/openwsman/default.nix | 2 +- .../libraries/physics/hepmc/default.nix | 8 +-- pkgs/development/libraries/poppler/0.61.nix | 21 +++---- .../development/libraries/poppler/default.nix | 22 ++++--- .../development/libraries/pugixml/default.nix | 4 +- pkgs/development/libraries/qhull/default.nix | 5 +- .../libraries/qtkeychain/default.nix | 10 ++-- .../science/math/liblapack/default.nix | 25 ++++---- .../libraries/science/math/metis/default.nix | 2 +- .../science/math/superlu/default.nix | 8 +-- pkgs/development/libraries/sfml/default.nix | 12 ++-- pkgs/development/libraries/spdlog/default.nix | 2 +- pkgs/development/libraries/stxxl/default.nix | 14 ++--- pkgs/development/libraries/uri/default.nix | 8 ++- pkgs/development/libraries/vtk/default.nix | 16 +++-- .../libraries/vulkan-loader/default.nix | 8 +-- pkgs/development/libraries/vxl/default.nix | 16 +++-- pkgs/development/libraries/x265/default.nix | 25 ++++---- pkgs/development/mobile/xpwn/default.nix | 6 +- .../ocaml-modules/llvm/default.nix | 2 +- .../analysis/include-what-you-use/default.nix | 2 +- .../development/tools/analysis/rr/default.nix | 14 ++--- .../tools/build-managers/cmake/default.nix | 26 +++++++++ .../tools/build-managers/cmake/setup-hook.sh | 54 +++++++++++------ pkgs/development/tools/misc/uhd/default.nix | 7 ++- pkgs/development/tools/tora/default.nix | 22 +++---- pkgs/games/arx-libertatis/default.nix | 10 ++-- pkgs/games/minetest/default.nix | 16 ++--- pkgs/games/openlierox/default.nix | 4 +- pkgs/games/openspades/default.nix | 6 +- pkgs/games/soi/default.nix | 6 +- pkgs/games/spring/default.nix | 8 ++- pkgs/games/stepmania/default.nix | 10 ++-- pkgs/games/supertux/default.nix | 2 +- pkgs/games/voxelands/default.nix | 10 ++-- pkgs/games/wesnoth/default.nix | 4 +- pkgs/games/widelands/default.nix | 10 ++-- pkgs/games/zdoom/default.nix | 10 ++-- pkgs/misc/emulators/hatari/default.nix | 2 +- pkgs/misc/emulators/vbam/default.nix | 10 ++-- pkgs/os-specific/linux/sysdig/default.nix | 10 ++-- pkgs/servers/mail/postsrsd/default.nix | 5 +- pkgs/servers/mail/rspamd/default.nix | 14 ++--- pkgs/servers/uhub/default.nix | 8 +-- pkgs/stdenv/generic/make-derivation.nix | 29 +++++++--- pkgs/tools/X11/virtualgl/lib.nix | 5 +- .../audio/acoustid-fingerprinter/default.nix | 2 +- pkgs/tools/graphics/kst/default.nix | 5 +- pkgs/tools/graphics/pfstools/default.nix | 4 +- pkgs/tools/inputmethods/ibus/ibus-qt.nix | 2 +- pkgs/tools/networking/badvpn/default.nix | 5 +- pkgs/tools/typesetting/pdf2htmlEX/default.nix | 2 +- 166 files changed, 958 insertions(+), 797 deletions(-) diff --git a/lib/strings.nix b/lib/strings.nix index 7cd09a109396e..965f07b98d7ff 100644 --- a/lib/strings.nix +++ b/lib/strings.nix @@ -227,6 +227,19 @@ rec { */ escapeNixString = s: escape ["$"] (builtins.toJSON s); + /* Takes an array of strings and preps them for eval into a bash array. + Each value has double quotes escape, then is wrapped in double quotes; + the values are concatenated and wrapped in parentheses. + + Example: + escapeBashArray ["one" "two three" "four\"five"] + => "(\"one\"\n\"two three\"\n\"four\\\"five\")" + */ + escapeBashArray = xs: let + dquote = ''"''; + escapeVal = x: dquote + (escape [ dquote ] x) + dquote; + in "(" + (concatMapStringsSep "\n" escapeVal xs) + ")"; + /* Obsolete - use replaceStrings instead. */ replaceChars = builtins.replaceStrings or ( del: new: s: @@ -447,6 +460,10 @@ rec { */ withFeatureAs = with_: feat: value: withFeature with_ feat + optionalString with_ "=${value}"; + tabJoin = xs: let + escapeTab = escape [ "\t" ]; + in builtins.concatStringsSep "\t" (builtins.map escapeTab xs); + /* Create a fixed width string with additional prefix to match required width. diff --git a/pkgs/applications/audio/i-score/default.nix b/pkgs/applications/audio/i-score/default.nix index 69fc4b419c064..6db29abb6f944 100644 --- a/pkgs/applications/audio/i-score/default.nix +++ b/pkgs/applications/audio/i-score/default.nix @@ -62,12 +62,12 @@ stdenv.mkDerivation rec { rtaudio ]; - cmakeFlags = [ - "-GNinja" - "-DISCORE_CONFIGURATION=static-release" - "-DISCORE_ENABLE_LTO=OFF" - "-DISCORE_BUILD_FOR_PACKAGE_MANAGER=True" - ]; + cmakeFlags = { + generator = "Ninja"; + ISCORE_CONFIGURATION = "static-release"; + ISCORE_ENABLE_LTO = false; + ISCORE_BUILD_FOR_PACKAGE_MANAGER = true; + }; preConfigure = '' export CMAKE_PREFIX_PATH="$CMAKE_PREFIX_PATH:$(echo "${jamomacore}/jamoma/share/cmake/Jamoma")" diff --git a/pkgs/applications/audio/kid3/default.nix b/pkgs/applications/audio/kid3/default.nix index 31369bd1e6385..f248a96db0b45 100644 --- a/pkgs/applications/audio/kid3/default.nix +++ b/pkgs/applications/audio/kid3/default.nix @@ -22,7 +22,10 @@ stdenv.mkDerivation rec { id3lib taglib mp4v2 flac libogg libvorbis zlib readline qtbase qttools qtmultimedia qtquickcontrols makeWrapper ]; - cmakeFlags = [ "-DWITH_APPS=Qt;CLI" ]; + cmakeFlags = { + WITH_APPS = "Qt;CLI"; + }; + NIX_LDFLAGS = "-lm -lpthread"; preConfigure = '' diff --git a/pkgs/applications/audio/musescore/default.nix b/pkgs/applications/audio/musescore/default.nix index a5c38a4774151..895ee81235356 100644 --- a/pkgs/applications/audio/musescore/default.nix +++ b/pkgs/applications/audio/musescore/default.nix @@ -15,8 +15,9 @@ stdenv.mkDerivation rec { sha256 = "00inrw9g8g34g74bhg5gp0rr5nydhjraiyn7vpl7kaqi5yzmhawd"; }; - cmakeFlags = [ - ] ++ lib.optional (lib.versionAtLeast freetype.version "2.5.2") "-DUSE_SYSTEM_FREETYPE=ON"; + cmakeFlags = { + USE_SYSTEM_FREETYPE = lib.versionAtLeast freetype.version "2.5.2"; + }; nativeBuildInputs = [ cmake pkgconfig ]; diff --git a/pkgs/applications/audio/projectm/default.nix b/pkgs/applications/audio/projectm/default.nix index e7aace763a1b7..e1fc327fed532 100644 --- a/pkgs/applications/audio/projectm/default.nix +++ b/pkgs/applications/audio/projectm/default.nix @@ -37,15 +37,15 @@ stdenv.mkDerivation { nativeBuildInputs = [ pkgconfig cmake ]; - cmakeFlags = '' - -DprojectM_FONT_MENU=${ttf_bitstream_vera}/share/fonts/truetype/VeraMono.ttf - -DprojectM_FONT_TITLE=${ttf_bitstream_vera}/share/fonts/truetype/Vera.ttf - -DINCLUDE-PROJECTM-TEST=OFF - -DINCLUDE-PROJECTM-QT=${if withQt then "ON" else "OFF"} - -DINCLUDE-PROJECTM-LIBVISUAL=${if withLibvisual then "ON" else "OFF"} - -DINCLUDE-PROJECTM-JACK=${if withJack then "ON" else "OFF"} - -DINCLUDE-PROJECTM-PULSEAUDIO=${if withPulseAudio then "ON" else "OFF"} - ''; + cmakeFlags = { + projectM_FONT_MENU = "${ttf_bitstream_vera}/share/fonts/truetype/VeraMono.ttf"; + projectM_FONT_TITLE = "${ttf_bitstream_vera}/share/fonts/truetype/Vera.ttf"; + INCLUDE-PROJECTM-TEST = false; + INCLUDE-PROJECTM-QT = withQt; + INCLUDE-PROJECTM-LIBVISUAL = withLibvisual; + INCLUDE-PROJECTM-JACK = withJack; + INCLUDE-PROJECTM-PULSEAUDIO = withPulseAudio; + }; buildInputs = with stdenv.lib; [ glew ftgl ] diff --git a/pkgs/applications/audio/tomahawk/default.nix b/pkgs/applications/audio/tomahawk/default.nix index 78bd433835399..df3f5f4028045 100644 --- a/pkgs/applications/audio/tomahawk/default.nix +++ b/pkgs/applications/audio/tomahawk/default.nix @@ -20,10 +20,10 @@ stdenv.mkDerivation rec { sha256 = "0j84h36wkjfjbsd7ybyji7rcc9wpjdbl0f1xdcc1g7h0nz34pc0g"; }; - cmakeFlags = [ - "-DLUCENEPP_INCLUDE_DIR=${lucenepp}/include" - "-DLUCENEPP_LIBRARY_DIR=${lucenepp}/lib" - ]; + cmakeFlags = { + LUCENEPP_INCLUDE_DIR = "${lucenepp}/include"; + LUCENEPP_LIBRARY_DIR = "${lucenepp}/lib"; + }; nativeBuildInputs = [ pkgconfig ]; buildInputs = [ diff --git a/pkgs/applications/audio/yoshimi/default.nix b/pkgs/applications/audio/yoshimi/default.nix index 65a3bbfdc0111..28baf00e2fb10 100644 --- a/pkgs/applications/audio/yoshimi/default.nix +++ b/pkgs/applications/audio/yoshimi/default.nix @@ -27,7 +27,9 @@ stdenv.mkDerivation rec { preConfigure = "cd src"; - cmakeFlags = [ "-DFLTK_MATH_LIBRARY=${stdenv.glibc.out}/lib/libm.so" ]; + cmakeFlags = { + FLTK_MATH_LIBRARY = "${stdenv.glibc.out}/lib/libm.so"; + }; meta = with stdenv.lib; { description = "High quality software synthesizer based on ZynAddSubFX"; diff --git a/pkgs/applications/display-managers/slim/default.nix b/pkgs/applications/display-managers/slim/default.nix index 12e3dad9c79c1..4b4f54e666aee 100644 --- a/pkgs/applications/display-managers/slim/default.nix +++ b/pkgs/applications/display-managers/slim/default.nix @@ -33,7 +33,7 @@ stdenv.mkDerivation rec { preConfigure = "substituteInPlace CMakeLists.txt --replace /lib $out/lib"; - cmakeFlags = [ "-DUSE_PAM=1" ]; + cmakeFlags = { USE_PAM = true; }; NIX_CFLAGS_COMPILE = "-I${freetype.dev}/include/freetype -std=c++11"; diff --git a/pkgs/applications/editors/neovim/default.nix b/pkgs/applications/editors/neovim/default.nix index a0a14e89860b4..7ed61662532da 100644 --- a/pkgs/applications/editors/neovim/default.nix +++ b/pkgs/applications/editors/neovim/default.nix @@ -46,10 +46,10 @@ let lualibs = [ luaPackages.mpack luaPackages.lpeg luaPackages.luabitop ]; - cmakeFlags = [ - "-DLUA_PRG=${luaPackages.lua}/bin/lua" - "-DGPERF_PRG=${gperf}/bin/gperf" - ]; + cmakeFlags = { + LUA_PRG = "${luaPackages.lua}/bin/lua"; + GPERF_PRG = "${gperf}/bin/gperf"; + }; # triggers on buffer overflow bug while running tests hardeningDisable = [ "fortify" ]; diff --git a/pkgs/applications/editors/neovim/qt.nix b/pkgs/applications/editors/neovim/qt.nix index 48f7b29f407fc..0ed1a0162623c 100644 --- a/pkgs/applications/editors/neovim/qt.nix +++ b/pkgs/applications/editors/neovim/qt.nix @@ -12,10 +12,10 @@ stdenv.mkDerivation rec { sha256 = "190yg6kkw953h8wajlqr2hvs2fz65y6z0blmywlg1nff724allaq"; }; - cmakeFlags = [ - "-DMSGPACK_INCLUDE_DIRS=${libmsgpack}/include" - "-DMSGPACK_LIBRARIES=${libmsgpack}/lib/libmsgpackc.so" - ]; + cmakeFlags = { + MSGPACK_INCLUDE_DIRS = "${libmsgpack}/include"; + MSGPACK_LIBRARIES = "${libmsgpack}/lib/libmsgpackc.so"; + }; buildInputs = with pythonPackages; [ neovim qtbase libmsgpack diff --git a/pkgs/applications/gis/qgis/default.nix b/pkgs/applications/gis/qgis/default.nix index 8f06a659f60cd..f3f32318d43bd 100644 --- a/pkgs/applications/gis/qgis/default.nix +++ b/pkgs/applications/gis/qgis/default.nix @@ -42,13 +42,12 @@ stdenv.mkDerivation rec { # QGIS_MACAPP_BUNDLE=0 stops the installer copying the Qt binaries into the # installation which causes havoc # Building RelWithDebInfo allows QGIS_DEBUG to print debugging information - cmakeFlags = stdenv.lib.optional withGrass "-DGRASS_PREFIX7=${grass}/${grass.name}" - ++ stdenv.lib.optional stdenv.isDarwin - (["-DCMAKE_FIND_FRAMEWORK=never"] - ++ ["-DQGIS_MACAPP_BUNDLE=0"]); -# ++ ["-DCMAKE_BUILD_TYPE=RelWithDebInfo"]; - - + cmakeFlags = (stdenv.lib.optionalAttrs withGrass { + GRASS_PREFIX7 = "${grass}/${grass.name}"; + }) // (stdenv.lib.optionalAttrs stdenv.isDarwin { + CMAKE_FIND_FRAMEWORK = "never" + DQGIS_MACAPP_BUNDLE = false; + }); postInstall = (stdenv.lib.optionalString stdenv.isLinux '' diff --git a/pkgs/applications/graphics/darktable/default.nix b/pkgs/applications/graphics/darktable/default.nix index ac44a1e875c05..735d0ef7e0fa2 100644 --- a/pkgs/applications/graphics/darktable/default.nix +++ b/pkgs/applications/graphics/darktable/default.nix @@ -24,10 +24,10 @@ stdenv.mkDerivation rec { colord colord-gtk libwebp libsecret gnome3.adwaita-icon-theme osm-gps-map ocl-icd ]; - - cmakeFlags = [ - "-DBUILD_USERMANUAL=False" - ]; + + cmakeFlags = { + BUILD_USERMANUAL = false; + }; # darktable changed its rpath handling in commit # 83c70b876af6484506901e6b381304ae0d073d3c and as a result the diff --git a/pkgs/applications/graphics/hugin/default.nix b/pkgs/applications/graphics/hugin/default.nix index 1c5b8d1b81dda..52d02352db496 100644 --- a/pkgs/applications/graphics/hugin/default.nix +++ b/pkgs/applications/graphics/hugin/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake makeWrapper pkgconfig ]; # disable installation of the python scripting interface - cmakeFlags = [ "-DBUILD_HSI:BOOl=OFF" ]; + cmakeFlags = { BUILD_HSI = false; }; enableParallelBuilding = true; diff --git a/pkgs/applications/graphics/nomacs/default.nix b/pkgs/applications/graphics/nomacs/default.nix index 05d047f722750..c177b80ead5c7 100644 --- a/pkgs/applications/graphics/nomacs/default.nix +++ b/pkgs/applications/graphics/nomacs/default.nix @@ -47,11 +47,13 @@ stdenv.mkDerivation rec { quazip gsettings-desktop-schemas]; - cmakeFlags = ["-DENABLE_OPENCV=ON" - "-DENABLE_RAW=ON" - "-DENABLE_TIFF=ON" - "-DENABLE_QUAZIP=ON" - "-DUSE_SYSTEM_QUAZIP=ON"]; + cmakeFlags = { + ENABLE_OPENCV = true; + ENABLE_QUAZIP = true; + ENABLE_RAW = true; + ENABLE_TIFF = true; + USE_SYSTEM_QUAZIP = true; + }; meta = with stdenv.lib; { homepage = https://nomacs.org; diff --git a/pkgs/applications/graphics/openimageio/default.nix b/pkgs/applications/graphics/openimageio/default.nix index 49835298f132b..3708ed3e322fd 100644 --- a/pkgs/applications/graphics/openimageio/default.nix +++ b/pkgs/applications/graphics/openimageio/default.nix @@ -22,9 +22,9 @@ stdenv.mkDerivation rec { unzip ]; - cmakeFlags = [ - "-DUSE_PYTHON=OFF" - ]; + cmakeFlags = { + USE_PYTHON = false; + }; preBuild = '' makeFlags="ILMBASE_HOME=${ilmbase.dev} OPENEXR_HOME=${openexr.dev} USE_PYTHON=0 diff --git a/pkgs/applications/graphics/renderdoc/default.nix b/pkgs/applications/graphics/renderdoc/default.nix index 99e250e9e4d7d..ca6f72eda5f3e 100644 --- a/pkgs/applications/graphics/renderdoc/default.nix +++ b/pkgs/applications/graphics/renderdoc/default.nix @@ -34,15 +34,15 @@ stdenv.mkDerivation rec { patchShebangs swig/autogen.sh ''; - cmakeFlags = [ - "-DBUILD_VERSION_HASH=${src.rev}" - "-DBUILD_VERSION_DIST_NAME=NixOS" - "-DBUILD_VERSION_DIST_VER=${version}" - "-DBUILD_VERSION_DIST_CONTACT=https://github.com/NixOS/nixpkgs/tree/master/pkgs/applications/graphics/renderdoc" - "-DBUILD_VERSION_STABLE=ON" + cmakeFlags = { + BUILD_VERSION_HASH = src.rev; + BUILD_VERSION_DIST_NAME = "NixOS"; + BUILD_VERSION_DIST_VER = version; + BUILD_VERSION_DIST_CONTACT = "https://github.com/NixOS/nixpkgs/tree/master/pkgs/applications/graphics/renderdoc"; + BUILD_VERSION_DIST_STABLE = true; # TODO: add once pyside2 is in nixpkgs - #"-DPYSIDE2_PACKAGE_DIR=${python36Packages.pyside2}" - ]; + # PYSIDE2_PACKAGE_DIR = python36Packages.pyside2; + }; # Future work: define these in the above array via placeholders preConfigure = '' diff --git a/pkgs/applications/graphics/screencloud/default.nix b/pkgs/applications/graphics/screencloud/default.nix index 292ae9c8faa87..159ea05b50cc2 100644 --- a/pkgs/applications/graphics/screencloud/default.nix +++ b/pkgs/applications/graphics/screencloud/default.nix @@ -9,7 +9,7 @@ stdenv.mkDerivation rec { # for tracking usage. consumerKey = "23e747012c68601f27ab69c6de129ed70552d55b6"; consumerSecret = "4701cb00c1bd357bbcae7c3d713dd216"; - + src = fetchFromGitHub { owner = "olav-st"; repo = "screencloud"; @@ -34,14 +34,14 @@ stdenv.mkDerivation rec { # to add the argument for us. dontAddPrefix = true; - cmakeFlags = [ - "-DQXT_QXTCORE_INCLUDE_DIR=${qxt}/include/QxtCore" - "-DQXT_QXTCORE_LIB_RELEASE=${qxt}/lib/libQxtCore.so" - "-DQXT_QXTGUI_INCLUDE_DIR=${qxt}/include/QxtGui" - "-DQXT_QXTGUI_LIB_RELEASE=${qxt}/lib/libQxtGui.so" - "-DCONSUMER_KEY_SCREENCLOUD=${consumerKey}" - "-DCONSUMER_SECRET_SCREENCLOUD=${consumerSecret}" - ]; + cmakeFlags = { + QXT_QXTCORE_INCLUDE_DIR = "${qxt}/include/QxtCore"; + QXT_QXTCORE_LIB_RELEASE = "${qxt}/lib/libQxtCore.so"; + QXT_QXTGUI_INCLUDE_DIR = "${qxt}/include/QxtGui"; + QXT_QXTGUI_LIB_RELEASE = "${qxt}/lib/libQxtGui.so"; + CONSUMER_KEY_SCREENCLOUD = "${consumerKey}"; + CONSUMER_SECRET_SCREENCLOUD = "${consumerSecret}"; + }; setSourceRoot = '' sourceRoot=$(echo */screencloud) @@ -50,7 +50,7 @@ stdenv.mkDerivation rec { preConfigure = '' # This needs to be set in preConfigure instead of cmakeFlags in order to # access the $prefix environment variable. - export cmakeFlags="-DCMAKE_INSTALL_PREFIX=$prefix/opt $cmakeFlags" + cmakeFlags+=("-DCMAKE_INSTALL_PREFIX=$prefix/opt") ''; # There are a number of issues with screencloud's installation. We need to add diff --git a/pkgs/applications/graphics/seg3d/default.nix b/pkgs/applications/graphics/seg3d/default.nix index bca88cc701303..7f96894a3318b 100644 --- a/pkgs/applications/graphics/seg3d/default.nix +++ b/pkgs/applications/graphics/seg3d/default.nix @@ -12,22 +12,22 @@ stdenv.mkDerivation { patches = [ ./cstdio.patch ]; - cmakeFlags = [ - "-DM_LIBRARY=${stdenv.glibc.out}/lib/libm.so" - "-DDL_LIBRARY=${stdenv.glibc.out}/lib/libdl.so" - "-DBUILD_UTILS=1" - "-DBUILD_SEG3D=1" - "-DBUILD_DATAFLOW=0" - "-DBUILD_SHARED_LIBS=0" - "-DWITH_X11=1" - "-DBUILD_BIOMESH3D=1" - "-DWITH_TETGEN=1" - "-DBUILD_TYPE=Release" - "-DBUILD_TESTING=0" - "-DWITH_WXWIDGETS=ON" - "-DITK_DIR=${itk}/lib/InsightToolkit" - "-DGDCM_LIBRARY=${itk}/lib/libitkgdcm.a" - ]; + cmakeFlags = { + M_LIBRARY = "${stdenv.glibc.out}/lib/libm.so"; + DL_LIBRARY = "${stdenv.glibc.out}/lib/libdl.so"; + BUILD_UTILS = true; + BUILD_SEG3D = true; + BUILD_DATAFLOW = false; + BUILD_SHARED_LIBS = false; + WITH_X11 = true; + BUILD_BIOMESH3D = true; + WITH_TETGEN = true; + BUILD_TYPE = "Release"; + BUILD_TESTING = false; + WITH_WXWIDGETS = true; + ITK_DIR = "${itk}/lib/InsightToolkit"; + GDCM_LIBRARY = "${itk}/lib/libitkgdcm.a"; + }; makeFlags = "VERBOSE=1"; diff --git a/pkgs/applications/graphics/smartdeblur/default.nix b/pkgs/applications/graphics/smartdeblur/default.nix index 377a5ae616875..9d3585c2d6a24 100644 --- a/pkgs/applications/graphics/smartdeblur/default.nix +++ b/pkgs/applications/graphics/smartdeblur/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { buildInputs = [ cmake qt4 fftw ]; - cmakeFlags = "-DUSE_SYSTEM_FFTW=ON"; + cmakeFlags = { USE_SYSTEM_FFTW = true; }; meta = { homepage = https://github.com/Y-Vladimir/SmartDeblur; diff --git a/pkgs/applications/misc/bibletime/default.nix b/pkgs/applications/misc/bibletime/default.nix index 41184d6e94920..185d0edc8e115 100644 --- a/pkgs/applications/misc/bibletime/default.nix +++ b/pkgs/applications/misc/bibletime/default.nix @@ -22,7 +22,10 @@ stdenv.mkDerivation rec { buildInputs = [ cmake sword qt4 boost clucene_core ]; - cmakeFlags = "-DUSE_QT_WEBKIT=ON -DCMAKE_BUILD_TYPE=Debug"; + cmakeFlags = { + USE_QT_WEBKIT = true; + CMAKE_BUILD_TYPE = "Debug"; + }; meta = { description = "A Qt4 Bible study tool"; diff --git a/pkgs/applications/misc/dfilemanager/default.nix b/pkgs/applications/misc/dfilemanager/default.nix index 6cbdc8ece0ca4..9214d0231e64c 100644 --- a/pkgs/applications/misc/dfilemanager/default.nix +++ b/pkgs/applications/misc/dfilemanager/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation { buildInputs = [ cmake qtbase qttools file solid ]; - cmakeFlags = "-DQT5BUILD=true"; + cmakeFlags = { QT5BUILD = true; }; meta = { homepage = http://dfilemanager.sourceforge.net/; diff --git a/pkgs/applications/misc/finalterm/default.nix b/pkgs/applications/misc/finalterm/default.nix index 2c024b9fe0edb..668f6628f40d0 100644 --- a/pkgs/applications/misc/finalterm/default.nix +++ b/pkgs/applications/misc/finalterm/default.nix @@ -29,8 +29,8 @@ stdenv.mkDerivation { substituteInPlace data/org.gnome.finalterm.gschema.xml \ --replace "/bin/bash" "${bashInteractive}/bin/bash" - cmakeFlagsArray=( - -DMINIMAL_FLAGS=ON + cmakeFlags+=( + "-DMINIMAL_FLAGS=ON" ) ''; diff --git a/pkgs/applications/misc/j4-dmenu-desktop/default.nix b/pkgs/applications/misc/j4-dmenu-desktop/default.nix index f24951624c589..da456f9d505f5 100644 --- a/pkgs/applications/misc/j4-dmenu-desktop/default.nix +++ b/pkgs/applications/misc/j4-dmenu-desktop/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake ]; # tests are fetching an external git repository - cmakeFlags = [ "-DNO_TESTS:BOOL=ON" ]; + cmakeFlags = { NO_TESTS = true; }; meta = with stdenv.lib; { description = "A wrapper for dmenu that recognize .desktop files"; diff --git a/pkgs/applications/misc/mysql-workbench/default.nix b/pkgs/applications/misc/mysql-workbench/default.nix index 76517f8746422..a39cfec267713 100644 --- a/pkgs/applications/misc/mysql-workbench/default.nix +++ b/pkgs/applications/misc/mysql-workbench/default.nix @@ -56,17 +56,17 @@ in stdenv.mkDerivation rec { "-I${glibmm}/lib/giomm-2.4/include" ]; - cmakeFlags = [ - "-DCMAKE_CXX_FLAGS=-std=c++11" - "-DMySQL_CONFIG_PATH=${mysql}/bin/mysql_config" - "-DCTemplate_INCLUDE_DIR=${libctemplate}/include" - "-DCAIRO_INCLUDE_DIRS=${cairo.dev}/include" - "-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk}/lib/gtk-2.0/include" - "-DGTK2_GLIBCONFIG_INCLUDE_DIR=${gtk.dev}/include" - "-DGTK2_GTKMMCONFIG_INCLUDE_DIR=${gtkmm}/lib/gtkmm-2.4/include" - "-DGTK2_GDKMMCONFIG_INCLUDE_DIR=${gtkmm}/lib/gdkmm-2.4/include" - "-DGTK2_GLIBMMCONFIG_INCLUDE_DIR=${glibmm}/lib/glibmm-2.4/include" - ]; + cmakeFlags = { + CMAKE_CXX_FLAGS = "-std=c++11"; + MySQL_CONFIG_PATH = "${mysql}/bin/mysql_config"; + CTemplate_INCLUDE_DIR = "${libctemplate}/include"; + CAIRO_INCLUDE_DIRS = "${cairo.dev}/include"; + GTK2_GDKCONFIG_INCLUDE_DIR = "${gtk}/lib/gtk-2.0/include"; + GTK2_GLIBCONFIG_INCLUDE_DIR = "${gtk.dev}/include"; + GTK2_GTKMMCONFIG_INCLUDE_DIR = "${gtkmm}/lib/gtkmm-2.4/include"; + GTK2_GDKMMCONFIG_INCLUDE_DIR = "${gtkmm}/lib/gdkmm-2.4/include"; + GTK2_GLIBMMCONFIG_INCLUDE_DIR = "${glibmm}/lib/glibmm-2.4/include"; + }; postInstall = '' patchShebangs $out/share/mysql-workbench/extras/build_freetds.sh diff --git a/pkgs/applications/misc/navit/default.nix b/pkgs/applications/misc/navit/default.nix index 362d28d2607f3..3fce6481d08da 100644 --- a/pkgs/applications/misc/navit/default.nix +++ b/pkgs/applications/misc/navit/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { NIX_CFLAGS_COMPILE = [ "-I${SDL.dev}/include/SDL" ]; - cmakeFlags = [ "-DSAMPLE_MAP=n" ]; + cmakeFlags = { SAMPLE_MAP = false; }; meta = { homepage = http://www.navit-project.org/; diff --git a/pkgs/applications/misc/opencpn/default.nix b/pkgs/applications/misc/opencpn/default.nix index 7713b5256bfa8..052810fba5561 100644 --- a/pkgs/applications/misc/opencpn/default.nix +++ b/pkgs/applications/misc/opencpn/default.nix @@ -16,10 +16,10 @@ stdenv.mkDerivation rec { buildInputs = [ cmake gtk2 wxGTK30 libpulseaudio curl gettext glib portaudio ]; - cmakeFlags = [ - "-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2.out}/lib/gtk-2.0/include" - "-DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-2.0/include" - ]; + cmakeFlags = { + GTK2_GDKCONFIG_INCLUDE_DIR = "${gtk2.out}/lib/gtk-2.0/include"; + GTK2_GLIBCONFIG_INCLUDE_DIR = "${glib.out}/lib/glib-2.0/include"; + }; enableParallelBuilding = true; diff --git a/pkgs/applications/networking/browsers/midori/default.nix b/pkgs/applications/networking/browsers/midori/default.nix index f7d4f1a694171..b8c318be194e5 100644 --- a/pkgs/applications/networking/browsers/midori/default.nix +++ b/pkgs/applications/networking/browsers/midori/default.nix @@ -40,11 +40,11 @@ stdenv.mkDerivation rec { zeitgeist ]; - cmakeFlags = [ - "-DUSE_ZEITGEIST=${if zeitgeistSupport then "ON" else "OFF"}" - "-DHALF_BRO_INCOM_WEBKIT2=ON" - "-DUSE_GTK3=1" - ]; + cmakeFlags = { + USE_ZEITGEIST = zeitgeistSupport; + HALF_BRO_INCOM_WEBKIT2 = true; + USE_GTK3 = true; + }; NIX_LDFLAGS="-lX11"; diff --git a/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-vk-plugin/default.nix b/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-vk-plugin/default.nix index e54af933a0818..3684bde2bb56a 100644 --- a/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-vk-plugin/default.nix +++ b/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-vk-plugin/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { sed -i -e 's|DESTINATION.*PURPLE_PLUGIN_DIR}|DESTINATION lib/purple-2|' CMakeLists.txt ''; - cmakeFlags = "-DCMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT=1"; + cmakeFlags = { CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT = true; }; meta = { homepage = https://bitbucket.org/olegoandreev/purple-vk-plugin; diff --git a/pkgs/applications/networking/instant-messengers/psi-plus/default.nix b/pkgs/applications/networking/instant-messengers/psi-plus/default.nix index 7c6f33935dc0c..0c884113686ef 100644 --- a/pkgs/applications/networking/instant-messengers/psi-plus/default.nix +++ b/pkgs/applications/networking/instant-messengers/psi-plus/default.nix @@ -25,9 +25,9 @@ stdenv.mkDerivation rec { cp -a "${resources}/iconsets" "$sourceRoot" ''; - cmakeFlags = [ - "-DENABLE_PLUGINS=ON" - ]; + cmakeFlags = { + ENABLE_PLUGINS = true; + }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/applications/networking/irc/quassel/default.nix b/pkgs/applications/networking/irc/quassel/default.nix index 9de3944222793..c6aff3ffb2a16 100644 --- a/pkgs/applications/networking/irc/quassel/default.nix +++ b/pkgs/applications/networking/irc/quassel/default.nix @@ -29,7 +29,6 @@ assert client || daemon -> !monolithic; assert !buildClient -> !withKDE; # KDE is used by the client only let - edf = flag: feature: [("-D" + feature + (if flag then "=ON" else "=OFF"))]; source = import ./source.nix { inherit fetchurl; }; in with stdenv; mkDerivation rec { @@ -52,15 +51,15 @@ in with stdenv; mkDerivation rec { kxmlgui ]; - cmakeFlags = [ - "-DEMBED_DATA=OFF" - "-DUSE_QT5=ON" - ] - ++ edf static "STATIC" - ++ edf monolithic "WANT_MONO" - ++ edf daemon "WANT_CORE" - ++ edf client "WANT_QTCLIENT" - ++ edf withKDE "WITH_KDE"; + cmakeFlags = { + EMBED_DATA = false; + STATIC = static; + WANT_CORE = daemon; + WITH_KDE = withKDE; + WANT_MONO = monolithic; + WANT_QTCLIENT = client; + USE_QT5 = true; + }; preFixup = lib.optionalString daemon '' diff --git a/pkgs/applications/networking/irc/weechat/default.nix b/pkgs/applications/networking/irc/weechat/default.nix index 16162435e09ab..4708b891828ed 100644 --- a/pkgs/applications/networking/irc/weechat/default.nix +++ b/pkgs/applications/networking/irc/weechat/default.nix @@ -40,13 +40,15 @@ let outputs = [ "out" "man" ] ++ map (p: p.name) enabledPlugins; enableParallelBuilding = true; - cmakeFlags = with stdenv.lib; [ - "-DENABLE_MAN=ON" - "-DENABLE_DOC=ON" - ] - ++ optionals stdenv.isDarwin ["-DICONV_LIBRARY=${libiconv}/lib/libiconv.dylib" "-DCMAKE_FIND_FRAMEWORK=LAST"] - ++ map (p: "-D${p.cmakeFlag}=" + (if p.enabled then "ON" else "OFF")) plugins - ; + cmakeFlags = { + ENABLE_MAN = true; + ENABLE_DOC = true; + } // stdenv.lib.optionalAttrs stdenv.isDarwin { + ICONV_LIBRARY = "${libiconv}/lib/libiconv.dylib"; + CMAKE_FIND_FRAMEWORK = "LAST"; + } // stdenv.lib.foldr ( + plugin: acc: acc // { ${plugin.cmakeFlag} = plugin.enabled; } + ) {} plugins; buildInputs = with stdenv.lib; [ ncurses openssl aspell gnutls zlib curl pkgconfig diff --git a/pkgs/applications/networking/owncloud-client/default.nix b/pkgs/applications/networking/owncloud-client/default.nix index d5966845a0b7e..84a728b425409 100644 --- a/pkgs/applications/networking/owncloud-client/default.nix +++ b/pkgs/applications/networking/owncloud-client/default.nix @@ -14,9 +14,9 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkgconfig cmake ]; buildInputs = [ qtbase qtwebkit qtkeychain sqlite ]; - cmakeFlags = [ - "-UCMAKE_INSTALL_LIBDIR" - ]; + cmakeFlags = { + CMAKE_INSTALL_LIBDIR = null; + }; enableParallelBuilding = true; diff --git a/pkgs/applications/networking/remote/remmina/default.nix b/pkgs/applications/networking/remote/remmina/default.nix index 6b0ddb371205b..8d9cecc985d24 100644 --- a/pkgs/applications/networking/remote/remmina/default.nix +++ b/pkgs/applications/networking/remote/remmina/default.nix @@ -41,15 +41,15 @@ in stdenv.mkDerivation { libsecret spice-protocol spice-gtk epoxy at-spi2-core openssl hicolor-icon-theme adwaita-icon-theme json-glib ]; - cmakeFlags = [ - "-DWITH_VTE=OFF" - "-DWITH_TELEPATHY=OFF" - "-DWITH_AVAHI=OFF" - "-DFREERDP_LIBRARY=${freerdp}/lib/libfreerdp2.so" - "-DFREERDP_CLIENT_LIBRARY=${freerdp}/lib/libfreerdp-client2.so" - "-DFREERDP_WINPR_LIBRARY=${freerdp}/lib/libwinpr2.so" - "-DWINPR_INCLUDE_DIR=${freerdp}/include/winpr2" - ]; + cmakeFlags = { + FREERDP_CLIENT_LIBRARY = "${freerdp}/lib/libfreerdp-client2.so"; + FREERDP_LIBRARY = "${freerdp}/lib/libfreerdp2.so"; + FREERDP_WINPR_LIBRARY = "${freerdp}/lib/libwinpr2.so"; + WINPR_INCLUDE_DIR = "${freerdp}/include/winpr2"; + WITH_AVAHI = false; + WITH_TELEPATHY = false; + WITH_VTE = false; + }; preFixup = '' gappsWrapperArgs+=( diff --git a/pkgs/applications/networking/sniffers/ettercap/default.nix b/pkgs/applications/networking/sniffers/ettercap/default.nix index 13d536ccf1bbd..c79731c0cd960 100644 --- a/pkgs/applications/networking/sniffers/ettercap/default.nix +++ b/pkgs/applications/networking/sniffers/ettercap/default.nix @@ -36,10 +36,10 @@ stdenv.mkDerivation rec { --replace /usr \$\{INSTALL_PREFIX\} ''; - cmakeFlags = [ - "-DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-2.0/include" - "-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2.out}/lib/gtk-2.0/include" - ]; + cmakeFlags = { + GTK2_GLIBCONFIG_INCLUDE_DIR = "${glib.out}/lib/glib-2.0/include"; + GTK2_GDKCONFIG_INCLUDE_DIR = "${gtk2.out}/lib/gtk-2.0/include"; + }; meta = with stdenv.lib; { description = "Comprehensive suite for man in the middle attacks"; diff --git a/pkgs/applications/office/ledger/default.nix b/pkgs/applications/office/ledger/default.nix index 387a71aa04ee0..df8d28f7e07aa 100644 --- a/pkgs/applications/office/ledger/default.nix +++ b/pkgs/applications/office/ledger/default.nix @@ -22,7 +22,10 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - cmakeFlags = [ "-DCMAKE_INSTALL_LIBDIR=lib" (stdenv.lib.optionalString usePython "-DUSE_PYTHON=true") ]; + cmakeFlags = { + CMAKE_INSTALL_LIBDIR = "lib"; + USE_PYTHON = usePython; + } # Skip byte-compiling of emacs-lisp files because this is currently # broken in ledger... diff --git a/pkgs/applications/science/biology/ants/default.nix b/pkgs/applications/science/biology/ants/default.nix index 0b8ddd0d4fb93..77385307ca333 100644 --- a/pkgs/applications/science/biology/ants/default.nix +++ b/pkgs/applications/science/biology/ants/default.nix @@ -15,10 +15,12 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake makeWrapper ]; buildInputs = [ itk vtk ]; - cmakeFlags = [ "-DANTS_SUPERBUILD=FALSE" "-DUSE_VTK=TRUE" - # as cmake otherwise tries to download test data: - "-DBUILD_TESTING=FALSE" ]; - + cmakeFlags = { + ANTS_SUPERBUILD = false; + USE_VTK = true; + # as cmake otherwise tries to download test data: + BUILD_TESTING = false; + }; enableParallelBuilding = true; checkPhase = "ctest"; diff --git a/pkgs/applications/science/biology/minc-tools/default.nix b/pkgs/applications/science/biology/minc-tools/default.nix index 8e1f74686d1f8..96e6140a58188 100644 --- a/pkgs/applications/science/biology/minc-tools/default.nix +++ b/pkgs/applications/science/biology/minc-tools/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { buildInputs = [ libminc libjpeg zlib ]; propagatedBuildInputs = [ perl TextFormat ]; - cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/" ]; + cmakeFlags = { LIBMINC_DIR = "${libminc}/lib/"; }; checkPhase = "ctest --output-on-failure"; # still some weird test failures though diff --git a/pkgs/applications/science/machine-learning/torch/torch-distro.nix b/pkgs/applications/science/machine-learning/torch/torch-distro.nix index 9c4f24021430f..311730387af81 100644 --- a/pkgs/applications/science/machine-learning/torch/torch-distro.nix +++ b/pkgs/applications/science/machine-learning/torch/torch-distro.nix @@ -303,9 +303,16 @@ let }; preConfigure = '' - cmakeFlags="-DLUA_LIBRARY=${lua}/lib/lua/${lua.luaversion} -DINSTALL_CMOD=$out/lib/lua/${lua.luaversion} -DINSTALL_MOD=$out/lib/lua/${lua.luaversion}" + cmakeFlags+=( + "-DINSTALL_CMOD=$out/lib/lua/${lua.luaversion}" + "-DINSTALL_MOD=$out/lib/lua/${lua.luaversion}" + ) ''; + cmakeFlags = { + LUA_LIBRARY = "${lua}/lib/lua/${lua.luaversion}"; + }; + buildInputs = [cmake libuuid lua]; meta = { # FIXME: set the exact revision for src diff --git a/pkgs/applications/science/molecular-dynamics/gromacs/default.nix b/pkgs/applications/science/molecular-dynamics/gromacs/default.nix index 295e726c679d7..52c37c50c879c 100644 --- a/pkgs/applications/science/molecular-dynamics/gromacs/default.nix +++ b/pkgs/applications/science/molecular-dynamics/gromacs/default.nix @@ -18,14 +18,16 @@ stdenv.mkDerivation { buildInputs = [cmake fftw] ++ (stdenv.lib.optionals mpiEnabled [ openmpi ]); - cmakeFlags = '' - ${if singlePrec then "-DGMX_DOUBLE=OFF" else "-DGMX_DOUBLE=ON -DGMX_DEFAULT_SUFFIX=OFF"} - ${if mpiEnabled then "-DGMX_MPI:BOOL=TRUE - -DGMX_CPU_ACCELERATION:STRING=SSE4.1 - -DGMX_OPENMP:BOOL=TRUE - -DGMX_THREAD_MPI:BOOL=FALSE" - else "-DGMX_MPI:BOOL=FALSE" } - ''; + cmakeFlags = with stdenv.lib; { + GMX_DOUBLE = !singlePrec; + GMX_MPI = mpiEnabled; + } // (optionalAttrs (!singlePrec) { + GMX_DEFAULT_SUFFIX = false; + }) // (optionalAttrs mpiEnabled { + GMX_CPU_ACCELERATION = "SSE4.1"; + GMX_OPENMP = true; + GMX_THREAD_MPI = false; + }); meta = with stdenv.lib; { homepage = "http://www.gromacs.org"; diff --git a/pkgs/applications/science/robotics/gazebo/default.nix b/pkgs/applications/science/robotics/gazebo/default.nix index 98ccd92c4ee58..5423d0bcfeb80 100644 --- a/pkgs/applications/science/robotics/gazebo/default.nix +++ b/pkgs/applications/science/robotics/gazebo/default.nix @@ -32,12 +32,13 @@ stdenv.mkDerivation rec { }; enableParallelBuilding = true; # gazebo needs this so bad - cmakeFlags = [ - "-DCMAKE_INSTALL_LIBDIR:PATH=lib" - "-DCMAKE_INSTALL_INCLUDEDIR=include" ] - ++ optional withQuickBuild [ "-DENABLE_TESTS_COMPILATION=False" ] - ++ optional withLowMemorySupport [ "-DUSE_LOW_MEMORY_TESTS=True" ] - ++ optional withHeadless [ "-DENABLE_SCREEN_TESTS=False" ]; + cmakeFlags = { + CMAKE_INSTALL_LIBDIR = "lib"; + CMAKE_INSTALL_INCLUDEDIR = "include"; + ENABLE_TESTS_COMPILATION = !withQuickBuild; + USE_LOW_MEMORY_TESTS = withLowMemorySupport; + ENABLE_SCREEN_TESTS = !withHeadless; + }; nativeBuildInputs = [ cmake pkgconfig ]; diff --git a/pkgs/applications/video/obs-studio/default.nix b/pkgs/applications/video/obs-studio/default.nix index a07a15177d045..b855a145df1fc 100644 --- a/pkgs/applications/video/obs-studio/default.nix +++ b/pkgs/applications/video/obs-studio/default.nix @@ -66,7 +66,9 @@ in stdenv.mkDerivation rec { # obs attempts to dlopen libobs-opengl, it fails unless we make sure # DL_OPENGL is an explicit path. Not sure if there's a better way # to handle this. - cmakeFlags = [ "-DCMAKE_CXX_FLAGS=-DDL_OPENGL=\\\"$(out)/lib/libobs-opengl.so\\\"" ]; + cmakeFlags = { + CMAKE_CXX_FLAGS = "-DDL_OPENGL=\\\"$(out)/lib/libobs-opengl.so\\\""; + }; postInstall = '' wrapProgram $out/bin/obs \ diff --git a/pkgs/applications/window-managers/icewm/default.nix b/pkgs/applications/window-managers/icewm/default.nix index 8406736541c04..0d9eadbc1f356 100644 --- a/pkgs/applications/window-managers/icewm/default.nix +++ b/pkgs/applications/window-managers/icewm/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { }; preConfigure = '' - export cmakeFlags="-DPREFIX=$out -DCFGDIR=/etc/icewm" + cmakeFlags+=("-DPREFIX=$out" "-DCFGDIR=/etc/icewm") ''; patches = [ ./fix-strlcat_strlcpy.patch ] ++ diff --git a/pkgs/development/compilers/emscripten/fastcomp/emscripten-fastcomp.nix b/pkgs/development/compilers/emscripten/fastcomp/emscripten-fastcomp.nix index f963302aa9cb1..759c8df0d92f0 100644 --- a/pkgs/development/compilers/emscripten/fastcomp/emscripten-fastcomp.nix +++ b/pkgs/development/compilers/emscripten/fastcomp/emscripten-fastcomp.nix @@ -26,17 +26,17 @@ stdenv.mkDerivation rec { cp -Lr ${srcFL} tools/clang chmod +w -R tools/clang ''; - cmakeFlags = [ - "-DLLVM_TARGETS_TO_BUILD='X86;JSBackend'" - "-DLLVM_INCLUDE_EXAMPLES=OFF" - "-DLLVM_INCLUDE_TESTS=ON" - #"-DLLVM_CONFIG=${llvm}/bin/llvm-config" - "-DLLVM_BUILD_TESTS=ON" - "-DCLANG_INCLUDE_TESTS=ON" - ] ++ (stdenv.lib.optional stdenv.isLinux + cmakeFlags = { + LLVM_TARGETS_TO_BUILD = "X86;JSBackend"; + LLVM_INCLUDE_EXAMPLES = false; + LLVM_INCLUDE_TESTS = true; + # LLVM_CONFIG = "${llvm}/bin/llvm-config"; + LLVM_BUILD_TESTS = true; + CLANG_INCLUDE_TESTS = true; + } ++ (stdenv.lib.optionalAttrs stdenv.isLinux { # necessary for clang to find crtend.o - "-DGCC_INSTALL_PREFIX=${gcc}" - ); + GCC_INSTALL_PREFIX = "${gcc}"; + }); enableParallelBuilding = true; passthru = { diff --git a/pkgs/development/compilers/llvm/3.4/clang.nix b/pkgs/development/compilers/llvm/3.4/clang.nix index 863e7eb22474c..9c10b20f4bc82 100644 --- a/pkgs/development/compilers/llvm/3.4/clang.nix +++ b/pkgs/development/compilers/llvm/3.4/clang.nix @@ -11,7 +11,9 @@ stdenv.mkDerivation { mv clang-tools-extra-* $sourceRoot/tools/extra # !!! Hopefully won't be needed for 3.5 unpackFile ${llvm.src} - export cmakeFlags="$cmakeFlags -DCLANG_PATH_TO_LLVM_SOURCE="`ls -d $PWD/llvm-*` + cmakeFlags+=( + "-DCLANG_PATH_TO_LLVM_SOURCE="$(ls -d $PWD/llvm-*) + ) (cd llvm-* && patch -Np1 -i ${./llvm-separate-build.patch}) ''; @@ -19,12 +21,14 @@ stdenv.mkDerivation { buildInputs = [ cmake libedit libxml2 zlib ]; - cmakeFlags = [ - "-DCMAKE_CXX_FLAGS=-std=c++11" - "-DCLANG_PATH_TO_LLVM_BUILD=${llvm}" - ] ++ - (stdenv.lib.optional (stdenv.cc.libc != null) "-DC_INCLUDE_DIRS=${stdenv.cc.libc}/include") ++ - (stdenv.lib.optional (stdenv.cc.cc != null) "-DGCC_INSTALL_PREFIX=${stdenv.cc.cc}"); + cmakeFlags = with stdenv.lib; { + CMAKE_CXX_FLAGS = "-std=c++11"; + CLANG_PATH_TO_LLVM_BUILD = "${llvm}"; + } // optionalAttrs (stdenv.cc.libc != null) { + C_INCLUDE_DIRS = "${stdenv.cc.libc}/include"; + } // optionalAttrs (stdenv.cc.cc != null) { + GCC_INSTALL_PREFIX = "${stdenv.cc.cc}"; + }; # Clang expects to find LLVMgold in its own prefix # Clang expects to find sanitizer libraries in its own prefix diff --git a/pkgs/development/compilers/llvm/3.4/lld.nix b/pkgs/development/compilers/llvm/3.4/lld.nix index 0398a5a543ad8..17c0305b83f1f 100644 --- a/pkgs/development/compilers/llvm/3.4/lld.nix +++ b/pkgs/development/compilers/llvm/3.4/lld.nix @@ -8,15 +8,17 @@ stdenv.mkDerivation { preUnpack = '' # !!! Hopefully won't be needed for 3.5 unpackFile ${llvm.src} - export cmakeFlags="$cmakeFlags -DLLD_PATH_TO_LLVM_SOURCE="`ls -d $PWD/llvm-*` + cmakeFlags+=( + "-DLLD_PATH_TO_LLVM_SOURCE="$(ls -d $PWD/llvm-*) + ) ''; buildInputs = [ cmake ncurses zlib python2 ]; - cmakeFlags = [ - "-DCMAKE_CXX_FLAGS=-std=c++11" - "-DLLD_PATH_TO_LLVM_BUILD=${llvm}" - ]; + cmakeFlags = { + CMAKE_CXX_FLAGS = "-std=c++11"; + LLD_PATH_TO_LLVM_BUILD = "${llvm}"; + }; enableParallelBuilding = true; diff --git a/pkgs/development/compilers/llvm/3.4/lldb.nix b/pkgs/development/compilers/llvm/3.4/lldb.nix index c5ed82f53e577..f97687db5bc8d 100644 --- a/pkgs/development/compilers/llvm/3.4/lldb.nix +++ b/pkgs/development/compilers/llvm/3.4/lldb.nix @@ -25,12 +25,12 @@ stdenv.mkDerivation { buildInputs = [ cmake python2 which swig ncurses zlib libedit ]; - cmakeFlags = [ - "-DCMAKE_CXX_FLAGS=-std=c++11" - "-DLLDB_PATH_TO_LLVM_BUILD=${llvm}" - "-DLLDB_PATH_TO_CLANG_BUILD=${clang}" - "-DLLDB_DISABLE_LIBEDIT=1" # https://llvm.org/bugs/show_bug.cgi?id=28898 - ]; + cmakeFlags = { + CMAKE_CXX_FLAGS = "-std=c++11"; + LLDB_PATH_TO_LLVM_BUILD = "${llvm}"; + LLDB_PATH_TO_CLANG_BUILD = "${clang}"; + LLDB_DISABLE_LIBEDIT = true; # https://llvm.org/bugs/show_bug.cgi?id=28898 + }; enableParallelBuilding = true; diff --git a/pkgs/development/compilers/llvm/3.4/polly.nix b/pkgs/development/compilers/llvm/3.4/polly.nix index 1ea806a1266db..1933bc94c5b33 100644 --- a/pkgs/development/compilers/llvm/3.4/polly.nix +++ b/pkgs/development/compilers/llvm/3.4/polly.nix @@ -9,10 +9,10 @@ stdenv.mkDerivation { buildInputs = [ cmake isl python2 gmp ]; - cmakeFlags = [ - "-DCMAKE_CXX_FLAGS=-std=c++11" - "-DLLVM_INSTALL_ROOT=${llvm}" - ]; + cmakeFlags = { + CMAKE_CXX_FLAGS = "-std=c++11"; + LLVM_INSTALL_ROOT = "${llvm}"; + }; enableParallelBuilding = true; diff --git a/pkgs/development/compilers/llvm/3.5/clang.nix b/pkgs/development/compilers/llvm/3.5/clang.nix index 7e0163577baf2..502cdfd9dc24c 100644 --- a/pkgs/development/compilers/llvm/3.5/clang.nix +++ b/pkgs/development/compilers/llvm/3.5/clang.nix @@ -14,12 +14,14 @@ in stdenv.mkDerivation { buildInputs = [ cmake libxml2 llvm ]; - cmakeFlags = [ - "-DCMAKE_CXX_FLAGS=-std=c++11" - ] ++ - # Maybe with compiler-rt this won't be needed? - (stdenv.lib.optional stdenv.isLinux "-DGCC_INSTALL_PREFIX=${gcc}") ++ - (stdenv.lib.optional (stdenv.cc.libc != null) "-DC_INCLUDE_DIRS=${stdenv.cc.libc}/include"); + cmakeFlags = { + CMAKE_CXX_FLAGS = "-std=c++11"; + } // (stdenv.lib.optionalAttrs stdenv.isLinux { + # Maybe with compiler-rt this won't be needed? + GCC_INSTALL_PREFIX = "${gcc}"; + }) // (stdenv.lib.optionalAttrs (stdenv.cc.libc != null) { + C_INCLUDE_DIRS = "${stdenv.cc.libc}/include"; + }); patches = [ ./clang-purity.patch ]; diff --git a/pkgs/development/compilers/llvm/3.5/libc++/default.nix b/pkgs/development/compilers/llvm/3.5/libc++/default.nix index 6edd5e9798c78..c8f5f378fff72 100644 --- a/pkgs/development/compilers/llvm/3.5/libc++/default.nix +++ b/pkgs/development/compilers/llvm/3.5/libc++/default.nix @@ -28,12 +28,12 @@ stdenv.mkDerivation rec { buildInputs = [ cmake libcxxabi ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames; - cmakeFlags = [ - "-DLIBCXX_LIBCXXABI_INCLUDE_PATHS=${libcxxabi}/include" - "-DLIBCXX_LIBCXXABI_LIB_PATH=${libcxxabi}/lib" - "-DLIBCXX_LIBCPPABI_VERSION=2" - "-DLIBCXX_CXX_ABI=libcxxabi" - ]; + cmakeFlags = { + LIBCXX_CXX_ABI = "libcxxabi"; + LIBCXX_LIBCXXABI_INCLUDE_PATHS = "${libcxxabi}/include"; + LIBCXX_LIBCXXABI_LIB_PATH = "${libcxxabi}/lib"; + LIBCXX_LIBCPPABI_VERSION = "2"; + }; enableParallelBuilding = true; diff --git a/pkgs/development/compilers/llvm/3.5/libc++abi/default.nix b/pkgs/development/compilers/llvm/3.5/libc++abi/default.nix index 268f2702a234f..1d9981a3b9f4c 100644 --- a/pkgs/development/compilers/llvm/3.5/libc++abi/default.nix +++ b/pkgs/development/compilers/llvm/3.5/libc++abi/default.nix @@ -23,7 +23,10 @@ in stdenv.mkDerivation { echo cp ${cmakeLists} libcxxabi-*/CMakeLists.txt cp ${cmakeLists} libcxxabi-*/CMakeLists.txt export NIX_CFLAGS_COMPILE+=" -I$PWD/include" - export cmakeFlags="-DLLVM_PATH=$PWD/$(ls -d llvm-*) -DLIBCXXABI_LIBCXX_INCLUDES=$PWD/$(ls -d libcxx-*)/include" + cmakeFlags+=( + "-DLLVM_PATH=$PWD/"$(ls -d llvm-*) + "-DLIBCXXABI_LIBCXX_INCLUDES=$PWD/"$(ls -d libcxx-*)/include + ) '' + stdenv.lib.optionalString stdenv.isDarwin '' export TRIPLE=x86_64-apple-darwin ''; diff --git a/pkgs/development/compilers/llvm/3.5/lld.nix b/pkgs/development/compilers/llvm/3.5/lld.nix index 4a398bd96a052..f6aaa20f7b274 100644 --- a/pkgs/development/compilers/llvm/3.5/lld.nix +++ b/pkgs/development/compilers/llvm/3.5/lld.nix @@ -8,7 +8,9 @@ stdenv.mkDerivation { preUnpack = '' # !!! Hopefully won't be needed for 3.5 unpackFile ${llvm.src} - export cmakeFlags="$cmakeFlags -DLLD_PATH_TO_LLVM_SOURCE="`ls -d $PWD/llvm-*` + cmakeFlags+=( + "-DLLD_PATH_TO_LLVM_SOURCE="$(ls -d $PWD/llvm-*) + ) ''; buildInputs = [ cmake ncurses zlib python ]; diff --git a/pkgs/development/compilers/llvm/3.5/lldb.nix b/pkgs/development/compilers/llvm/3.5/lldb.nix index a5161333b2829..e3f02d6fa7755 100644 --- a/pkgs/development/compilers/llvm/3.5/lldb.nix +++ b/pkgs/development/compilers/llvm/3.5/lldb.nix @@ -25,12 +25,12 @@ stdenv.mkDerivation { buildInputs = [ cmake python which swig ncurses zlib libedit ]; - cmakeFlags = [ - "-DCMAKE_CXX_FLAGS=-std=c++11" - "-DLLDB_PATH_TO_LLVM_BUILD=${llvm}" - "-DLLDB_PATH_TO_CLANG_BUILD=${clang}" - "-DLLDB_DISABLE_LIBEDIT=1" # https://llvm.org/bugs/show_bug.cgi?id=28898 - ]; + cmakeFlags = { + CMAKE_CXX_FLAGS = "-std=c++11"; + LLDB_PATH_TO_LLVM_BUILD = "${llvm}"; + LLDB_PATH_TO_CLANG_BUILD = "${clang}"; + LLDB_DISABLE_LIBEDIT = true; # https://llvm.org/bugs/show_bug.cgi?id=28898 + }; enableParallelBuilding = true; diff --git a/pkgs/development/compilers/llvm/3.5/polly.nix b/pkgs/development/compilers/llvm/3.5/polly.nix index bacf4d30556b6..2c34b0663e827 100644 --- a/pkgs/development/compilers/llvm/3.5/polly.nix +++ b/pkgs/development/compilers/llvm/3.5/polly.nix @@ -9,10 +9,10 @@ stdenv.mkDerivation { buildInputs = [ cmake isl python gmp ]; - cmakeFlags = [ - "-DCMAKE_CXX_FLAGS=-std=c++11" - "-DLLVM_INSTALL_ROOT=${llvm}" - ]; + cmakeFlags = { + CMAKE_CXX_FLAGS = "-std=c++11"; + LLVM_INSTALL_ROOT = "${llvm}"; + }; enableParallelBuilding = true; diff --git a/pkgs/development/compilers/llvm/3.7/clang/default.nix b/pkgs/development/compilers/llvm/3.7/clang/default.nix index 4ccd00af68466..116a91140d136 100644 --- a/pkgs/development/compilers/llvm/3.7/clang/default.nix +++ b/pkgs/development/compilers/llvm/3.7/clang/default.nix @@ -15,12 +15,14 @@ let buildInputs = [ cmake libxml2 llvm ]; - cmakeFlags = [ - "-DCMAKE_CXX_FLAGS=-std=c++11" - ] ++ - # Maybe with compiler-rt this won't be needed? - (stdenv.lib.optional stdenv.isLinux "-DGCC_INSTALL_PREFIX=${gcc}") ++ - (stdenv.lib.optional (stdenv.cc.libc != null) "-DC_INCLUDE_DIRS=${stdenv.cc.libc}/include"); + cmakeFlags = { + CMAKE_CXX_FLAGS = "-std=c++11"; + } // (stdenv.lib.optionalAttrs stdenv.isLinux { + # Maybe with compiler-rt this won't be needed? + GCC_INSTALL_PREFIX = "${gcc}"; + }) // (stdenv.lib.optionalAttrs (stdenv.cc.libc != null) { + C_INCLUDE_DIRS = "${stdenv.cc.libc}/include"; + }); patches = [ ./purity.patch ]; diff --git a/pkgs/development/compilers/llvm/3.7/libc++/default.nix b/pkgs/development/compilers/llvm/3.7/libc++/default.nix index 462e35a483f4e..74c110d66f071 100644 --- a/pkgs/development/compilers/llvm/3.7/libc++/default.nix +++ b/pkgs/development/compilers/llvm/3.7/libc++/default.nix @@ -11,7 +11,9 @@ stdenv.mkDerivation rec { preConfigure = '' # Get headers from the cxxabi source so we can see private headers not installed by the cxxabi package - cmakeFlagsArray=($cmakeFlagsArray -DLIBCXX_CXX_ABI_INCLUDE_PATHS="$NIX_BUILD_TOP/libcxxabi-${version}.src/include") + cmakeFlags+=( + "-DLIBCXX_CXX_ABI_INCLUDE_PATHS=$NIX_BUILD_TOP/libcxxabi-${version}.src/include" + ) ''; patches = [ diff --git a/pkgs/development/compilers/llvm/3.7/libc++abi.nix b/pkgs/development/compilers/llvm/3.7/libc++abi.nix index 2c79d7b3b1b56..22729e5dc63f0 100644 --- a/pkgs/development/compilers/llvm/3.7/libc++abi.nix +++ b/pkgs/development/compilers/llvm/3.7/libc++abi.nix @@ -18,7 +18,10 @@ in stdenv.mkDerivation { unpackFile ${libcxx.src} unpackFile ${llvm.src} export NIX_CFLAGS_COMPILE+=" -I$PWD/include" - export cmakeFlags="-DLLVM_PATH=$PWD/$(ls -d llvm-*) -DLIBCXXABI_LIBCXX_INCLUDES=$PWD/$(ls -d libcxx-*)/include" + cmakeFlags+=( + "-DLLVM_PATH=$PWD/"$(ls -d llvm-*) + "-DLIBCXXABI_LIBCXX_INCLUDES=$PWD/"$(ls -d libcxx-*)/include + ) '' + stdenv.lib.optionalString stdenv.isDarwin '' export TRIPLE=x86_64-apple-darwin ''; diff --git a/pkgs/development/compilers/llvm/3.7/lldb.nix b/pkgs/development/compilers/llvm/3.7/lldb.nix index 294410f99869a..b1effa23b47f9 100644 --- a/pkgs/development/compilers/llvm/3.7/lldb.nix +++ b/pkgs/development/compilers/llvm/3.7/lldb.nix @@ -30,13 +30,13 @@ stdenv.mkDerivation { export LDFLAGS="-ldl" ''; - cmakeFlags = [ - "-DLLDB_PATH_TO_LLVM_BUILD=${llvm}" - "-DLLDB_PATH_TO_CLANG_BUILD=${clang-unwrapped}" - "-DPYTHON_VERSION_MAJOR=2" - "-DPYTHON_VERSION_MINOR=7" - "-DLLDB_DISABLE_LIBEDIT=1" # https://llvm.org/bugs/show_bug.cgi?id=28898 - ]; + cmakeFlags = { + LLDB_DISABLE_LIBEDIT = 1; # https://llvm.org/bugs/show_bug.cgi?id=28898 + LLDB_PATH_TO_CLANG_BUILD = "${clang-unwrapped}"; + LLDB_PATH_TO_LLVM_BUILD = "${llvm}"; + PYTHON_VERSION_MAJOR = 2; + PYTHON_VERSION_MINOR = 7; + }; enableParallelBuilding = true; diff --git a/pkgs/development/compilers/llvm/3.7/llvm.nix b/pkgs/development/compilers/llvm/3.7/llvm.nix index e540469c6278f..bef5bf86d4016 100644 --- a/pkgs/development/compilers/llvm/3.7/llvm.nix +++ b/pkgs/development/compilers/llvm/3.7/llvm.nix @@ -70,20 +70,20 @@ in stdenv.mkDerivation rec { ../fix-llvm-config.patch ]; - cmakeFlags = with stdenv; [ - "-DCMAKE_BUILD_TYPE=${if debugVersion then "Debug" else "Release"}" - "-DLLVM_INSTALL_UTILS=ON" # Needed by rustc - "-DLLVM_BUILD_TESTS=ON" - "-DLLVM_ENABLE_FFI=ON" - "-DLLVM_ENABLE_RTTI=ON" - ] ++ stdenv.lib.optional enableSharedLibraries - "-DBUILD_SHARED_LIBS=ON" - ++ stdenv.lib.optional (!isDarwin) - "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" - ++ stdenv.lib.optionals ( isDarwin) [ - "-DLLVM_ENABLE_LIBCXX=ON" - "-DCAN_TARGET_i386=false" - ]; + cmakeFlags = with stdenv.lib; { + CMAKE_BUILD_TYPE = "${if debugVersion then "Debug" else "Release"}"; + LLVM_INSTALL_UTILS = true; # Needed by rustc + LLVM_BUILD_TESTS = true; + LLVM_ENABLE_FFI = true; + LLVM_ENABLE_RTTI = true; + } // (optionalAttrs (enableSharedLibraries) { + BUILD_SHARED_LIBS = true; + }) // (optionalAttrs (!stdenv.isDarwin) { + LLVM_BINUTILS_INCDIR = "${libbfd.dev}/include"; + }) // (optionalAttrs (stdenv.isDarwin) { + LLVM_ENABLE_LIBCXX = true; + CAN_TARGET_i386 = false; + }); NIX_LDFLAGS = "-lpthread"; # no idea what's the problem diff --git a/pkgs/development/compilers/llvm/3.8/clang/default.nix b/pkgs/development/compilers/llvm/3.8/clang/default.nix index cc25a41b04009..5670074892900 100644 --- a/pkgs/development/compilers/llvm/3.8/clang/default.nix +++ b/pkgs/development/compilers/llvm/3.8/clang/default.nix @@ -16,12 +16,14 @@ let nativeBuildInputs = [ cmake ]; buildInputs = [ libxml2 llvm python ]; - cmakeFlags = [ - "-DCMAKE_CXX_FLAGS=-std=c++11" - ] ++ - # Maybe with compiler-rt this won't be needed? - (stdenv.lib.optional stdenv.isLinux "-DGCC_INSTALL_PREFIX=${gcc}") ++ - (stdenv.lib.optional (stdenv.cc.libc != null) "-DC_INCLUDE_DIRS=${stdenv.cc.libc}/include"); + cmakeFlags = { + CMAKE_CXX_FLAGS = "-std=c++11"; + } // (stdenv.lib.optionalAttrs stdenv.isLinux { + # Maybe with compiler-rt this won't be needed? + GCC_INSTALL_PREFIX = "${gcc}"; + }) // (stdenv.lib.optionalAttrs (stdenv.cc.libc != null) { + C_INCLUDE_DIRS = "${stdenv.cc.libc}/include"; + }); patches = [ ./purity.patch ]; diff --git a/pkgs/development/compilers/llvm/3.8/libc++/default.nix b/pkgs/development/compilers/llvm/3.8/libc++/default.nix index 5a0410302f2ff..dda16dc1408b3 100644 --- a/pkgs/development/compilers/llvm/3.8/libc++/default.nix +++ b/pkgs/development/compilers/llvm/3.8/libc++/default.nix @@ -11,7 +11,9 @@ stdenv.mkDerivation rec { preConfigure = '' # Get headers from the cxxabi source so we can see private headers not installed by the cxxabi package - cmakeFlagsArray=($cmakeFlagsArray -DLIBCXX_CXX_ABI_INCLUDE_PATHS="$NIX_BUILD_TOP/libcxxabi-${version}.src/include") + cmakeFlags+=( + "-DLIBCXX_CXX_ABI_INCLUDE_PATHS=$NIX_BUILD_TOP/libcxxabi-${version}.src/include" + ) ''; patches = [ diff --git a/pkgs/development/compilers/llvm/3.8/libc++abi.nix b/pkgs/development/compilers/llvm/3.8/libc++abi.nix index 8b25681c2dbf4..b8c5452922de8 100644 --- a/pkgs/development/compilers/llvm/3.8/libc++abi.nix +++ b/pkgs/development/compilers/llvm/3.8/libc++abi.nix @@ -12,7 +12,10 @@ stdenv.mkDerivation { unpackFile ${libcxx.src} unpackFile ${llvm.src} export NIX_CFLAGS_COMPILE+=" -I$PWD/include" - export cmakeFlags="-DLLVM_PATH=$PWD/$(ls -d llvm-*) -DLIBCXXABI_LIBCXX_INCLUDES=$PWD/$(ls -d libcxx-*)/include" + cmakeFlags+=( + "-DLLVM_PATH=$PWD/"$(ls -d llvm-*) + "-DLIBCXXABI_LIBCXX_INCLUDES=$PWD/"$(ls -d libcxx-*)/include + ) '' + stdenv.lib.optionalString stdenv.isDarwin '' export TRIPLE=x86_64-apple-darwin '' + stdenv.lib.optionalString stdenv.hostPlatform.isMusl '' diff --git a/pkgs/development/compilers/llvm/3.8/llvm.nix b/pkgs/development/compilers/llvm/3.8/llvm.nix index d7324665240f7..24be7c4b34b8b 100644 --- a/pkgs/development/compilers/llvm/3.8/llvm.nix +++ b/pkgs/development/compilers/llvm/3.8/llvm.nix @@ -71,29 +71,24 @@ in stdenv.mkDerivation rec { ln -sv $PWD/lib $out ''; - cmakeFlags = with stdenv; [ - "-DCMAKE_BUILD_TYPE=${if debugVersion then "Debug" else "Release"}" - "-DLLVM_INSTALL_UTILS=ON" # Needed by rustc - "-DLLVM_BUILD_TESTS=ON" - "-DLLVM_ENABLE_FFI=ON" - "-DLLVM_ENABLE_RTTI=ON" - - "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" - "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.targetPlatform.config}" - "-DTARGET_TRIPLE=${stdenv.targetPlatform.config}" - ] ++ stdenv.lib.optional enableSharedLibraries [ - "-DLLVM_LINK_LLVM_DYLIB=ON" - ] ++ stdenv.lib.optional (!isDarwin) - "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" - ++ stdenv.lib.optionals ( isDarwin) [ - "-DLLVM_ENABLE_LIBCXX=ON" - "-DCAN_TARGET_i386=false" - ] ++ stdenv.lib.optionals stdenv.hostPlatform.isMusl [ - # Not yet supported - "-DCOMPILER_RT_BUILD_SANITIZERS=OFF" - "-DCOMPILER_RT_BUILD_XRAY=OFF" - - ]; + cmakeFlags = with stdenv.lib; { + CMAKE_BUILD_TYPE = "${if debugVersion then "Debug" else "Release"}"; + LLVM_INSTALL_UTILS = true; # Needed by rustc + LLVM_BUILD_TESTS = true; + LLVM_ENABLE_FFI = true; + LLVM_ENABLE_RTTI = true; + + LLVM_HOST_TRIPLE = stdenv.hostPlatform.config; + LLVM_DEFAULT_TARGET_TRIPLE = stdenv.targetPlatform.config; + TARGET_TRIPLE = stdenv.targetPlatform.config; + } // optionalAttrs enableSharedLibraries { + LLVM_LINK_LLVM_DYLIB = true; + } // optionalAttrs (!stdenv.isDarwin) { + LLVM_BINUTILS_INCDIR = "${libbfd.dev}/include"; + } // optionalAttrs (stdenv.isDarwin) { + LLVM_ENABLE_LIBCXX = true; + CAN_TARGET_i386 = false; + }; postBuild = '' rm -fR $out diff --git a/pkgs/development/compilers/llvm/3.9/llvm.nix b/pkgs/development/compilers/llvm/3.9/llvm.nix index dfeddf2fe65a5..30d37f7c23742 100644 --- a/pkgs/development/compilers/llvm/3.9/llvm.nix +++ b/pkgs/development/compilers/llvm/3.9/llvm.nix @@ -113,33 +113,26 @@ in stdenv.mkDerivation rec { ln -sv $PWD/lib $out ''; - cmakeFlags = with stdenv; [ - "-DCMAKE_BUILD_TYPE=${if debugVersion then "Debug" else "Release"}" - "-DLLVM_INSTALL_UTILS=ON" # Needed by rustc - "-DLLVM_BUILD_TESTS=ON" - "-DLLVM_ENABLE_FFI=ON" - "-DLLVM_ENABLE_RTTI=ON" - "-DCOMPILER_RT_INCLUDE_TESTS=OFF" # FIXME: requires clang source code - - "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" - "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.targetPlatform.config}" - "-DTARGET_TRIPLE=${stdenv.targetPlatform.config}" - ] ++ stdenv.lib.optional enableSharedLibraries [ - "-DLLVM_LINK_LLVM_DYLIB=ON" - ] ++ stdenv.lib.optional (!isDarwin) - "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" - ++ stdenv.lib.optionals (isDarwin) [ - "-DLLVM_ENABLE_LIBCXX=ON" - "-DCAN_TARGET_i386=false" - ] ++ stdenv.lib.optionals (buildPlatform != hostPlatform) [ - "-DCMAKE_CROSSCOMPILING=True" - "-DLLVM_TABLEGEN=${buildPackages.llvmPackages_39.llvm}/bin/llvm-tblgen" - ] ++ stdenv.lib.optionals stdenv.hostPlatform.isMusl [ - # Not yet supported - "-DCOMPILER_RT_BUILD_SANITIZERS=OFF" - "-DCOMPILER_RT_BUILD_XRAY=OFF" - - ]; + cmakeFlags = with stdenv; { + CMAKE_BUILD_TYPE = "${if debugVersion then "Debug" else "Release"}"; + LLVM_INSTALL_UTILS = true; # Needed by rustc + LLVM_BUILD_TESTS = true; + LLVM_ENABLE_FFI = true; + LLVM_ENABLE_RTTI = true; + COMPILER_RT_INCLUDE_TESTS = false; # FIXME: requires clang source code + LLVM_LINK_LLVM_DYLIB = enableSharedLibraries; + LLVM_ENABLE_LIBCXX = isDarwin; + CAN_TARGET_i386 = !isDarwin; + + LLVM_HOST_TRIPLE = stdenv.hostPlatform.config; + LLVM_DEFAULT_TARGET_TRIPLE = stdenv.targetPlatform.config; + TARGET_TRIPLE = stdenv.targetPlatform.config; + } // lib.optionalAttrs (!isDarwin) { + LLVM_BINUTILS_INCDIR = "${libbfd.dev}/include"; + } // lib.optionalAttrs (buildPlatform != hostPlatform) { + CMAKE_CROSSCOMPILING = true; + LLVM_TABLEGEN = "${buildPackages.llvmPackages_39.llvm}/bin/llvm-tblgen"; + }; postBuild = '' rm -fR $out diff --git a/pkgs/development/compilers/llvm/4/clang/default.nix b/pkgs/development/compilers/llvm/4/clang/default.nix index c6538282f23e2..3a20bd4f48eaa 100644 --- a/pkgs/development/compilers/llvm/4/clang/default.nix +++ b/pkgs/development/compilers/llvm/4/clang/default.nix @@ -22,18 +22,19 @@ let buildInputs = [ libxml2 llvm ] ++ stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames; - cmakeFlags = [ - "-DCMAKE_CXX_FLAGS=-std=c++11" - ] ++ stdenv.lib.optionals enableManpages [ - "-DCLANG_INCLUDE_DOCS=ON" - "-DLLVM_ENABLE_SPHINX=ON" - "-DSPHINX_OUTPUT_MAN=ON" - "-DSPHINX_OUTPUT_HTML=OFF" - "-DSPHINX_WARNINGS_AS_ERRORS=OFF" - ] + cmakeFlags = { + CMAKE_CXX_FLAGS = "-std=c++11"; + } // (stdenv.lib.optionalAttrs enableManpages { + CLANG_INCLUDE_DOCS = true; + LLVM_ENABLE_SPHINX = true; + SPHINX_OUTPUT_MAN = true; + SPHINX_OUTPUT_HTML = false; + SPHINX_WARNINGS_AS_ERRORS = false; + }) # Maybe with compiler-rt this won't be needed? - ++ stdenv.lib.optional stdenv.isLinux "-DGCC_INSTALL_PREFIX=${gcc}" - ++ stdenv.lib.optional (stdenv.cc.libc != null) "-DC_INCLUDE_DIRS=${stdenv.cc.libc}/include"; + // (stdenv.lib.optionalAttrs stdenv.isLinux { GCC_INSTALL_PREFIX = "${gcc}"; }) + // (stdenv.lib.optionalAttrs (stdenv.cc.libc != null) { C_INCLUDE_DIRS = "${stdenv.cc.libc}/include"; }) + ; patches = [ ./purity.patch ]; diff --git a/pkgs/development/compilers/llvm/4/libc++/default.nix b/pkgs/development/compilers/llvm/4/libc++/default.nix index 2b543b9d793ab..85e37fe979115 100644 --- a/pkgs/development/compilers/llvm/4/libc++/default.nix +++ b/pkgs/development/compilers/llvm/4/libc++/default.nix @@ -34,11 +34,13 @@ stdenv.mkDerivation rec { buildInputs = [ libcxxabi ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames; - cmakeFlags = [ - "-DLIBCXX_LIBCXXABI_LIB_PATH=${libcxxabi}/lib" - "-DLIBCXX_LIBCPPABI_VERSION=2" - "-DLIBCXX_CXX_ABI=libcxxabi" - ] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl "-DLIBCXX_HAS_MUSL_LIBC=1"; + cmakeFlags = { + LIBCXX_LIBCXXABI_LIB_PATH = "${libcxxabi}/lib"; + LIBCXX_LIBCPPABI_VERSION = "2"; + LIBCXX_CXX_ABI = "libcxxabi"; + } // (stdenv.lib.optionalAttrs stdenv.hostPlatform.isMusl { + LIBCXX_HAS_MUSL_LIBC = "1"; + }); enableParallelBuilding = true; diff --git a/pkgs/development/compilers/llvm/4/libc++abi.nix b/pkgs/development/compilers/llvm/4/libc++abi.nix index 5eeec395b97ae..7f1f917c4becd 100644 --- a/pkgs/development/compilers/llvm/4/libc++abi.nix +++ b/pkgs/development/compilers/llvm/4/libc++abi.nix @@ -11,7 +11,10 @@ stdenv.mkDerivation { postUnpack = '' unpackFile ${libcxx.src} unpackFile ${llvm.src} - export cmakeFlags="-DLLVM_PATH=$PWD/$(ls -d llvm-*) -DLIBCXXABI_LIBCXX_PATH=$PWD/$(ls -d libcxx-*)" + export cmakeFlags=( + "-DLLVM_PATH=$PWD/$(ls -d llvm-*)" + "-DLIBCXXABI_LIBCXX_PATH=$PWD/$(ls -d libcxx-*)" + ) '' + stdenv.lib.optionalString stdenv.isDarwin '' export TRIPLE=x86_64-apple-darwin '' + stdenv.lib.optionalString stdenv.hostPlatform.isMusl '' diff --git a/pkgs/development/compilers/llvm/4/lldb.nix b/pkgs/development/compilers/llvm/4/lldb.nix index 325149fc19be6..35b962d2a5860 100644 --- a/pkgs/development/compilers/llvm/4/lldb.nix +++ b/pkgs/development/compilers/llvm/4/lldb.nix @@ -37,9 +37,9 @@ stdenv.mkDerivation { CXXFLAGS = "-fno-rtti"; hardeningDisable = [ "format" ]; - cmakeFlags = [ - "-DLLDB_CODESIGN_IDENTITY=" # codesigning makes nondeterministic - ]; + cmakeFlags = { + LLDB_CODESIGN_IDENTITY = ""; # codesigning makes nondeterministic + }; # Add missing include to fix error when using std::bind prePatch = '' diff --git a/pkgs/development/compilers/llvm/4/llvm.nix b/pkgs/development/compilers/llvm/4/llvm.nix index 1b186c730c063..f1bb36a63d73d 100644 --- a/pkgs/development/compilers/llvm/4/llvm.nix +++ b/pkgs/development/compilers/llvm/4/llvm.nix @@ -91,33 +91,31 @@ in stdenv.mkDerivation (rec { ln -sv $PWD/lib $out ''; - cmakeFlags = with stdenv; [ - "-DCMAKE_BUILD_TYPE=${if debugVersion then "Debug" else "Release"}" - "-DLLVM_INSTALL_UTILS=ON" # Needed by rustc - "-DLLVM_BUILD_TESTS=ON" - "-DLLVM_ENABLE_FFI=ON" - "-DLLVM_ENABLE_RTTI=ON" - "-DCOMPILER_RT_INCLUDE_TESTS=OFF" # FIXME: requires clang source code - - "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" - "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.targetPlatform.config}" - "-DTARGET_TRIPLE=${stdenv.targetPlatform.config}" - ] - ++ stdenv.lib.optional enableSharedLibraries - "-DLLVM_LINK_LLVM_DYLIB=ON" - ++ stdenv.lib.optionals enableManpages [ - "-DLLVM_BUILD_DOCS=ON" - "-DLLVM_ENABLE_SPHINX=ON" - "-DSPHINX_OUTPUT_MAN=ON" - "-DSPHINX_OUTPUT_HTML=OFF" - "-DSPHINX_WARNINGS_AS_ERRORS=OFF" - ] - ++ stdenv.lib.optional (!isDarwin) - "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" - ++ stdenv.lib.optionals (isDarwin) [ - "-DLLVM_ENABLE_LIBCXX=ON" - "-DCAN_TARGET_i386=false" - ]; + cmakeFlags = with stdenv; { + CMAKE_BUILD_TYPE = "${if debugVersion then "Debug" else "Release"}"; + LLVM_INSTALL_UTILS = true; # Needed by rustc + LLVM_BUILD_TESTS = true; + LLVM_ENABLE_FFI = true; + LLVM_ENABLE_RTTI = true; + COMPILER_RT_INCLUDE_TESTS = true; # FIXME: requires clang source code + + LLVM_HOST_TRIPLE = stdenv.hostPlatform.config; + LLVM_DEFAULT_TARGET_TRIPLE = stdenv.targetPlatform.config; + TARGET_TRIPLE = stdenv.targetPlatform.config; + } // (stdenv.lib.optionalAttrs enableSharedLibraries { + LLVM_LINK_LLVM_DYLIB = true; + }) // (stdenv.lib.optionalAttrs enableManpages { + LLVM_BUILD_DOCS = true; + LLVM_ENABLE_SPHINX = true; + SPHINX_OUTPUT_MAN = true; + SPHINX_OUTPUT_HTML = false; + SPHINX_WARNINGS_AS_ERRORS = false; + }) // (stdenv.lib.optionalAttrs (!isDarwin) { + LLVM_BINUTILS_INCDIR = "${libbfd.dev}/include"; + }) // (stdenv.lib.optionalAttrs isDarwin { + LLVM_ENABLE_LIBCXX = true; + CAN_TARGET_i386 = false; + }); postBuild = '' rm -fR $out diff --git a/pkgs/development/compilers/llvm/5/llvm.nix b/pkgs/development/compilers/llvm/5/llvm.nix index 3abba0ed340fd..1d167294a4d1d 100644 --- a/pkgs/development/compilers/llvm/5/llvm.nix +++ b/pkgs/development/compilers/llvm/5/llvm.nix @@ -71,32 +71,30 @@ in stdenv.mkDerivation (rec { ln -sv $PWD/lib $out ''; - cmakeFlags = with stdenv; [ - "-DCMAKE_BUILD_TYPE=${if debugVersion then "Debug" else "Release"}" - "-DLLVM_INSTALL_UTILS=ON" # Needed by rustc - "-DLLVM_BUILD_TESTS=ON" - "-DLLVM_ENABLE_FFI=ON" - "-DLLVM_ENABLE_RTTI=ON" - - "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" - "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}" - "-DTARGET_TRIPLE=${stdenv.hostPlatform.config}" - ] - ++ stdenv.lib.optional enableSharedLibraries - "-DLLVM_LINK_LLVM_DYLIB=ON" - ++ stdenv.lib.optionals enableManpages [ - "-DLLVM_BUILD_DOCS=ON" - "-DLLVM_ENABLE_SPHINX=ON" - "-DSPHINX_OUTPUT_MAN=ON" - "-DSPHINX_OUTPUT_HTML=OFF" - "-DSPHINX_WARNINGS_AS_ERRORS=OFF" - ] - ++ stdenv.lib.optional (!isDarwin) - "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" - ++ stdenv.lib.optionals (isDarwin) [ - "-DLLVM_ENABLE_LIBCXX=ON" - "-DCAN_TARGET_i386=false" - ]; + cmakeFlags = with stdenv; { + CMAKE_BUILD_TYPE = if debugVersion then "Debug" else "Release"; + LLVM_INSTALL_UTILS = true; # Needed by rustc + LLVM_BUILD_TESTS = true; + LLVM_ENABLE_FFI = true; + LLVM_ENABLE_RTTI = true; + + LLVM_HOST_TRIPLE = stdenv.hostPlatform.config; + LLVM_DEFAULT_TARGET_TRIPLE = stdenv.hostPlatform.config; + TARGET_TRIPLE = stdenv.hostPlatform.config; + } // (stdenv.lib.optionalAttrs enableSharedLibraries { + LLVM_LINK_LLVM_DYLIB = true; + }) // (stdenv.lib.optionalAttrs enableManpages { + LLVM_BUILD_DOCS = true; + LLVM_ENABLE_SPHINX = true; + SPHINX_OUTPUT_MAN = true; + SPHINX_OUTPUT_HTML = false; + SPHINX_WARNINGS_AS_ERRORS = false; + }) // (stdenv.lib.optionalAttrs (!isDarwin) { + LLVM_BINUTILS_INCDIR = "${libbfd.dev}/include"; + }) // (stdenv.lib.optionalAttrs (isDarwin) { + LLVM_ENABLE_LIBCXX = true; + CAN_TARGET_i386 = false; + }); postBuild = '' rm -fR $out diff --git a/pkgs/development/compilers/llvm/6/llvm.nix b/pkgs/development/compilers/llvm/6/llvm.nix index 787a48416ab70..46872d9f12293 100644 --- a/pkgs/development/compilers/llvm/6/llvm.nix +++ b/pkgs/development/compilers/llvm/6/llvm.nix @@ -67,37 +67,33 @@ in stdenv.mkDerivation (rec { ln -sv $PWD/lib $out ''; - cmakeFlags = with stdenv; [ - "-DCMAKE_BUILD_TYPE=${if debugVersion then "Debug" else "Release"}" - "-DLLVM_INSTALL_UTILS=ON" # Needed by rustc - "-DLLVM_BUILD_TESTS=ON" - "-DLLVM_ENABLE_FFI=ON" - "-DLLVM_ENABLE_RTTI=ON" - - "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" - "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}" - "-DTARGET_TRIPLE=${stdenv.hostPlatform.config}" - - "-DLLVM_ENABLE_DUMP=ON" - ] - ++ stdenv.lib.optional enableSharedLibraries - "-DLLVM_LINK_LLVM_DYLIB=ON" - ++ stdenv.lib.optionals enableManpages [ - "-DLLVM_BUILD_DOCS=ON" - "-DLLVM_ENABLE_SPHINX=ON" - "-DSPHINX_OUTPUT_MAN=ON" - "-DSPHINX_OUTPUT_HTML=OFF" - "-DSPHINX_WARNINGS_AS_ERRORS=OFF" - ] - ++ stdenv.lib.optional (!isDarwin) - "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" - ++ stdenv.lib.optionals (isDarwin) [ - "-DLLVM_ENABLE_LIBCXX=ON" - "-DCAN_TARGET_i386=false" - ] - ++ stdenv.lib.optional enableWasm - "-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly" - ; + cmakeFlags = { + CMAKE_BUILD_TYPE = "${if debugVersion then "Debug" else "Release"}"; + LLVM_INSTALL_UTILS = true; # Needed by rustc + LLVM_BUILD_TESTS = true; + LLVM_ENABLE_FFI = true; + LLVM_ENABLE_RTTI = true; + LLVM_LINK_LLVM_DYLIB = enableSharedLibraries; + + LLVM_HOST_TRIPLE = "${stdenv.hostPlatform.config}"; + LLVM_DEFAULT_TARGET_TRIPLE = "${stdenv.hostPlatform.config}"; + TARGET_TRIPLE = "${stdenv.hostPlatform.config}"; + + LLVM_ENABLE_DUMP = true; + } // (stdenv.lib.optionalAttrs enableManpages { + LLVM_BUILD_DOCS = true; + LLVM_ENABLE_SPHINX = true; + SPHINX_OUTPUT_MAN = true; + SPHINX_OUTPUT_HTML = false; + SPHINX_WARNINGS_AS_ERRORS = false; + }) // (stdenv.lib.optionalAttrs (!stdenv.isDarwin) { + LLVM_BINUTILS_INCDIR = "${libbfd.dev}/include"; + }) // (stdenv.lib.optionalAttrs (stdenv.isDarwin) { + LLVM_ENABLE_LIBCXX = true; + CAN_TARGET_i386 = false; + }) // (stdenv.lib.optionalAttrs enableWasm { + LLVM_EXPERIMENTAL_TARGETS_TO_BUILD = "WebAssembly"; + }); postBuild = '' rm -fR $out diff --git a/pkgs/development/compilers/shaderc/default.nix b/pkgs/development/compilers/shaderc/default.nix index 1176d348d9d31..774521c5bcc63 100644 --- a/pkgs/development/compilers/shaderc/default.nix +++ b/pkgs/development/compilers/shaderc/default.nix @@ -43,7 +43,9 @@ in stdenv.mkDerivation rec { buildInputs = [ cmake python ]; enableParallelBuilding = true; - cmakeFlags = [ "-DSHADERC_SKIP_TESTS=ON" ]; + cmakeFlags = { + SHADERC_SKIP_TESTS = true; + }; meta = with stdenv.lib; { inherit (src.meta) homepage; diff --git a/pkgs/development/interpreters/supercollider/default.nix b/pkgs/development/interpreters/supercollider/default.nix index 2737fd6fae043..26a09211f87ea 100644 --- a/pkgs/development/interpreters/supercollider/default.nix +++ b/pkgs/development/interpreters/supercollider/default.nix @@ -19,10 +19,10 @@ stdenv.mkDerivation rec { hardeningDisable = [ "stackprotector" ]; - cmakeFlags = '' - -DSC_WII=OFF - -DSC_EL=${if useSCEL then "ON" else "OFF"} - ''; + cmakeFlags = { + SC_EL = useSCEL; + SC_WII = false; + }; nativeBuildInputs = [ cmake pkgconfig qttools ]; diff --git a/pkgs/development/libraries/allegro/5.nix b/pkgs/development/libraries/allegro/5.nix index 5e82a1a3c6be8..1ac13eed2b5fe 100644 --- a/pkgs/development/libraries/allegro/5.nix +++ b/pkgs/development/libraries/allegro/5.nix @@ -32,7 +32,7 @@ stdenv.mkDerivation rec { sed -e 's@/XInput2.h@/XI2.h@g' -i CMakeLists.txt "src/"*.c ''; - cmakeFlags = [ "-DCMAKE_SKIP_RPATH=ON" ]; + cmakeFlags = { CMAKE_SKIP_RPATH = true; }; meta = with stdenv.lib; { description = "A game programming library"; diff --git a/pkgs/development/libraries/allegro/default.nix b/pkgs/development/libraries/allegro/default.nix index 21d9ce23d319b..badc2ce1da662 100644 --- a/pkgs/development/libraries/allegro/default.nix +++ b/pkgs/development/libraries/allegro/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { hardeningDisable = [ "format" ]; - cmakeFlags = [ "-DCMAKE_SKIP_RPATH=ON" ]; + cmakeFlags = { CMAKE_SKIP_RPATH = true; }; meta = with stdenv.lib; { description = "A game programming library"; diff --git a/pkgs/development/libraries/aws-sdk-cpp/default.nix b/pkgs/development/libraries/aws-sdk-cpp/default.nix index 9f41bf1af47ce..6fe66e87fccbf 100644 --- a/pkgs/development/libraries/aws-sdk-cpp/default.nix +++ b/pkgs/development/libraries/aws-sdk-cpp/default.nix @@ -36,11 +36,14 @@ in stdenv.mkDerivation rec { (builtins.elem "*" apis))) (with darwin.apple_sdk.frameworks; [ CoreAudio AudioToolbox ]); - cmakeFlags = - lib.optional (!customMemoryManagement) "-DCUSTOM_MEMORY_MANAGEMENT=0" - ++ lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) "-DENABLE_TESTING=OFF" - ++ lib.optional (apis != ["*"]) - "-DBUILD_ONLY=${lib.concatStringsSep ";" apis}"; + cmakeFlags = { + # TODO(aneeshusa): upstream seems to use this as a string variable instead of a boolean? + CUSTOM_MEMORY_MANAGEMENT = if customMemoryManagement then "1" else "0"; + } // lib.optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) { + ENABLE_TESTING = false; + } // lib.optionalAttrs (apis != [ "*" ]) { + BUILD_ONLY = lib.concatStringsSep ";" apis; + }; enableParallelBuilding = true; diff --git a/pkgs/development/libraries/beignet/default.nix b/pkgs/development/libraries/beignet/default.nix index 02c67d7dbf8b1..ed97964065b0e 100644 --- a/pkgs/development/libraries/beignet/default.nix +++ b/pkgs/development/libraries/beignet/default.nix @@ -34,7 +34,7 @@ stdenv.mkDerivation rec { patchShebangs src/git_sha1.sh ''; - cmakeFlags = [ "-DCLANG_LIBRARY_DIR=${clang-unwrapped}/lib" ]; + cmakeFlags = { CLANG_LIBRARY_DIR = "${clang-unwrapped}/lib"; }; buildInputs = [ llvm diff --git a/pkgs/development/libraries/box2d/default.nix b/pkgs/development/libraries/box2d/default.nix index e65980be320eb..2e87265495f6a 100644 --- a/pkgs/development/libraries/box2d/default.nix +++ b/pkgs/development/libraries/box2d/default.nix @@ -17,7 +17,10 @@ stdenv.mkDerivation rec { unzip cmake libGLU_combined freeglut libX11 xproto inputproto libXi ]; - cmakeFlags = [ "-DBOX2D_INSTALL=ON" "-DBOX2D_BUILD_SHARED=ON" ]; + cmakeFlags = { + BOX2D_BUILD_SHARED = true; + BOX2D_INSTALL = true; + }; prePatch = '' substituteInPlace Box2D/Common/b2Settings.h \ diff --git a/pkgs/development/libraries/bullet/default.nix b/pkgs/development/libraries/bullet/default.nix index 4d94faa9566aa..00da792bc55a6 100644 --- a/pkgs/development/libraries/bullet/default.nix +++ b/pkgs/development/libraries/bullet/default.nix @@ -23,18 +23,18 @@ stdenv.mkDerivation rec { sed -i 's/FIND_LIBRARY(COCOA_LIBRARY Cocoa)//' CMakeLists.txt ''; - cmakeFlags = [ - "-DBUILD_SHARED_LIBS=ON" - "-DBUILD_CPU_DEMOS=OFF" - "-DINSTALL_EXTRA_LIBS=ON" - ] ++ stdenv.lib.optionals stdenv.isDarwin [ - "-DMACOSX_DEPLOYMENT_TARGET=\"10.9\"" - "-DOPENGL_FOUND=true" - "-DOPENGL_LIBRARIES=${darwin.apple_sdk.frameworks.OpenGL}/Library/Frameworks/OpenGL.framework" - "-DOPENGL_INCLUDE_DIR=${darwin.apple_sdk.frameworks.OpenGL}/Library/Frameworks/OpenGL.framework" - "-DOPENGL_gl_LIBRARY=${darwin.apple_sdk.frameworks.OpenGL}/Library/Frameworks/OpenGL.framework" - "-DCOCOA_LIBRARY=${darwin.apple_sdk.frameworks.Cocoa}/Library/Frameworks/Cocoa.framework" - ]; + cmakeFlags = { + BUILD_CPU_DEMOS = false; + BUILD_SHARED_LIBS = true; + INSTALL_EXTRA_LIBS = true; + } // (stdenv.lib.optionalAttrs stdenv.isDarwin { + COCOA_LIBRARY = "${darwin.apple_sdk.frameworks.Cocoa}/Library/Frameworks/Cocoa.framework"; + MACOSX_DEPLOYMENT_TARGET = "10.9"; + OPENGL_FOUND = true; + OPENGL_gl_LIBRARY = "${darwin.apple_sdk.frameworks.OpenGL}/Library/Frameworks/OpenGL.framework"; + OPENGL_INCLUDE_DIR = "${darwin.apple_sdk.frameworks.OpenGL}/Library/Frameworks/OpenGL.framework"; + OPENGL_LIBRARIES = "${darwin.apple_sdk.frameworks.OpenGL}/Library/Frameworks/OpenGL.framework"; + }); enableParallelBuilding = true; diff --git a/pkgs/development/libraries/chromaprint/default.nix b/pkgs/development/libraries/chromaprint/default.nix index 4e7488f7eb375..e3a715ed5d2f5 100644 --- a/pkgs/development/libraries/chromaprint/default.nix +++ b/pkgs/development/libraries/chromaprint/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { buildInputs = [ boost ffmpeg ]; - cmakeFlags = [ "-DBUILD_EXAMPLES=ON" ]; + cmakeFlags = { BUILD_EXAMPLES = true; }; meta = with stdenv.lib; { homepage = https://acoustid.org/chromaprint; diff --git a/pkgs/development/libraries/clucene-core/2.x.nix b/pkgs/development/libraries/clucene-core/2.x.nix index 0ba9e1545fbf0..4618afb9a9a16 100644 --- a/pkgs/development/libraries/clucene-core/2.x.nix +++ b/pkgs/development/libraries/clucene-core/2.x.nix @@ -12,7 +12,10 @@ stdenv.mkDerivation rec { buildInputs = [ boost zlib ]; - cmakeFlags = [ "-DBUILD_CONTRIBS=ON" "-DBUILD_CONTRIBS_LIB=ON" ]; + cmakeFlags = { + BUILD_CONTRIBS = true; + BUILD_CONTRIBS_LIB = true; + }; patches = # From debian [ ./Fix-pkgconfig-file-by-adding-clucene-shared-library.patch diff --git a/pkgs/development/libraries/cpp-netlib/default.nix b/pkgs/development/libraries/cpp-netlib/default.nix index badfc630a47ef..8407b6f373938 100644 --- a/pkgs/development/libraries/cpp-netlib/default.nix +++ b/pkgs/development/libraries/cpp-netlib/default.nix @@ -14,9 +14,9 @@ stdenv.mkDerivation rec { # This can be removed when updating to 0.13, see https://github.com/cpp-netlib/cpp-netlib/issues/629 propagatedBuildInputs = [ asio ]; - cmakeFlags = [ - "-DCPP-NETLIB_BUILD_SHARED_LIBS=ON" - ]; + cmakeFlags = { + CPP-NETLIB_BUILD_SHARED_LIBS = true; + }; enableParallelBuilding = true; diff --git a/pkgs/development/libraries/cppcms/default.nix b/pkgs/development/libraries/cppcms/default.nix index a2493e55fb0b5..23054c9f3b84a 100644 --- a/pkgs/development/libraries/cppcms/default.nix +++ b/pkgs/development/libraries/cppcms/default.nix @@ -13,9 +13,9 @@ stdenv.mkDerivation rec { buildInputs = [ cmake pcre zlib python openssl ]; - cmakeFlags = [ - "--no-warn-unused-cli" - ]; + cmakeFlags = { + extraFlags = [ "--no-warn-unused-cli" ]; + }; meta = with stdenv.lib; { homepage = http://cppcms.com; diff --git a/pkgs/development/libraries/docopt_cpp/default.nix b/pkgs/development/libraries/docopt_cpp/default.nix index 83466b693f595..0b5b5eed8569c 100644 --- a/pkgs/development/libraries/docopt_cpp/default.nix +++ b/pkgs/development/libraries/docopt_cpp/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake python ]; - cmakeFlags = ["-DWITH_TESTS=ON"]; + cmakeFlags = { WITH_TESTS = true; }; doCheck = true; diff --git a/pkgs/development/libraries/double-conversion/default.nix b/pkgs/development/libraries/double-conversion/default.nix index 7a33559cbc795..5fe69571640e2 100644 --- a/pkgs/development/libraries/double-conversion/default.nix +++ b/pkgs/development/libraries/double-conversion/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake ]; - cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ]; + cmakeFlags = { BUILD_SHARED_LIBS = true; }; # Case sensitivity issue preConfigure = lib.optionalString stdenv.isDarwin '' diff --git a/pkgs/development/libraries/fcppt/default.nix b/pkgs/development/libraries/fcppt/default.nix index 660cdfa6414b1..9f3f6d4e0767c 100644 --- a/pkgs/development/libraries/fcppt/default.nix +++ b/pkgs/development/libraries/fcppt/default.nix @@ -14,7 +14,10 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake ]; buildInputs = [ boost ]; - cmakeFlags = [ "-DENABLE_EXAMPLES=false" "-DENABLE_TEST=false" ]; + cmakeFlags = { + ENABLE_EXAMPLES = false; + ENABLE_TEST = false; + }; enableParallelBuilding = true; diff --git a/pkgs/development/libraries/gdcm/default.nix b/pkgs/development/libraries/gdcm/default.nix index a4eab462046c6..fb94fc8111035 100644 --- a/pkgs/development/libraries/gdcm/default.nix +++ b/pkgs/development/libraries/gdcm/default.nix @@ -16,11 +16,11 @@ stdenv.mkDerivation rec { cd ../build ''; - cmakeFlags = '' - -DGDCM_BUILD_APPLICATIONS=ON - -DGDCM_BUILD_SHARED_LIBS=ON - -DGDCM_USE_VTK=ON - ''; + cmakeFlags = { + GDCM_BUILD_APPLICATIONS = true; + GDCM_BUILD_SHARED_LIBS = true; + GDCM_USE_VTK = true; + }; enableParallelBuilding = true; buildInputs = [ cmake vtk ]; diff --git a/pkgs/development/libraries/git2/default.nix b/pkgs/development/libraries/git2/default.nix index 2da1a9ba2a648..562a75de4683e 100644 --- a/pkgs/development/libraries/git2/default.nix +++ b/pkgs/development/libraries/git2/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation (rec { sha256 = "0zrrmfkfhd2xb4879z5khjb6xsdklrm01f1lscrs2ks68v25fk78"; }; - cmakeFlags = [ "-DTHREADSAFE=ON" ]; + cmakeFlags = { THREADSAFE = true; }; nativeBuildInputs = [ cmake python pkgconfig ]; diff --git a/pkgs/development/libraries/glfw/3.x.nix b/pkgs/development/libraries/glfw/3.x.nix index 8d4d4d10038a2..290b24860eb74 100644 --- a/pkgs/development/libraries/glfw/3.x.nix +++ b/pkgs/development/libraries/glfw/3.x.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { libX11 libXrandr libXinerama libXcursor ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ Cocoa Kernel fixDarwinDylibNames ]); - cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ]; + cmakeFlags = { BUILD_SHARED_LIBS = true; }; meta = with stdenv.lib; { description = "Multi-platform library for creating OpenGL contexts and managing input, including keyboard, mouse, joystick and time"; diff --git a/pkgs/development/libraries/google-gflags/default.nix b/pkgs/development/libraries/google-gflags/default.nix index dbcb0342156b8..61c336ec4cbf0 100644 --- a/pkgs/development/libraries/google-gflags/default.nix +++ b/pkgs/development/libraries/google-gflags/default.nix @@ -16,11 +16,11 @@ stdenv.mkDerivation rec { # This isn't used by the build and breaks the CMake build on case-insensitive filesystems (e.g., on Darwin) preConfigure = "rm BUILD"; - cmakeFlags = [ - "-DBUILD_SHARED_LIBS=ON" - "-DBUILD_STATIC_LIBS=ON" - "-DBUILD_TESTING=${if doCheck then "ON" else "OFF"}" - ]; + cmakeFlags = { + BUILD_SHARED_LIBS = true; + BUILD_STATIC_LIBS = true; + BUILD_TESTING = doCheck; + }; doCheck = false; diff --git a/pkgs/development/libraries/gstreamer/legacy/qt-gstreamer/default.nix b/pkgs/development/libraries/gstreamer/legacy/qt-gstreamer/default.nix index 9797f21c16852..5b23276960663 100644 --- a/pkgs/development/libraries/gstreamer/legacy/qt-gstreamer/default.nix +++ b/pkgs/development/libraries/gstreamer/legacy/qt-gstreamer/default.nix @@ -14,7 +14,10 @@ stdenv.mkDerivation rec { propagatedBuildInputs = [ boost155 ]; nativeBuildInputs = [ cmake automoc4 flex bison pkgconfig ]; - cmakeFlags = "-DUSE_QT_PLUGIN_DIR=OFF -DUSE_GST_PLUGIN_DIR=OFF"; + cmakeFlags = { + USE_GST_PLUGIN_DIR = false; + USE_QT_PLUGIN_DIR = false; + }; patches = [ ./boost1.48.patch ]; } diff --git a/pkgs/development/libraries/gstreamer/qt-gstreamer/default.nix b/pkgs/development/libraries/gstreamer/qt-gstreamer/default.nix index a9e7f9fcff3e9..9e3ed1971c2af 100644 --- a/pkgs/development/libraries/gstreamer/qt-gstreamer/default.nix +++ b/pkgs/development/libraries/gstreamer/qt-gstreamer/default.nix @@ -23,7 +23,10 @@ stdenv.mkDerivation rec { propagatedBuildInputs = [ boost ]; nativeBuildInputs = [ cmake automoc4 flex bison pkgconfig ]; - cmakeFlags = "-DUSE_QT_PLUGIN_DIR=OFF -DUSE_GST_PLUGIN_DIR=OFF"; + cmakeFlags = { + USE_GST_PLUGIN_DIR = false; + USE_QT_PLUGIN_DIR = false; + }; meta = { platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/development/libraries/itk/default.nix b/pkgs/development/libraries/itk/default.nix index 5f6a6f51a5220..db844885b6d0e 100644 --- a/pkgs/development/libraries/itk/default.nix +++ b/pkgs/development/libraries/itk/default.nix @@ -8,16 +8,16 @@ stdenv.mkDerivation rec { sha256 = "09d1gmqx3wbdfgwf7r91r12m2vknviv0i8wxwh2q9w1vrpizrczy"; }; - cmakeFlags = [ - "-DBUILD_TESTING=OFF" - "-DBUILD_EXAMPLES=OFF" - "-DBUILD_SHARED_LIBS=ON" - "-DModule_ITKMINC=ON" - "-DModule_ITKIOMINC=ON" - "-DModule_ITKIOTransformMINC=ON" - "-DModule_ITKVtkGlue=ON" - "-DModule_ITKReview=ON" - ]; + cmakeFlags = { + BUILD_EXAMPLES = false; + BUILD_SHARED_LIBS = true; + BUILD_TESTING = false; + Module_ITKIOMINC = true; + Module_ITKIOTransformMINC = true; + Module_ITKMINC = true; + Module_ITKReview = true; + Module_ITKVtkGlue = true; + }; enableParallelBuilding = true; diff --git a/pkgs/development/libraries/jsoncpp/default.nix b/pkgs/development/libraries/jsoncpp/default.nix index 1c62d79ed3287..d95c452f4ba92 100644 --- a/pkgs/development/libraries/jsoncpp/default.nix +++ b/pkgs/development/libraries/jsoncpp/default.nix @@ -33,10 +33,10 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake python ]; - cmakeFlags = [ - "-DBUILD_SHARED_LIBS=ON" - "-DBUILD_STATIC_LIBS=OFF" - ]; + cmakeFlags = { + BUILD_SHARED_LIBS = true; + BUILD_STATIC_LIBS = false; + }; meta = with stdenv.lib; { inherit version; diff --git a/pkgs/development/libraries/kinetic-cpp-client/default.nix b/pkgs/development/libraries/kinetic-cpp-client/default.nix index 445f65b9202ec..7c1ca2a58a1e4 100644 --- a/pkgs/development/libraries/kinetic-cpp-client/default.nix +++ b/pkgs/development/libraries/kinetic-cpp-client/default.nix @@ -30,9 +30,9 @@ stdenv.mkDerivation rec { # The headers and library include from these and there is no provided pc file propagatedBuildInputs = [ protobuf openssl ]; - cmakeFlags = [ - "-DBUILD_SHARED_LIBS=true" - ]; + cmakeFlags = { + BUILD_SHARED_LIBS = true; + }; preCheck = '' # The checks cannot find libkinetic_client.so otherwise diff --git a/pkgs/development/libraries/libbladeRF/default.nix b/pkgs/development/libraries/libbladeRF/default.nix index 04bd3f3d71ed3..226ab31d57cb5 100644 --- a/pkgs/development/libraries/libbladeRF/default.nix +++ b/pkgs/development/libraries/libbladeRF/default.nix @@ -26,12 +26,12 @@ stdenv.mkDerivation rec { sed -i 's/$(hostname)/hostname/' host/utilities/bladeRF-cli/src/cmd/doc/generate.bash ''; - cmakeFlags = [ - "-DBUILD_DOCUMENTATION=ON" - ] ++ lib.optionals stdenv.isLinux [ - "-DUDEV_RULES_PATH=etc/udev/rules.d" - "-DINSTALL_UDEV_RULES=ON" - ]; + cmakeFlags = { + BUILD_DOCUMENTATION = true; + } // (stdenv.lib.optionalAttrs stdenv.isLinux { + INSTALL_UDEV_RULES = true; + UDEV_RULES_PATH = "etc/udev/rules.d"; + }); hardeningDisable = [ "fortify" ]; diff --git a/pkgs/development/libraries/libcec/default.nix b/pkgs/development/libraries/libcec/default.nix index e60f5e316bd07..360693ef8c0e4 100644 --- a/pkgs/development/libraries/libcec/default.nix +++ b/pkgs/development/libraries/libcec/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation { nativeBuildInputs = [ pkgconfig ]; buildInputs = [ cmake udev libcec_platform ]; - cmakeFlags = [ "-DBUILD_SHARED_LIBS=1" ]; + cmakeFlags = { BUILD_SHARED_LIBS = true; }; # Fix dlopen path patchPhase = '' diff --git a/pkgs/development/libraries/libcouchbase/default.nix b/pkgs/development/libraries/libcouchbase/default.nix index 347e3218c1dc6..52795c84c57eb 100644 --- a/pkgs/development/libraries/libcouchbase/default.nix +++ b/pkgs/development/libraries/libcouchbase/default.nix @@ -11,7 +11,7 @@ stdenv.mkDerivation rec { sha256 = "1ca3jp1nr5dk2w35wwyhsf96pblbw6n6n7a3ja264ivc9nhpkz4z"; }; - cmakeFlags = "-DLCB_NO_MOCK=ON"; + cmakeFlags = { LCB_NO_MOCK = true; }; nativeBuildInputs = [ cmake pkgconfig ]; buildInputs = [ libevent openssl ]; diff --git a/pkgs/development/libraries/libdbusmenu-qt/default.nix b/pkgs/development/libraries/libdbusmenu-qt/default.nix index 1342ee6773f71..734ebc72f5f41 100644 --- a/pkgs/development/libraries/libdbusmenu-qt/default.nix +++ b/pkgs/development/libraries/libdbusmenu-qt/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation { buildInputs = [ qt4 ]; nativeBuildInputs = [ cmake ]; - cmakeFlags = "-DWITH_DOC=OFF"; + cmakeFlags = { WITH_DOC = false; }; meta = with stdenv.lib; { description = "Provides a Qt implementation of the DBusMenu spec"; diff --git a/pkgs/development/libraries/libdbusmenu-qt/qt-5.5.nix b/pkgs/development/libraries/libdbusmenu-qt/qt-5.5.nix index 9c25757efb032..9e263e2efdca8 100644 --- a/pkgs/development/libraries/libdbusmenu-qt/qt-5.5.nix +++ b/pkgs/development/libraries/libdbusmenu-qt/qt-5.5.nix @@ -12,7 +12,7 @@ stdenv.mkDerivation { buildInputs = [ qtbase ]; nativeBuildInputs = [ cmake ]; - cmakeFlags = "-DWITH_DOC=OFF"; + cmakeFlags = { WITH_DOC = false; }; meta = with stdenv.lib; { homepage = https://launchpad.net/libdbusmenu-qt; diff --git a/pkgs/development/libraries/libdynd/default.nix b/pkgs/development/libraries/libdynd/default.nix index 93ece69cf0564..cb2582679ab74 100644 --- a/pkgs/development/libraries/libdynd/default.nix +++ b/pkgs/development/libraries/libdynd/default.nix @@ -11,9 +11,9 @@ stdenv.mkDerivation { sha256 = "0fkd5rawqni1cq51fmr76iw7ll4fmbahfwv4rglnsabbkylf73pr"; }; - cmakeFlags = [ - "-DDYND_BUILD_BENCHMARKS=OFF" - ]; + cmakeFlags = { + DYND_BUILD_BENCHMARKS = false; + }; # added to fix build with gcc7 NIX_CFLAGS_COMPILE = [ diff --git a/pkgs/development/libraries/libminc/default.nix b/pkgs/development/libraries/libminc/default.nix index ddab3439f02a0..a7faed7ff3414 100644 --- a/pkgs/development/libraries/libminc/default.nix +++ b/pkgs/development/libraries/libminc/default.nix @@ -17,11 +17,12 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake ]; buildInputs = [ zlib netcdf nifticlib hdf5 ]; - cmakeFlags = [ "-DBUILD_TESTING=${if doCheck then "TRUE" else "FALSE"}" - "-DLIBMINC_MINC1_SUPPORT=TRUE" - "-DLIBMINC_BUILD_SHARED_LIBS=TRUE" - "-DLIBMINC_USE_SYSTEM_NIFTI=TRUE" ]; - + cmakeFlags = { + BUILD_TESTING = doCheck; + LIBMINC_MINC1_SUPPORT = true; + LIBMINC_BUILD_SHARED_LIBS = true; + LIBMINC_USE_SYSTEM_NIFTI = true; + }; checkPhase = '' export LD_LIBRARY_PATH="$(pwd)" # see #22060 diff --git a/pkgs/development/libraries/libmsgpack/generic.nix b/pkgs/development/libraries/libmsgpack/generic.nix index 947960d235924..39ccb32c9b3d3 100644 --- a/pkgs/development/libraries/libmsgpack/generic.nix +++ b/pkgs/development/libraries/libmsgpack/generic.nix @@ -13,12 +13,12 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - cmakeFlags = [] - ++ stdenv.lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) - "-DMSGPACK_BUILD_EXAMPLES=OFF" - ++ stdenv.lib.optional (hostPlatform.libc == "msvcrt") - "-DCMAKE_SYSTEM_NAME=Windows" - ; + cmakeFlags = {} + // stdenv.lib.optionalAttrs (stdenv.hostPlatform != stdenv.buildPlatform) { + MSGPACK_BUILD_EXAMPLES = false; + } // stdenv.lib.optionalAttrs (hostPlatform.libc == "msvcrt") { + CMAKE_SYSTEM_NAME = "Windows"; + }; meta = with stdenv.lib; { description = "MessagePack implementation for C and C++"; diff --git a/pkgs/development/libraries/libmysqlconnectorcpp/default.nix b/pkgs/development/libraries/libmysqlconnectorcpp/default.nix index 2b7258031c337..878e996de75ac 100644 --- a/pkgs/development/libraries/libmysqlconnectorcpp/default.nix +++ b/pkgs/development/libraries/libmysqlconnectorcpp/default.nix @@ -11,7 +11,7 @@ stdenv.mkDerivation rec { buildInputs = [ cmake boost mysql ]; - cmakeFlags = [ "-DMYSQL_LIB_DIR=${mysql}/lib" ]; + cmakeFlags = { MYSQL_LIB_DIR = "${mysql}/lib"; }; meta = { homepage = https://dev.mysql.com/downloads/connector/cpp/; diff --git a/pkgs/development/libraries/libsolv/default.nix b/pkgs/development/libraries/libsolv/default.nix index 9db56aa3a9ec2..c76bad3323f43 100644 --- a/pkgs/development/libraries/libsolv/default.nix +++ b/pkgs/development/libraries/libsolv/default.nix @@ -11,13 +11,13 @@ stdenv.mkDerivation rec { sha256 = "1knr48dilg8kscbmpjvd7m2krvgcdq0f9vpbqcgmxxa969mzrcy7"; }; - cmakeFlags = [ - "-DENABLE_COMPLEX_DEPS=true" - "-DENABLE_RPMMD=true" - "-DENABLE_RPMDB=true" - "-DENABLE_PUBKEY=true" - "-DENABLE_RPMDB_BYRPMHEADER=true" - ]; + cmakeFlags = { + ENABLE_COMPLEX_DEPS = true; + ENABLE_RPMMD = true; + ENABLE_RPMDB = true; + ENABLE_PUBKEY = true; + ENABLE_RPMDB_BYRPMHEADER = true; + }; nativeBuildInputs = [ cmake ninja ]; buildInputs = [ zlib expat rpm db ]; diff --git a/pkgs/development/libraries/libtcod/default.nix b/pkgs/development/libraries/libtcod/default.nix index 4e859c282276c..2e9273fac9ca2 100644 --- a/pkgs/development/libraries/libtcod/default.nix +++ b/pkgs/development/libraries/libtcod/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { echo 'INSTALL(DIRECTORY include DESTINATION .)' >> CMakeLists.txt ''; - cmakeFlags="-DLIBTCOD_SAMPLES=OFF"; + cmakeFlags = { LIBTCOD_SAMPLES = false; }; buildInputs = [ cmake SDL libGLU_combined upx zlib ]; diff --git a/pkgs/development/libraries/libtoxcore/default.nix b/pkgs/development/libraries/libtoxcore/default.nix index a005c8b374658..6eb7eae4c16e1 100644 --- a/pkgs/development/libraries/libtoxcore/default.nix +++ b/pkgs/development/libraries/libtoxcore/default.nix @@ -13,11 +13,11 @@ let inherit sha256; }; - cmakeFlags = [ - "-DBUILD_NTOX=ON" - "-DDHT_BOOTSTRAP=ON" - "-DBOOTSTRAP_DAEMON=ON" - ]; + cmakeFlags = { + BOOTSTRAP_DAEMON = true; + BUILD_NTOX = true; + DHT_BOOTSTRAP = true; + }; buildInputs = [ libsodium libmsgpack ncurses libconfig diff --git a/pkgs/development/libraries/lucene++/default.nix b/pkgs/development/libraries/lucene++/default.nix index c45fa6bc61aab..770de7ef13570 100644 --- a/pkgs/development/libraries/lucene++/default.nix +++ b/pkgs/development/libraries/lucene++/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { CMakeLists.txt ''; - cmakeFlags = [ "-DGTEST_INCLUDE_DIR=${gtest}/include" ]; + cmakeFlags = { GTEST_INCLUDE_DIR = "${gtest}/include"; }; buildInputs = [ cmake boost gtest ]; enableParallelBuilding = true; diff --git a/pkgs/development/libraries/mailcore2/default.nix b/pkgs/development/libraries/mailcore2/default.nix index 367c4e9638422..244a006f49dea 100644 --- a/pkgs/development/libraries/mailcore2/default.nix +++ b/pkgs/development/libraries/mailcore2/default.nix @@ -30,9 +30,9 @@ stdenv.mkDerivation rec { --replace buffio.h tidybuffio.h ''; - cmakeFlags = [ - "-DBUILD_SHARED_LIBS=ON" - ]; + cmakeFlags = { + BUILD_SHARED_LIBS = true; + }; installPhase = '' mkdir $out diff --git a/pkgs/development/libraries/mygui/default.nix b/pkgs/development/libraries/mygui/default.nix index f4a869255f8c1..de4e0d3ea3e6f 100644 --- a/pkgs/development/libraries/mygui/default.nix +++ b/pkgs/development/libraries/mygui/default.nix @@ -20,7 +20,11 @@ in stdenv.mkDerivation rec { buildInputs = [ libX11 unzip cmake ois freetype libuuid boost (if withOgre then ogre else libGLU_combined) ]; # Tools are disabled due to compilation failures. - cmakeFlags = [ "-DMYGUI_BUILD_TOOLS=OFF" "-DMYGUI_BUILD_DEMOS=OFF" "-DMYGUI_RENDERSYSTEM=${renderSystem}" ]; + cmakeFlags = { + MYGUI_BUILD_DEMOS = false; + MYGUI_BUILD_TOOLS = false; + MYGUI_RENDERSYSTEM = renderSystem; + }; meta = with stdenv.lib; { homepage = http://mygui.info/; diff --git a/pkgs/development/libraries/nvidia-texture-tools/default.nix b/pkgs/development/libraries/nvidia-texture-tools/default.nix index 77167361ff20e..522512a5b0dd1 100644 --- a/pkgs/development/libraries/nvidia-texture-tools/default.nix +++ b/pkgs/development/libraries/nvidia-texture-tools/default.nix @@ -21,9 +21,9 @@ stdenv.mkDerivation rec { sed -i 's/virtual void endImage() = 0;/virtual void endImage() {}/' src/nvtt/nvtt.h ''; - cmakeFlags = [ - "-DNVTT_SHARED=TRUE" - ]; + cmakeFlags = { + NVTT_SHARED = true; + }; postInstall = '' moveToOutput include "$dev" diff --git a/pkgs/development/libraries/ogre/default.nix b/pkgs/development/libraries/ogre/default.nix index 0b7202459f9ee..d1f3b8c9cd84d 100644 --- a/pkgs/development/libraries/ogre/default.nix +++ b/pkgs/development/libraries/ogre/default.nix @@ -16,10 +16,13 @@ stdenv.mkDerivation { sha256 = "1zwvlx5dz9nwjazhnrhzb0w8ilpa84r0hrxrmmy69pgr1p1yif5a"; }; - cmakeFlags = [ "-DOGRE_BUILD_SAMPLES=${toString withSamples}" ] - ++ map (x: "-DOGRE_BUILD_PLUGIN_${x}=on") - ([ "BSP" "OCTREE" "PCZ" "PFX" ] ++ lib.optional withNvidiaCg "CG") - ++ map (x: "-DOGRE_BUILD_RENDERSYSTEM_${x}=on") [ "GL" ]; + cmakeFlags = { + OGRE_BUILD_RENDERSYSTEM_GL = true; + OGRE_BUILD_SAMPLES = withSamples; + } // (builtins.listToAttrs (builtins.map + (x: { name = "OGRE_BUILD_PLUGIN_${x}"; value = true; }) + ([ "BSP" "OCTREE" "PCZ" "PFX" ] ++ lib.optional withNvidiaCg "CG") + )); enableParallelBuilding = true; diff --git a/pkgs/development/libraries/ogrepaged/default.nix b/pkgs/development/libraries/ogrepaged/default.nix index e4045bcd5dc49..649d65a1c8e3c 100644 --- a/pkgs/development/libraries/ogrepaged/default.nix +++ b/pkgs/development/libraries/ogrepaged/default.nix @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { buildInputs = [ ois ogre libX11 boost ]; nativeBuildInputs = [ cmake pkgconfig ]; - cmakeFlags = [ "-DPAGEDGEOMETRY_BUILD_SAMPLES=OFF" ]; + cmakeFlags = { PAGEDGEOMETRY_BUILD_SAMPLES = false; }; enableParallelBuilding = true; diff --git a/pkgs/development/libraries/opencv/default.nix b/pkgs/development/libraries/opencv/default.nix index 66a840fa2a9eb..159d2d34d257c 100644 --- a/pkgs/development/libraries/opencv/default.nix +++ b/pkgs/development/libraries/opencv/default.nix @@ -13,11 +13,6 @@ , darwin }: -let - opencvFlag = name: enabled: "-DWITH_${name}=${if enabled then "ON" else "OFF"}"; - -in - stdenv.mkDerivation rec { name = "opencv-${version}"; version = "2.4.13"; @@ -63,14 +58,14 @@ stdenv.mkDerivation rec { NIX_CFLAGS_COMPILE = lib.optional enableEXR "-I${ilmbase.dev}/include/OpenEXR"; - cmakeFlags = [ - (opencvFlag "TIFF" enableTIFF) - (opencvFlag "JASPER" enableJPEG2K) - (opencvFlag "JPEG" enableJPEG) - (opencvFlag "PNG" enablePNG) - (opencvFlag "OPENEXR" enableEXR) - (opencvFlag "GSTREAMER" enableGStreamer) - ]; + cmakeFlags = { + WITH_JASPER = enableJPEG2K; + WITH_JPEG = enableJPEG; + WIHT_OPENEXR = enableEXR; + WITH_PNG = enablePNG; + WITH_TIFF = enableTIFF; + WITH_GSTREAMER = enableGStreamer; + }; enableParallelBuilding = true; diff --git a/pkgs/development/libraries/openjpeg/generic.nix b/pkgs/development/libraries/openjpeg/generic.nix index 96cf0451ebf4e..b1b5e3793e212 100644 --- a/pkgs/development/libraries/openjpeg/generic.nix +++ b/pkgs/development/libraries/openjpeg/generic.nix @@ -20,7 +20,6 @@ assert (openjpegJarSupport || jpipLibSupport) -> jdk != null; let inherit (stdenv.lib) optional optionals; - mkFlag = optSet: flag: "-D${flag}=${if optSet then "ON" else "OFF"}"; in stdenv.mkDerivation rec { @@ -37,21 +36,20 @@ stdenv.mkDerivation rec { outputs = [ "out" "dev" ]; - cmakeFlags = [ - "-DCMAKE_INSTALL_NAME_DIR=\${CMAKE_INSTALL_PREFIX}/lib" - "-DBUILD_SHARED_LIBS=ON" - "-DBUILD_CODEC=ON" - (mkFlag mj2Support "BUILD_MJ2") - (mkFlag jpwlLibSupport "BUILD_JPWL") - (mkFlag jpipLibSupport "BUILD_JPIP") - (mkFlag jpipServerSupport "BUILD_JPIP_SERVER") - #(mkFlag opjViewerSupport "BUILD_VIEWER") - "-DBUILD_VIEWER=OFF" - (mkFlag openjpegJarSupport "BUILD_JAVA") - (mkFlag jp3dSupport "BUILD_JP3D") - (mkFlag thirdPartySupport "BUILD_THIRDPARTY") - (mkFlag testsSupport "BUILD_TESTING") - ]; + cmakeFlags = { + CMAKE_INSTALL_NAME_DIR = "$CMAKE_INSTALL_PREFIX/lib"; + BUILD_SHARED_LIBS = true; + BUILD_CODEC = true; + BUILD_MJ2 = mj2Support; + BUILD_JPWL = jpwlLibSupport; + BUILD_JPIP = jpipLibSupport; + BUILD_JPIP_SERVER = jpipServerSupport; + BUILD_VIEWER = false; + BUILD_JAVA = openjpegJarSupport; + BUILD_JP3D = jp3dSupport; + BUILD_THIRDPARTY = thirdPartySupport; + BUILD_TESTING = testsSupport; + }; nativeBuildInputs = [ cmake pkgconfig ]; diff --git a/pkgs/development/libraries/openwsman/default.nix b/pkgs/development/libraries/openwsman/default.nix index 1aa0f26845710..235098d4a3f1c 100644 --- a/pkgs/development/libraries/openwsman/default.nix +++ b/pkgs/development/libraries/openwsman/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { ]; preConfigure = '' - cmakeFlags="$cmakeFlags -DPACKAGE_ARCHITECTURE=$(uname -m)"; + cmakeFlags+=("-DPACKAGE_ARCHITECTURE=$(uname -m)") ''; configureFlags = "--disable-more-warnings"; diff --git a/pkgs/development/libraries/physics/hepmc/default.nix b/pkgs/development/libraries/physics/hepmc/default.nix index b935a3d56ea95..337935e8701e1 100644 --- a/pkgs/development/libraries/physics/hepmc/default.nix +++ b/pkgs/development/libraries/physics/hepmc/default.nix @@ -12,10 +12,10 @@ stdenv.mkDerivation rec { patches = [ ./in_source.patch ]; buildInputs = [ cmake ]; - cmakeFlags = [ - "-Dmomentum:STRING=GEV" - "-Dlength:STRING=MM" - ]; + cmakeFlags = { + length = "MM"; + momentum = "GEV"; + }; enableParallelBuilding = true; diff --git a/pkgs/development/libraries/poppler/0.61.nix b/pkgs/development/libraries/poppler/0.61.nix index 4456cd7ff2858..767a071390204 100644 --- a/pkgs/development/libraries/poppler/0.61.nix +++ b/pkgs/development/libraries/poppler/0.61.nix @@ -7,11 +7,8 @@ , minimal ? false, suffix ? "glib" }: -let - version = "0.61.0"; - mkFlag = optset: flag: "-DENABLE_${flag}=${if optset then "on" else "off"}"; -in stdenv.mkDerivation rec { + version = "0.61.0"; name = "poppler-${suffix}-${version}"; src = fetchurl { @@ -35,14 +32,14 @@ stdenv.mkDerivation rec { # Not sure when and how to pass it. It seems an upstream bug anyway. CXXFLAGS = stdenv.lib.optionalString stdenv.cc.isClang "-std=c++11"; - cmakeFlags = [ - (mkFlag true "XPDF_HEADERS") - (mkFlag (!minimal) "GLIB") - (mkFlag (!minimal) "CPP") - (mkFlag (!minimal) "LIBCURL") - (mkFlag utils "UTILS") - (mkFlag qt5Support "QT5") - ]; + cmakeFlags = { + XPDF_HEADERS = true; + GLIB = !minimal; + CPP = !minimal; + LIBCURL = !minimal; + UTILS = utils; + QT5 = qt5Support; + }; meta = with lib; { homepage = https://poppler.freedesktop.org/; diff --git a/pkgs/development/libraries/poppler/default.nix b/pkgs/development/libraries/poppler/default.nix index acfae1fc88835..0fb162bb65f7b 100644 --- a/pkgs/development/libraries/poppler/default.nix +++ b/pkgs/development/libraries/poppler/default.nix @@ -7,12 +7,10 @@ , minimal ? false, suffix ? "glib" }: -let # beware: updates often break cups-filters build - version = "0.67.0"; - mkFlag = optset: flag: "-DENABLE_${flag}=${if optset then "on" else "off"}"; -in stdenv.mkDerivation rec { name = "poppler-${suffix}-${version}"; + # beware: updates often break cups-filters build + version = "0.67.0"; src = fetchurl { url = "${meta.homepage}/poppler-${version}.tar.xz"; @@ -36,14 +34,14 @@ stdenv.mkDerivation rec { # Not sure when and how to pass it. It seems an upstream bug anyway. CXXFLAGS = stdenv.lib.optionalString stdenv.cc.isClang "-std=c++11"; - cmakeFlags = [ - (mkFlag true "XPDF_HEADERS") - (mkFlag (!minimal) "GLIB") - (mkFlag (!minimal) "CPP") - (mkFlag (!minimal) "LIBCURL") - (mkFlag utils "UTILS") - (mkFlag qt5Support "QT5") - ]; + cmakeFlags = { + XPDF_HEADERS = true; + GLIB = !minimal; + CPP = !minimal; + LIBCURL = !minimal; + UTILS = utils; + QT5 = qt5Support; + }; meta = with lib; { homepage = https://poppler.freedesktop.org/; diff --git a/pkgs/development/libraries/pugixml/default.nix b/pkgs/development/libraries/pugixml/default.nix index 1730f9b733caa..35edc18c316ab 100644 --- a/pkgs/development/libraries/pugixml/default.nix +++ b/pkgs/development/libraries/pugixml/default.nix @@ -11,7 +11,9 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake ]; - cmakeFlags = [ "-DBUILD_SHARED_LIBS=${if shared then "ON" else "OFF"}" ]; + cmakeFlags = { + BUILD_SHARED_LIBS = shared; + }; preConfigure = '' # Enable long long support (required for filezilla) diff --git a/pkgs/development/libraries/qhull/default.nix b/pkgs/development/libraries/qhull/default.nix index 829765d85499f..b9ab521169214 100644 --- a/pkgs/development/libraries/qhull/default.nix +++ b/pkgs/development/libraries/qhull/default.nix @@ -10,7 +10,10 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake ]; - cmakeFlags = "-DMAN_INSTALL_DIR=share/man/man1 -DDOC_INSTALL_DIR=share/doc/qhull"; + cmakeFlags = { + DOC_INSTALL_DIR = "share/doc/qhull"; + MAN_INSTALL_DIR = "share/man/man1"; + }; hardeningDisable = [ "format" ]; diff --git a/pkgs/development/libraries/qtkeychain/default.nix b/pkgs/development/libraries/qtkeychain/default.nix index 5baeb76820acd..b941211cff961 100644 --- a/pkgs/development/libraries/qtkeychain/default.nix +++ b/pkgs/development/libraries/qtkeychain/default.nix @@ -18,13 +18,13 @@ stdenv.mkDerivation rec { sha256 = "1r6qp9l2lp5jpc6ciklbg1swvvzcpc37rg9py46hk0wxy6klnm0b"; # v0.8.0 }; - cmakeFlags = [ "-DQT_TRANSLATIONS_DIR=share/qt/translations" ] - ++ stdenv.lib.optional stdenv.isDarwin [ + cmakeFlags = { + QT_TRANSLATIONS_DIR = "share/qt/translations"; + } // stdenv.lib.optionalAttrs stdenv.isDarwin { # correctly detect the compiler # for details see cmake --help-policy CMP0025 - "-DCMAKE_POLICY_DEFAULT_CMP0025=NEW" - ] - ; + CMAKE_POLICY_DEFAULT_CMP0025 = "NEW"; + }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/development/libraries/science/math/liblapack/default.nix b/pkgs/development/libraries/science/math/liblapack/default.nix index e6af2251b1f18..f1bc9e34b893b 100644 --- a/pkgs/development/libraries/science/math/liblapack/default.nix +++ b/pkgs/development/libraries/science/math/liblapack/default.nix @@ -26,19 +26,18 @@ stdenv.mkDerivation rec { buildInputs = [ gfortran cmake ]; nativeBuildInputs = [ python2 ]; - cmakeFlags = [ - "-DUSE_OPTIMIZED_BLAS=ON" - "-DCMAKE_Fortran_FLAGS=-fPIC" - ] - ++ (optionals (atlas != null) [ - "-DBLAS_ATLAS_f77blas_LIBRARY=${atlasMaybeShared}/lib/libf77blas${usedLibExtension}" - "-DBLAS_ATLAS_atlas_LIBRARY=${atlasMaybeShared}/lib/libatlas${usedLibExtension}" - ]) - ++ (optional shared "-DBUILD_SHARED_LIBS=ON") - # If we're on darwin, CMake will automatically detect impure paths. This switch - # prevents that. - ++ (optional stdenv.isDarwin "-DCMAKE_OSX_SYSROOT:PATH=''") - ; + cmakeFlags = { + BUILD_SHARED_LIBS = shared; + CMAKE_Fortran_FLAGS = "-fPIC"; + USE_OPTIMIZED_BLAS = true; + } // (optionalAttrs (atlas != null) { + BLAS_ATLAS_atlas_LIBRARY = "${atlasMaybeShared}/lib/libatlas${usedLibExtension}"; + BLAS_ATLAS_f77blas_LIBRARY = "${atlasMaybeShared}/lib/libf77blas${usedLibExtension}"; + }) // (optionalAttrs stdenv.isDarwin { + # If we're on darwin, CMake will automatically detect impure paths. This switch + # prevents that. + CMAKE_OSX_SYSROOT = ""; + }); doCheck = ! shared; diff --git a/pkgs/development/libraries/science/math/metis/default.nix b/pkgs/development/libraries/science/math/metis/default.nix index 3ce94f28ac2ac..b8e237a890617 100644 --- a/pkgs/development/libraries/science/math/metis/default.nix +++ b/pkgs/development/libraries/science/math/metis/default.nix @@ -8,7 +8,7 @@ stdenv.mkDerivation { sha256 = "1cjxgh41r8k6j029yxs8msp3z6lcnpm16g5pvckk35kc7zhfpykn"; }; - cmakeFlags = [ "-DGKLIB_PATH=../GKlib" ]; + cmakeFlags = { GKLIB_PATH = "../GKlib"; }; buildInputs = [ unzip cmake ]; meta = { diff --git a/pkgs/development/libraries/science/math/superlu/default.nix b/pkgs/development/libraries/science/math/superlu/default.nix index 9938a3096a02f..613b0c53816a9 100644 --- a/pkgs/development/libraries/science/math/superlu/default.nix +++ b/pkgs/development/libraries/science/math/superlu/default.nix @@ -14,10 +14,10 @@ stdenv.mkDerivation rec { propagatedBuildInputs = [ openblasCompat ]; - cmakeFlags = [ - "-DBUILD_SHARED_LIBS=true" - "-DUSE_XSDK_DEFAULTS=true" - ]; + cmakeFlags = { + BUILD_SHARED_LIBS = true; + USE_XSDK_DEFAULTS = true; + }; patches = [ ./find-openblas-library.patch diff --git a/pkgs/development/libraries/sfml/default.nix b/pkgs/development/libraries/sfml/default.nix index 03a801a324059..429f7dd197e1e 100644 --- a/pkgs/development/libraries/sfml/default.nix +++ b/pkgs/development/libraries/sfml/default.nix @@ -17,10 +17,14 @@ stdenv.mkDerivation rec { libXrandr libXrender xcbutilimage ] ++ stdenv.lib.optional stdenv.isLinux udev ++ stdenv.lib.optionals stdenv.isDarwin [ IOKit Foundation AppKit OpenAL ]; - cmakeFlags = [ "-DSFML_INSTALL_PKGCONFIG_FILES=yes" - "-DSFML_MISC_INSTALL_PREFIX=share/SFML" - "-DSFML_BUILD_FRAMEWORKS=no" - "-DSFML_USE_SYSTEM_DEPS=yes" ]; + + cmakeFlags = { + SFML_INSTALL_PKGCONFIG_FILES = true; + SFML_MISC_INSTALL_PREFIX = "share/SFML"; + SFML_BUILD_FRAMEWORKS = false; + SFML_USE_SYSTEM_DEPS = true; + } + meta = with stdenv.lib; { homepage = http://www.sfml-dev.org/; description = "Simple and fast multimedia library"; diff --git a/pkgs/development/libraries/spdlog/default.nix b/pkgs/development/libraries/spdlog/default.nix index 1c9e67f87675c..1930f4585b899 100644 --- a/pkgs/development/libraries/spdlog/default.nix +++ b/pkgs/development/libraries/spdlog/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake ]; - # cmakeFlags = [ "-DSPDLOG_BUILD_EXAMPLES=ON" ]; + # cmakeFlags = { SPDLOG_BUILD_EXAMPLES = true; }; outputs = [ "out" "doc" ]; diff --git a/pkgs/development/libraries/stxxl/default.nix b/pkgs/development/libraries/stxxl/default.nix index 2244803f4d323..a4909a3a5c23b 100644 --- a/pkgs/development/libraries/stxxl/default.nix +++ b/pkgs/development/libraries/stxxl/default.nix @@ -2,10 +2,6 @@ , parallel ? true }: -let - mkFlag = optset: flag: if optset then "-D${flag}=ON" else "-D${flag}=OFF"; -in - stdenv.mkDerivation rec { name = "stxxl-${version}"; version = "1.4.1"; @@ -17,11 +13,11 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake ]; - cmakeFlags = [ - "-DBUILD_SHARED_LIBS=ON" - "-DBUILD_STATIC_LIBS=OFF" - (mkFlag parallel "USE_GNU_PARALLEL") - ]; + cmakeFlags = { + BUILD_SHARED_LIBS = true; + BUILD_STATIC_LIBS = false; + USE_GNU_PARALLEL = parallel; + }; passthru = { inherit parallel; diff --git a/pkgs/development/libraries/uri/default.nix b/pkgs/development/libraries/uri/default.nix index 46eac0fb88bbe..448426dfa0b41 100644 --- a/pkgs/development/libraries/uri/default.nix +++ b/pkgs/development/libraries/uri/default.nix @@ -12,9 +12,11 @@ stdenv.mkDerivation { nativeBuildInputs = [ cmake doxygen ]; - cmakeFlags = [ - "-DUri_BUILD_TESTS=OFF" "-DUri_BUILD_DOCS=ON" "-DBUILD_SHARED_LIBS=ON" - ]; + cmakeFlags = { + BUILD_SHARED_LIBS = true; + Uri_BUILD_DOCS = true; + Uri_BUILD_TESTS = false; + }; postBuild = "make doc"; diff --git a/pkgs/development/libraries/vtk/default.nix b/pkgs/development/libraries/vtk/default.nix index b85d76640cf06..fa34bd88f9f1d 100644 --- a/pkgs/development/libraries/vtk/default.nix +++ b/pkgs/development/libraries/vtk/default.nix @@ -38,12 +38,16 @@ stdenv.mkDerivation rec { # built and requiring one of the shared objects. # At least, we use -fPIC for other packages to be able to use this in shared # objects. - cmakeFlags = [ "-DCMAKE_C_FLAGS=-fPIC" "-DCMAKE_CXX_FLAGS=-fPIC" ] - ++ optional (qtLib != null) [ "-DVTK_USE_QT:BOOL=ON" ] - ++ optional stdenv.isDarwin [ "-DBUILD_TESTING:BOOL=OFF" - "-DCMAKE_OSX_SYSROOT=" - "-DCMAKE_OSX_DEPLOYMENT_TARGET=" - "-DOPENGL_INCLUDE_DIR=${OpenGL}/Library/Frameworks" ]; + cmakeFlags = { + CMAKE_C_FLAGS = "-fPIC"; + CMAKE_CXX_FLAGS = "-fPIC"; + VTK_USE_QT = qtLib != null; + } // (optionalAttrs stdenv.isDarwin { + BUILD_TESTING = false; + CMAKE_OSX_SYSROOT = ""; + CMAKE_OSX_DEPLOYMENT_TARGET = ""; + OPENGL_INCLUDE_DIR = "${OpenGL}/Library/Frameworks"; + }); postPatch = stdenv.lib.optionalString stdenv.isDarwin '' sed -i 's|COMMAND vtkHashSource|COMMAND "DYLD_LIBRARY_PATH=''${VTK_BINARY_DIR}/lib" ''${VTK_BINARY_DIR}/bin/vtkHashSource-7.0|' ./Parallel/Core/CMakeLists.txt diff --git a/pkgs/development/libraries/vulkan-loader/default.nix b/pkgs/development/libraries/vulkan-loader/default.nix index e44a678194ae8..27cbbd56345a0 100644 --- a/pkgs/development/libraries/vulkan-loader/default.nix +++ b/pkgs/development/libraries/vulkan-loader/default.nix @@ -17,10 +17,10 @@ stdenv.mkDerivation rec { buildInputs = [ cmake python3 xlibsWrapper libxcb libXrandr libXext wayland ]; enableParallelBuilding = true; - cmakeFlags = [ - "-DFALLBACK_DATA_DIRS=${libGL_driver.driverLink}/share:/usr/local/share:/usr/share" - "-DVULKAN_HEADERS_INSTALL_DIR=${vulkan-headers}" - ]; + cmakeFlags = { + FALLBACK_DATA_DIRS = "${libGL_driver.driverLink}/share:/usr/local/share:/usr/share"; + VULKAN_HEADERS_INSTALL_DIR = vulkan-headers; + }; outputs = [ "out" "dev" ]; diff --git a/pkgs/development/libraries/vxl/default.nix b/pkgs/development/libraries/vxl/default.nix index b9f3c0e64d6ca..7cd1d34761fd4 100644 --- a/pkgs/development/libraries/vxl/default.nix +++ b/pkgs/development/libraries/vxl/default.nix @@ -11,14 +11,18 @@ stdenv.mkDerivation { buildInputs = [ cmake unzip libtiff expat zlib libpng libjpeg ]; + # BUILD_BRL fails to find open() # BUILD_OUL wants old linux headers for videodev.h, not available # in stdenv linux headers - # BUILD_BRL fails to find open() - cmakeFlags = "-DBUILD_TESTING=OFF -DBUILD_OUL=OFF -DBUILD_BRL=OFF -DBUILD_CONTRIB=OFF " - + (if stdenv.system == "x86_64-linux" then - "-DCMAKE_CXX_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC" - else - ""); + cmakeFlags = { + BUILD_BRL = false; + BUILD_CONTRIB = false; + BUILD_OUL = false; + BUILD_TESTING = false; + } // (stdenv.lib.optionalAttrs (stdenv.system == "x86_64-linux") { + CMAKE_C_FLAGS = "-fPIC"; + CMAKE_CXX_FLAGS = "-fPIC"; + }); enableParallelBuilding = true; diff --git a/pkgs/development/libraries/x265/default.nix b/pkgs/development/libraries/x265/default.nix index d11a93254bfba..5543f3e0a541e 100644 --- a/pkgs/development/libraries/x265/default.nix +++ b/pkgs/development/libraries/x265/default.nix @@ -10,7 +10,6 @@ }: let - mkFlag = optSet: flag: if optSet then "-D${flag}=ON" else "-D${flag}=OFF"; inherit (stdenv) is64bit; in @@ -32,18 +31,18 @@ stdenv.mkDerivation rec { sed -i 's/unknown/${version}/g' source/cmake/version.cmake ''; - cmakeFlags = [ - (mkFlag debugSupport "CHECKED_BUILD") - "-DSTATIC_LINK_CRT=OFF" - (mkFlag (highbitdepthSupport && is64bit) "HIGH_BIT_DEPTH") - (mkFlag werrorSupport "WARNINGS_AS_ERRORS") - (mkFlag ppaSupport "ENABLE_PPA") - (mkFlag vtuneSupport "ENABLE_VTUNE") - (mkFlag custatsSupport "DETAILED_CU_STATS") - "-DENABLE_SHARED=ON" - (mkFlag cliSupport "ENABLE_CLI") - (mkFlag unittestsSupport "ENABLE_TESTS") - ]; + cmakeFlags = { + CHECKED_BUILD = debugSupport; + STATIC_LINK_CRT = false; + HIGH_BIT_DEPTH = highbitdepthSupport && is64bit; + WARNINGS_AS_ERRORS = werrorSupport; + ENABLE_PPA = ppaSupport; + ENABLE_VTUNE = vtuneSupport; + DETAILED_CU_STATS = custatsSupport; + ENABLE_SHARED = true; + ENABLE_CLI = cliSupport; + ENABLE_TESTS = unittestsSupport; + }; preConfigure = '' cd source diff --git a/pkgs/development/mobile/xpwn/default.nix b/pkgs/development/mobile/xpwn/default.nix index d5ffb7f6c017e..77d37125f10a5 100644 --- a/pkgs/development/mobile/xpwn/default.nix +++ b/pkgs/development/mobile/xpwn/default.nix @@ -20,9 +20,9 @@ stdenv.mkDerivation { buildInputs = [ cmake zlib libpng bzip2 libusb openssl ]; - cmakeFlags = [ - "-DCMAKE_OSX_DEPLOYMENT_TARGET=" - ]; + cmakeFlags = { + CMAKE_OSX_DEPLOYMENT_TARGET = ""; + }; meta = with stdenv.lib; { homepage = "http://planetbeing.lighthouseapp.com/projects/15246-xpwn"; diff --git a/pkgs/development/ocaml-modules/llvm/default.nix b/pkgs/development/ocaml-modules/llvm/default.nix index 3bced92cc3e3d..01a6e0de85bd7 100644 --- a/pkgs/development/ocaml-modules/llvm/default.nix +++ b/pkgs/development/ocaml-modules/llvm/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation { sha256 = "1fcc6ylfiw1npdhx7mrsj7h0dx7cym7i9664kpr76zqazb52ikm9"; })]; - cmakeFlags = [ "-DLLVM_OCAML_OUT_OF_TREE=TRUE" ]; + cmakeFlags = { LLVM_OCAML_OUT_OF_TREE = true; }; buildFlags = "ocaml_all"; diff --git a/pkgs/development/tools/analysis/include-what-you-use/default.nix b/pkgs/development/tools/analysis/include-what-you-use/default.nix index 9aac638d0a800..a986bda172e47 100644 --- a/pkgs/development/tools/analysis/include-what-you-use/default.nix +++ b/pkgs/development/tools/analysis/include-what-you-use/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { buildInputs = with llvmPackages; [ clang-unwrapped llvm ]; nativeBuildInputs = [ cmake ]; - cmakeFlags = [ "-DIWYU_LLVM_ROOT_PATH=${llvmPackages.clang-unwrapped}" ]; + cmakeFlags = { IWYU_LLVM_ROOT_PATH = "${llvmPackages.clang-unwrapped}"; }; enableParallelBuilding = true; diff --git a/pkgs/development/tools/analysis/rr/default.nix b/pkgs/development/tools/analysis/rr/default.nix index 9c2419b535892..2f60594bf5a0e 100644 --- a/pkgs/development/tools/analysis/rr/default.nix +++ b/pkgs/development/tools/analysis/rr/default.nix @@ -17,15 +17,15 @@ stdenv.mkDerivation rec { patchShebangs . ''; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ cmake pkgconfig ]; buildInputs = [ - cmake libpfm zlib python2Packages.python python2Packages.pexpect which procps gdb capnproto - ]; - cmakeFlags = [ - "-DCMAKE_C_FLAGS_RELEASE:STRING=" - "-DCMAKE_CXX_FLAGS_RELEASE:STRING=" - "-Ddisable32bit=ON" + libpfm zlib python2Packages.python python2Packages.pexpect which procps gdb capnproto ]; + cmakeFlags = { + CMAKE_C_FLAGS_RELEASE = ""; + CMAKE_CXX_FLAGS_RELEASE = ""; + disable32bit = true; + }; # we turn on additional warnings due to hardening NIX_CFLAGS_COMPILE = "-Wno-error"; diff --git a/pkgs/development/tools/build-managers/cmake/default.nix b/pkgs/development/tools/build-managers/cmake/default.nix index ed0928febe296..357f8f5776b2d 100644 --- a/pkgs/development/tools/build-managers/cmake/default.nix +++ b/pkgs/development/tools/build-managers/cmake/default.nix @@ -70,6 +70,32 @@ stdenv.mkDerivation rec { setOutputFlags = false; setupHook = ./setup-hook.sh; + setupHookFunc = let + + flattenFlag = name: value: let + serializedValue = + if builtins.isString value then value + else if builtins.isInt value then (builtins.toString value) + else if builtins.isBool value then (if value then "ON" else "OFF") + else throw "Bad value ${value} for cmakeFlags attr ${name}"; + + # Strings and paths are more complicated to discern, + # so just skip those + flagType = if builtins.isBool value then ":BOOL" else ""; + # Unset if the value is null, otherwise set the value + in if (value == null) then "-U${name}" else"-D${name}${flagType}=${serializedValue}"; + + mkCmakeFlags = cmakeFlags: let + flagsList = (stdenv.lib.mapAttrsToList flattenFlag ( + builtins.removeAttrs cmakeFlags [ "generator" "extraArgs" ] + )) ++ stdenv.lib.optional (cmakeFlags ? generator) "-G${cmakeFlags.generator}" + ++ stdenv.lib.optionals (cmakeFlags ? extraArgs) cmakeFlags.extraArgs + ; + in stdenv.lib.strings.escapeBashArray flagsList; + + in oldAttrs: oldAttrs // stdenv.lib.optionalAttrs (oldAttrs ? cmakeFlags) { + cmakeFlags = mkCmakeFlags oldAttrs.cmakeFlags; + }; buildInputs = [ setupHook pkgconfig ] diff --git a/pkgs/development/tools/build-managers/cmake/setup-hook.sh b/pkgs/development/tools/build-managers/cmake/setup-hook.sh index d37e25943b5f0..5814aa64d3e49 100755 --- a/pkgs/development/tools/build-managers/cmake/setup-hook.sh +++ b/pkgs/development/tools/build-managers/cmake/setup-hook.sh @@ -13,6 +13,11 @@ fixCmakeFiles() { } cmakeConfigurePhase() { + + # Convert cmakeFlags into an array first + # so it can safely be modified by preConfigure + eval declare -a cmakeFlags="${cmakeFlags:-()}" + runHook preConfigure if [ -z "$dontFixCmake" ]; then @@ -26,7 +31,7 @@ cmakeConfigurePhase() { fi if [ -z "$dontAddPrefix" ]; then - cmakeFlags="-DCMAKE_INSTALL_PREFIX=$prefix $cmakeFlags" + cmakeFlags=("-DCMAKE_INSTALL_PREFIX=$prefix" "${cmakeFlags[@]}") fi # We should set the proper `CMAKE_SYSTEM_NAME`. @@ -35,25 +40,28 @@ cmakeConfigurePhase() { # Unfortunately cmake seems to expect absolute paths for ar, ranlib, and # strip. Otherwise they are taken to be relative to the source root of the # package being built. - cmakeFlags="-DCMAKE_CXX_COMPILER=$CXX $cmakeFlags" - cmakeFlags="-DCMAKE_C_COMPILER=$CC $cmakeFlags" - cmakeFlags="-DCMAKE_AR=$(command -v $AR) $cmakeFlags" - cmakeFlags="-DCMAKE_RANLIB=$(command -v $RANLIB) $cmakeFlags" - cmakeFlags="-DCMAKE_STRIP=$(command -v $STRIP) $cmakeFlags" + cmakeFlags=( + "-DCMAKE_CXX_COMPILER=$CXX" + "-DCMAKE_C_COMPILER=$CC" + "-DCMAKE_AR=$(command -v $AR)" + "-DCMAKE_RANLIB=$(command -v $RANLIB)" + "-DCMAKE_STRIP=$(command -v $STRIP)" + "${cmakeFlags[@]}" + ) # on macOS we want to prefer Unix-style headers to Frameworks # because we usually do not package the framework - cmakeFlags="-DCMAKE_FIND_FRAMEWORK=last $cmakeFlags" + cmakeFlags=("-DCMAKE_FIND_FRAMEWORK=last" "${cmakeFlags[@]}") # we never want to use the global macOS SDK - cmakeFlags="-DCMAKE_OSX_SYSROOT= $cmakeFlags" + cmakeFlags=("-DCMAKE_OSX_SYSROOT=" "${cmakeFlags[@]}") # disable OSX deployment target # we don't want our binaries to have a "minimum" OSX version - cmakeFlags="-DCMAKE_OSX_DEPLOYMENT_TARGET= $cmakeFlags" + cmakeFlags=("-DCMAKE_OSX_DEPLOYMENT_TARGET=" "${cmakeFlags[@]}") # correctly detect our clang compiler - cmakeFlags="-DCMAKE_POLICY_DEFAULT_CMP0025=NEW $cmakeFlags" + cmakeFlags=("-DCMAKE_POLICY_DEFAULT_CMP0025=NEW" "${cmakeFlags[@]}") # This installs shared libraries with a fully-specified install # name. By default, cmake installs shared libraries with just the @@ -62,21 +70,29 @@ cmakeConfigurePhase() { # libraries are in a system path or in the same directory as the # executable. This flag makes the shared library accessible from its # nix/store directory. - cmakeFlags="-DCMAKE_INSTALL_NAME_DIR=${!outputLib}/lib $cmakeFlags" - cmakeFlags="-DCMAKE_INSTALL_LIBDIR=${!outputLib}/lib $cmakeFlags" - cmakeFlags="-DCMAKE_INSTALL_INCLUDEDIR=${!outputDev}/include $cmakeFlags" + cmakeFlags=( + "-DCMAKE_INSTALL_NAME_DIR=${!outputLib}/lib" + "-DCMAKE_INSTALL_LIBDIR=${!outputLib}/lib" + "-DCMAKE_INSTALL_INCLUDEDIR=${!outputDev}/include" + "${cmakeFlags[@]}" + ) # Avoid cmake resetting the rpath of binaries, on make install # And build always Release, to ensure optimisation flags - cmakeFlags="-DCMAKE_BUILD_TYPE=${cmakeBuildType:-Release} -DCMAKE_SKIP_BUILD_RPATH=ON $cmakeFlags" - + cmakeFlags=( + "-DCMAKE_BUILD_TYPE=${cmakeBuildType:-Release}" + "-DCMAKE_SKIP_BUILD_RPATH=ON" + "${cmakeFlags[@]}" + ) if [ "$buildPhase" = ninjaBuildPhase ]; then - cmakeFlags="-GNinja $cmakeFlags" + cmakeFlags=( + "-GNinja" + "${cmakeFlags[@]}" + ) fi - echo "cmake flags: $cmakeFlags ${cmakeFlagsArray[@]}" - - cmake ${cmakeDir:-.} $cmakeFlags "${cmakeFlagsArray[@]}" + echo "cmake invocation: cmake ${cmakeDir:-.} ${cmakeFlags[@]}" + cmake "${cmakeDir:-.}" "${cmakeFlags[@]}" if ! [[ -v enableParallelBuilding ]]; then enableParallelBuilding=1 diff --git a/pkgs/development/tools/misc/uhd/default.nix b/pkgs/development/tools/misc/uhd/default.nix index 0730ef1fb09c1..826ff62a3640e 100644 --- a/pkgs/development/tools/misc/uhd/default.nix +++ b/pkgs/development/tools/misc/uhd/default.nix @@ -35,8 +35,11 @@ in stdenv.mkDerivation { # ABI differences GCC 7.1 # /nix/store/wd6r25miqbk9ia53pp669gn4wrg9n9cj-gcc-7.3.0/include/c++/7.3.0/bits/vector.tcc:394:7: note: parameter passing for argument of type 'std::vector::iterator {aka __gnu_cxx::__normal_iterator >}' changed in GCC 7.1 - cmakeFlags = [ "-DLIBUSB_INCLUDE_DIRS=${libusb1.dev}/include/libusb-1.0"] ++ - [ (stdenv.lib.optionalString stdenv.isAarch32 "-DCMAKE_CXX_FLAGS=-Wno-psabi") ]; + cmakeFlags = { + LIBUSB_INCLUDE_DIRS = "${libusb1.dev}/include/libusb-1.0"; + } // (stdenv.lib.optionalAttrs stdenv.isAarch32 { + CMAKE_CXX_FLAGS = "-Wno-psabi"; + }); nativeBuildInputs = [ cmake pkgconfig ]; buildInputs = [ python pythonPackages.pyramid_mako orc libusb1 boost ]; diff --git a/pkgs/development/tools/tora/default.nix b/pkgs/development/tools/tora/default.nix index 5b46b975cf7f1..1cf07220d8930 100644 --- a/pkgs/development/tools/tora/default.nix +++ b/pkgs/development/tools/tora/default.nix @@ -30,18 +30,18 @@ in mkDerivation rec { extlibs/libermodel/dotgraph.cpp ''; - cmakeFlags = [ - "-DWANT_INTERNAL_LOKI=0" - "-DWANT_INTERNAL_QSCINTILLA=0" + cmakeFlags = { + ENABLE_DB2 = false; + ENABLE_ORACLE = false; + ENABLE_TERADATA = false; # cmake/modules/FindQScintilla.cmake looks in qtbase and for the wrong library name - "-DQSCINTILLA_INCLUDE_DIR=${qscintillaLib}/include" - "-DQSCINTILLA_LIBRARY=${qscintillaLib}/lib/libqscintilla2.so" - "-DENABLE_DB2=0" - "-DENABLE_ORACLE=0" - "-DENABLE_TERADATA=0" - "-DQT5_BUILD=1" - "-Wno-dev" - ]; + QSCINTILLA_INCLUDE_DIR = "${qscintillaLib}/include"; + QSCINTILLA_LIBRARY = "${qscintillaLib}/lib/libqscintilla2.so"; + QT5_BUILD = true; + WANT_INTERNAL_LOKI = false; + WANT_INTERNAL_QSCINTILLA = false; + extraFlags = [ "-Wno-dev" ]; + }; # these libraries are only searched for at runtime so we need to force-link them NIX_LDFLAGS = [ diff --git a/pkgs/games/arx-libertatis/default.nix b/pkgs/games/arx-libertatis/default.nix index e000f743173b3..ab49ead13fa69 100644 --- a/pkgs/games/arx-libertatis/default.nix +++ b/pkgs/games/arx-libertatis/default.nix @@ -19,11 +19,11 @@ stdenv.mkDerivation rec { optipng imagemagick ]; - cmakeFlags = [ - "-DDATA_DIR_PREFIXES=$out/share" - "-DImageMagick_convert_EXECUTABLE=${imagemagick.out}/bin/convert" - "-DImageMagick_mogrify_EXECUTABLE=${imagemagick.out}/bin/mogrify" - ]; + cmakeFlags = { + DATA_DIR_PREFIXES = "$out/share"; + ImageMagick_convert_EXECUTABLE = "${imagemagick.out}/bin/convert"; + ImageMagick_mogrify_EXECUTABLE = "${imagemagick.out}/bin/mogrify"; + }; enableParallelBuilding = true; diff --git a/pkgs/games/minetest/default.nix b/pkgs/games/minetest/default.nix index fee8919bb2363..e0d9a1093c3ff 100644 --- a/pkgs/games/minetest/default.nix +++ b/pkgs/games/minetest/default.nix @@ -24,14 +24,14 @@ in stdenv.mkDerivation { src = sources.src; - cmakeFlags = [ - "-DENABLE_FREETYPE=1" - "-DENABLE_GETTEXT=1" - "-DENABLE_SYSTEM_JSONCPP=1" - "-DGETTEXT_INCLUDE_DIR=${gettext}/include/gettext" - "-DCURL_INCLUDE_DIR=${curl.dev}/include/curl" - "-DIRRLICHT_INCLUDE_DIR=${irrlicht}/include/irrlicht" - ]; + cmakeFlags = { + CURL_INCLUDE_DIR = "${curl.dev}/include/curl"; + ENABLE_FREETYPE = true; + ENABLE_GETTEXT = true; + ENABLE_SYSTEM_JSONCPP = true; + GETTEXT_INCLUDE_DIR = "${gettext}/include/gettext"; + IRRLICHT_INCLUDE_DIR = "${irrlicht}/include/irrlicht"; + }; NIX_CFLAGS_COMPILE = [ "-DluaL_reg=luaL_Reg" ]; # needed since luajit-2.1.0-beta3 diff --git a/pkgs/games/openlierox/default.nix b/pkgs/games/openlierox/default.nix index 2b3e065e6b631..73723ced391aa 100644 --- a/pkgs/games/openlierox/default.nix +++ b/pkgs/games/openlierox/default.nix @@ -12,10 +12,10 @@ stdenv.mkDerivation { NIX_CFLAGS_COMPILE = "-I${libxml2.dev}/include/libxml2 -std=c++98 -Wno-error"; # The breakpad fails to build on x86_64, and it's only to report bugs upstream - cmakeFlags = [ "-DBREAKPAD=0" ]; + cmakeFlags = { BREAKPAD = false; }; preConfigure = '' - cmakeFlags="$cmakeFlags -DSYSTEM_DATA_DIR=$out/share" + cmakeFlags+=("-DSYSTEM_DATA_DIR=$out/share") ''; patchPhase = '' diff --git a/pkgs/games/openspades/default.nix b/pkgs/games/openspades/default.nix index b475726555597..db0a087dcf500 100644 --- a/pkgs/games/openspades/default.nix +++ b/pkgs/games/openspades/default.nix @@ -21,9 +21,9 @@ stdenv.mkDerivation rec { freetype SDL2 SDL2_image libGL zlib curl glew opusfile openal libogg ]; - cmakeFlags = [ - "-DOPENSPADES_INSTALL_BINARY=bin" - ]; + cmakeFlags = { + OPENSPADES_INSTALL_BINARY = "bin"; + }; devPak = fetchurl { url = "https://github.com/yvt/openspades-paks/releases/download/r${devPakVersion}/OpenSpadesDevPackage-r${devPakVersion}.zip"; diff --git a/pkgs/games/soi/default.nix b/pkgs/games/soi/default.nix index 8d102e98433ba..2673b6cdd5535 100644 --- a/pkgs/games/soi/default.nix +++ b/pkgs/games/soi/default.nix @@ -14,9 +14,9 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake ]; buildInputs = [ boost lua luabind libGLU_combined SDL ]; - cmakeFlags = [ - "-DEIGEN_INCLUDE_DIR=${eigen2}/include/eigen2" - ]; + cmakeFlags = { + EIGEN_INCLUDE_DIR = "${eigen2}/include/eigen2"; + }; meta = with stdenv.lib; { description = "A physics-based puzzle game"; diff --git a/pkgs/games/spring/default.nix b/pkgs/games/spring/default.nix index 1dcf432ccd484..42ba95aafb56f 100644 --- a/pkgs/games/spring/default.nix +++ b/pkgs/games/spring/default.nix @@ -25,9 +25,11 @@ stdenv.mkDerivation rec { rm rts/build/cmake/FindGLEW.cmake ''; - cmakeFlags = ["-DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=ON" - "-DCMAKE_INSTALL_RPATH_USE_LINK_PATH:BOOL=ON" - "-DPREFER_STATIC_LIBS:BOOL=OFF"]; + cmakeFlags = { + CMAKE_BUILD_WITH_INSTALL_RPATH = true; + CMAKE_INSTALL_RPATH_USE_LINK_PATH = true; + PREFER_STATIC_LIBS = false; + }; buildInputs = [ cmake lzma boost libdevil zlib p7zip openal libvorbis freetype SDL2 xorg.libX11 xorg.libXcursor libGLU_combined glew asciidoc libxslt docbook_xsl curl makeWrapper diff --git a/pkgs/games/stepmania/default.nix b/pkgs/games/stepmania/default.nix index 4f9406abd8355..9df087da0d33c 100644 --- a/pkgs/games/stepmania/default.nix +++ b/pkgs/games/stepmania/default.nix @@ -21,11 +21,11 @@ stdenv.mkDerivation rec { glew libpulseaudio udev ]; - cmakeFlags = [ - "-DWITH_SYSTEM_FFMPEG=1" - "-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2.out}/lib/gtk-2.0/include" - "-DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-2.0/include" - ]; + cmakeFlags = { + GTK2_GDKCONFIG_INCLUDE_DIR = "${gtk2.out}/lib/gtk-2.0/include"; + GTK2_GLIBCONFIG_INCLUDE_DIR = "${glib.out}/lib/glib-2.0/include"; + WITH_SYSTEM_FFMPEG = true; + }; postInstall = '' mkdir -p $out/bin diff --git a/pkgs/games/supertux/default.nix b/pkgs/games/supertux/default.nix index cf6ba4648687a..64a0fffce167e 100644 --- a/pkgs/games/supertux/default.nix +++ b/pkgs/games/supertux/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { buildInputs = [ SDL2 SDL2_image curl libogg libvorbis libGLU_combined openal boost glew ]; - cmakeFlags = [ "-DENABLE_BOOST_STATIC_LIBS=OFF" ]; + cmakeFlags = { ENABLE_BOOST_STATIC_LIBS = false; }; postInstall = '' mkdir $out/bin diff --git a/pkgs/games/voxelands/default.nix b/pkgs/games/voxelands/default.nix index 9990c9108c498..f2755903b52a0 100644 --- a/pkgs/games/voxelands/default.nix +++ b/pkgs/games/voxelands/default.nix @@ -10,11 +10,11 @@ stdenv.mkDerivation rec { sha256 = "0bims0y0nyviv2f2nxfj37s3258cjbfp9xd97najz0yylnk3qdfw"; }; - cmakeFlags = [ - "-DIRRLICHT_INCLUDE_DIR=${irrlicht}/include/irrlicht" - "-DCMAKE_C_FLAGS_RELEASE=-DNDEBUG" - "-DCMAKE_CXX_FLAGS_RELEASE=-DNDEBUG" - ]; + cmakeFlags = { + CMAKE_C_FLAGS_RELEASE = "-DNDEBUG"; + CMAKE_CXX_FLAGS_RELEASE = "-DNDEBUG"; + IRRLICHT_INCLUDE_DIR = "${irrlicht}/include/irrlicht"; + }; buildInputs = [ cmake irrlicht libpng bzip2 libjpeg sqlite diff --git a/pkgs/games/wesnoth/default.nix b/pkgs/games/wesnoth/default.nix index 75afddf52c8e4..ea5c93a787dcd 100644 --- a/pkgs/games/wesnoth/default.nix +++ b/pkgs/games/wesnoth/default.nix @@ -21,7 +21,9 @@ stdenv.mkDerivation rec { libvorbis fribidi dbus libpng pcre openssl icu ] ++ stdenv.lib.optionals stdenv.isDarwin [ Cocoa Foundation]; - cmakeFlags = [ "-DENABLE_TOOLS=${if enableTools then "ON" else "OFF"}" ]; + cmakeFlags = { + ENABLE_TOOLS = enableTools; + }; enableParallelBuilding = true; diff --git a/pkgs/games/widelands/default.nix b/pkgs/games/widelands/default.nix index 1e2c17814d6fe..0238d3ddccb29 100644 --- a/pkgs/games/widelands/default.nix +++ b/pkgs/games/widelands/default.nix @@ -31,11 +31,11 @@ stdenv.mkDerivation rec { }; preConfigure = '' - cmakeFlags=" - -DWL_INSTALL_BASEDIR=$out - -DWL_INSTALL_DATADIR=$out/share/widelands - -DWL_INSTALL_BINARY=$out/bin - " + cmakeFlags+=( + "-DWL_INSTALL_BASEDIR=$out" + "-DWL_INSTALL_DATADIR=$out/share/widelands" + "-DWL_INSTALL_BINARY=$out/bin" + ) ''; nativeBuildInputs = [ cmake python gettext ]; diff --git a/pkgs/games/zdoom/default.nix b/pkgs/games/zdoom/default.nix index d2b94a14fe415..c3a12065af64a 100644 --- a/pkgs/games/zdoom/default.nix +++ b/pkgs/games/zdoom/default.nix @@ -17,11 +17,11 @@ stdenv.mkDerivation rec { SDL2 openal fluidsynth bzip2 zlib libjpeg game-music-emu libsndfile mpg123 ]; - cmakeFlags = [ - "-DFORCE_INTERNAL_GME=OFF" - "-DGME_INCLUDE_DIR=${game-music-emu}/include" - "-DGME_LIBRARIES=${game-music-emu}/lib/libgme.so" - ]; + cmakeFlags = { + FORCE_INTERNAL_GME = false; + GME_INCLUDE_DIR = "${game-music-emu}/include"; + GME_LIBRARIES = "${game-music-emu}/lib/libgme.so"; + }; sourceRoot = "."; diff --git a/pkgs/misc/emulators/hatari/default.nix b/pkgs/misc/emulators/hatari/default.nix index 287df4db01be7..6f1792c2c4160 100644 --- a/pkgs/misc/emulators/hatari/default.nix +++ b/pkgs/misc/emulators/hatari/default.nix @@ -9,7 +9,7 @@ stdenv.mkDerivation rec { }; # For pthread_cancel - cmakeFlags = "-DCMAKE_EXE_LINKER_FLAGS=-lgcc_s"; + cmakeFlags = { CMAKE_EXE_LINKER_FLAGS = "-lgcc_s"; }; buildInputs = [ zlib SDL cmake ]; diff --git a/pkgs/misc/emulators/vbam/default.nix b/pkgs/misc/emulators/vbam/default.nix index f60ba573ea2ca..da45f60bcad5f 100644 --- a/pkgs/misc/emulators/vbam/default.nix +++ b/pkgs/misc/emulators/vbam/default.nix @@ -41,11 +41,11 @@ stdenv.mkDerivation rec { zlib ]; - cmakeFlags = [ - "-DENABLE_FFMPEG='true'" - #"-DENABLE_LINK='true'" currently broken :/ - "-DSYSCONFDIR=etc" - ]; + cmakeFlags = { + ENABLE_FFMPEG = true; + #ENABLE_LINK = true; currently broken :/ + SYSCONFDIR = "etc"; + }; meta = { description = "A merge of the original Visual Boy Advance forks"; diff --git a/pkgs/os-specific/linux/sysdig/default.nix b/pkgs/os-specific/linux/sysdig/default.nix index cdb1910d9c0e0..cea398a5dd258 100644 --- a/pkgs/os-specific/linux/sysdig/default.nix +++ b/pkgs/os-specific/linux/sysdig/default.nix @@ -18,10 +18,12 @@ stdenv.mkDerivation rec { hardeningDisable = [ "pic" ]; - cmakeFlags = [ - "-DUSE_BUNDLED_DEPS=OFF" - "-DSYSDIG_VERSION=${version}" - ] ++ optional (kernel == null) "-DBUILD_DRIVER=OFF"; + cmakeFlags = { + USE_BUNDLED_DEPS = false; + SYSDIG_VERSION = "${version}"; + } // optionalAttrs (kernel == null) { + BUILD_DRIVER = false; + }; # needed since luajit-2.1.0-beta3 NIX_CFLAGS_COMPILE = [ diff --git a/pkgs/servers/mail/postsrsd/default.nix b/pkgs/servers/mail/postsrsd/default.nix index 01eeeb15efaf8..fad6d129143db 100644 --- a/pkgs/servers/mail/postsrsd/default.nix +++ b/pkgs/servers/mail/postsrsd/default.nix @@ -11,7 +11,10 @@ stdenv.mkDerivation rec { sha256 = "09yzb0fvnbfy534maqlqk79c41p1yz8r9f73n7bahm5lwd0livk9"; }; - cmakeFlags = [ "-DGENERATE_SRS_SECRET=OFF" "-DINIT_FLAVOR=systemd" ]; + cmakeFlags = { + GENERATE_SRS_SECRET = false; + INIT_FLAVOR = "systemd"; + }; preConfigure = '' sed -i "s,\"/etc\",\"$out/etc\",g" CMakeLists.txt diff --git a/pkgs/servers/mail/rspamd/default.nix b/pkgs/servers/mail/rspamd/default.nix index 4de63d694667b..c9256bd1cba76 100644 --- a/pkgs/servers/mail/rspamd/default.nix +++ b/pkgs/servers/mail/rspamd/default.nix @@ -18,13 +18,13 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake pkgconfig perl ]; buildInputs = [ glib gmime libevent libmagic luajit openssl pcre sqlite ragel icu libfann ]; - cmakeFlags = [ - "-DDEBIAN_BUILD=ON" - "-DRUNDIR=/var/run/rspamd" - "-DDBDIR=/var/lib/rspamd" - "-DLOGDIR=/var/log/rspamd" - "-DLOCAL_CONFDIR=/etc/rspamd" - ]; + cmakeFlags = { + DBDIR = "/var/lib/rspamd"; + DEBIAN_BUILD = true; + LOCAL_CONFDIR = "/etc/rspamd"; + LOGDIR = "/var/log/rspamd"; + RUNDIR = "/var/run/rspamd"; + }; meta = with stdenv.lib; { homepage = https://github.com/vstakhov/rspamd; diff --git a/pkgs/servers/uhub/default.nix b/pkgs/servers/uhub/default.nix index 87d0a0ee45539..59c84c74522ea 100644 --- a/pkgs/servers/uhub/default.nix +++ b/pkgs/servers/uhub/default.nix @@ -36,10 +36,10 @@ stdenv.mkDerivation rec { }) ]; - cmakeFlags = '' - -DSYSTEMD_SUPPORT=ON - ${if tlsSupport then "-DSSL_SUPPORT=ON" else "-DSSL_SUPPORT=OFF"} - ''; + cmakeFlags = { + SSL_SUPPORT = tlSupport; + SYSTEMD_SUPPORT = true; + }; meta = with stdenv.lib; { description = "High performance peer-to-peer hub for the ADC network"; diff --git a/pkgs/stdenv/generic/make-derivation.nix b/pkgs/stdenv/generic/make-derivation.nix index 48ee68f4c00c9..a0735b3be012d 100644 --- a/pkgs/stdenv/generic/make-derivation.nix +++ b/pkgs/stdenv/generic/make-derivation.nix @@ -162,14 +162,21 @@ rec { lib.unique (lib.concatMap (input: input.__propagatedImpureHostDeps or []) (lib.concatLists propagatedDependencies)); - derivationArg = - (removeAttrs attrs - ["meta" "passthru" "pos" - "doCheck" "doInstallCheck" - "checkInputs" "installCheckInputs" - "__impureHostDeps" "__propagatedImpureHostDeps" - "sandboxProfile" "propagatedSandboxProfile"]) - // { + derivationArg = let + baseDerivationArg = (removeAttrs attrs [ + "meta" + "passthru" + "pos" + "doCheck" + "doInstallCheck" + "checkInputs" + "installCheckInputs" + "__impureHostDeps" + "__propagatedImpureHostDeps" + "sandboxProfile" + "setupHookFunc" + "propagatedSandboxProfile" + ]) // { # A hack to make `nix-env -qa` and `nix search` ignore broken packages. # TODO(@oxij): remove this assert when something like NixOS/nix#1771 gets merged into nix. name = assert validity.handled; name + lib.optionalString @@ -236,6 +243,11 @@ rec { ]; __propagatedImpureHostDeps = computedPropagatedImpureHostDeps ++ __propagatedImpureHostDeps; }; + # TODO: use dependencies/propagatedDependencies instead of just nativeBuildInputs? + in lib.foldl' + (drvArg: dep: if dep == null then drvArg else dep.setupHookFunc drvArg) + baseDerivationArg + nativeBuildInputs; validity = import ./check-meta.nix { inherit lib config meta; @@ -283,6 +295,7 @@ rec { validity.handled ({ overrideAttrs = f: mkDerivation (attrs // (f attrs)); + setupHookFunc = attrs.setupHookFunc or lib.id; inherit meta passthru; } // # Pass through extra attributes that are not inputs, but diff --git a/pkgs/tools/X11/virtualgl/lib.nix b/pkgs/tools/X11/virtualgl/lib.nix index c552011f38446..5d21dd0407bcf 100644 --- a/pkgs/tools/X11/virtualgl/lib.nix +++ b/pkgs/tools/X11/virtualgl/lib.nix @@ -9,7 +9,10 @@ stdenv.mkDerivation rec { sha256 = "0f1jp7r4vajiksbiq08hkxd5bjj0jxlw7dy5750s52djg1v3hhsg"; }; - cmakeFlags = [ "-DVGL_SYSTEMFLTK=1" "-DTJPEG_LIBRARY=${libjpeg_turbo.out}/lib/libturbojpeg.so" ]; + cmakeFlags = { + TJPEG_LIBRARY = "${libjpeg_turbo.out}/lib/libturbojpeg.so"; + VGL_SYSTEMFLTK = true; + }; makeFlags = [ "PREFIX=$(out)" ]; diff --git a/pkgs/tools/audio/acoustid-fingerprinter/default.nix b/pkgs/tools/audio/acoustid-fingerprinter/default.nix index f68671bc6fba0..94ec2ab47013d 100644 --- a/pkgs/tools/audio/acoustid-fingerprinter/default.nix +++ b/pkgs/tools/audio/acoustid-fingerprinter/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkgconfig ]; buildInputs = [ cmake qt4 taglib chromaprint ffmpeg ]; - cmakeFlags = [ "-DTAGLIB_MIN_VERSION=${(builtins.parseDrvName taglib.name).version}" ]; + cmakeFlags = { TAGLIB_MIN_VERSION = (builtins.parseDrvName taglib.name).version; }; patches = [ (fetchpatch { url = "https://bitbucket.org/acoustid/acoustid-fingerprinter/commits/632e87969c3a5562a5d4842b03613267ba6236b2/raw"; diff --git a/pkgs/tools/graphics/kst/default.nix b/pkgs/tools/graphics/kst/default.nix index 24d678e114224..7960290e3af20 100644 --- a/pkgs/tools/graphics/kst/default.nix +++ b/pkgs/tools/graphics/kst/default.nix @@ -11,7 +11,10 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake pkgconfig ]; buildInputs = [ qtbase gsl getdata netcdf muparser matio ]; - cmakeFlags = "-Dkst_qt5=1 -Dkst_release=1"; + cmakeFlags = { + kst_qt5 = true; + kst_release = true; + }; postInstall = '' mkdir -p $out diff --git a/pkgs/tools/graphics/pfstools/default.nix b/pkgs/tools/graphics/pfstools/default.nix index 4c1ff50243316..2c367f1b53402 100644 --- a/pkgs/tools/graphics/pfstools/default.nix +++ b/pkgs/tools/graphics/pfstools/default.nix @@ -15,9 +15,7 @@ stdenv.mkDerivation rec { outputs = [ "out" "dev" "man"]; - cmakeFlags = '' - -DWITH_MATLAB=false - ''; + cmakeFlags = { WITH_MATLAB = false; }; nativeBuildInputs = [ cmake pkgconfig ]; buildInputs = [ diff --git a/pkgs/tools/inputmethods/ibus/ibus-qt.nix b/pkgs/tools/inputmethods/ibus/ibus-qt.nix index 8d02d4edde8e2..9226fdb96c3fa 100644 --- a/pkgs/tools/inputmethods/ibus/ibus-qt.nix +++ b/pkgs/tools/inputmethods/ibus/ibus-qt.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { ibus cmake qt4 icu doxygen ]; - cmakeFlags = [ "-DQT_PLUGINS_DIR=lib/qt4/plugins" ]; + cmakeFlags = { QT_PLUGINS_DIR = "lib/qt4/plugins"; }; meta = with stdenv.lib; { homepage = https://github.com/ibus/ibus-qt/; diff --git a/pkgs/tools/networking/badvpn/default.nix b/pkgs/tools/networking/badvpn/default.nix index c9ebc12b0db8e..606e1cde4a0b5 100644 --- a/pkgs/tools/networking/badvpn/default.nix +++ b/pkgs/tools/networking/badvpn/default.nix @@ -26,7 +26,10 @@ stdenv.mkDerivation { preConfigure = '' find . -name '*.sh' -exec sed -e 's@#!/bin/sh@${stdenv.shell}@' -i '{}' ';' find . -name '*.sh' -exec sed -e 's@#!/bin/bash@${bash}/bin/bash@' -i '{}' ';' - cmakeFlagsArray=("-DCMAKE_BUILD_TYPE=" "-DCMAKE_C_FLAGS=${compileFlags}"); + cmakeFlags+=( + "-DCMAKE_BUILD_TYPE=" + "-DCMAKE_C_FLAGS=${compileFlags}" + ); ''; meta = { diff --git a/pkgs/tools/typesetting/pdf2htmlEX/default.nix b/pkgs/tools/typesetting/pdf2htmlEX/default.nix index e0f3681f43d85..7a051383cd395 100644 --- a/pkgs/tools/typesetting/pdf2htmlEX/default.nix +++ b/pkgs/tools/typesetting/pdf2htmlEX/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { patches = [ ./add-glib-cmake.patch ]; - cmakeFlags = [ "-DENABLE_SVG=ON" ]; + cmakeFlags = { ENABLE_SVG = true; }; enableParallelBuilding = true;