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/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/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 06acebd2ba4a8..759c8df0d92f0 100644 --- a/pkgs/development/compilers/emscripten/fastcomp/emscripten-fastcomp.nix +++ b/pkgs/development/compilers/emscripten/fastcomp/emscripten-fastcomp.nix @@ -26,18 +26,17 @@ stdenv.mkDerivation rec { cp -Lr ${srcFL} tools/clang chmod +w -R tools/clang ''; - cmakeFlags = [ - "-DCMAKE_BUILD_TYPE=Release" - "-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 ac078f622515d..da45f60bcad5f 100644 --- a/pkgs/misc/emulators/vbam/default.nix +++ b/pkgs/misc/emulators/vbam/default.nix @@ -41,12 +41,11 @@ stdenv.mkDerivation rec { zlib ]; - cmakeFlags = [ - "-DCMAKE_BUILD_TYPE='Release'" - "-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;