From f3ac052f24cc07126f05654c18be31b4ed0e452d Mon Sep 17 00:00:00 2001 From: Bernd Amend Date: Sun, 3 Sep 2017 23:59:58 +0200 Subject: [PATCH 1/2] cmake: 3.8.2 -> 3.9.1 --- .../tools/build-managers/cmake/default.nix | 10 +-- .../cmake/search-path-3.2.patch | 77 ------------------- .../cmake/search-path-3.9.patch | 62 +++++++++++++++ 3 files changed, 67 insertions(+), 82 deletions(-) delete mode 100644 pkgs/development/tools/build-managers/cmake/search-path-3.2.patch create mode 100644 pkgs/development/tools/build-managers/cmake/search-path-3.9.patch diff --git a/pkgs/development/tools/build-managers/cmake/default.nix b/pkgs/development/tools/build-managers/cmake/default.nix index 13c404374b0..2668489e58b 100644 --- a/pkgs/development/tools/build-managers/cmake/default.nix +++ b/pkgs/development/tools/build-managers/cmake/default.nix @@ -12,8 +12,8 @@ with stdenv.lib; let os = stdenv.lib.optionalString; - majorVersion = "3.8"; - minorVersion = "2"; + majorVersion = "3.9"; + minorVersion = "1"; version = "${majorVersion}.${minorVersion}"; in @@ -24,8 +24,8 @@ stdenv.mkDerivation rec { src = fetchurl { url = "${meta.homepage}files/v${majorVersion}/cmake-${version}.tar.gz"; - # from https://cmake.org/files/v3.8/cmake-3.8.2-SHA-256.txt - sha256 = "da3072794eb4c09f2d782fcee043847b99bb4cf8d4573978d9b2024214d6e92d"; + # from https://cmake.org/files/v3.9/cmake-3.9.1-SHA-256.txt + sha256 = "d768ee83d217f91bb597b3ca2ac663da7a8603c97e1f1a5184bc01e0ad2b12bb"; }; prePatch = optionalString (!useSharedLibraries) '' @@ -34,7 +34,7 @@ stdenv.mkDerivation rec { ''; # Don't search in non-Nix locations such as /usr, but do search in our libc. - patches = [ ./search-path-3.2.patch ] + patches = [ ./search-path-3.9.patch ] ++ optional stdenv.isCygwin ./3.2.2-cygwin.patch; outputs = [ "out" ]; diff --git a/pkgs/development/tools/build-managers/cmake/search-path-3.2.patch b/pkgs/development/tools/build-managers/cmake/search-path-3.2.patch deleted file mode 100644 index 623a7208a86..00000000000 --- a/pkgs/development/tools/build-managers/cmake/search-path-3.2.patch +++ /dev/null @@ -1,77 +0,0 @@ -diff -ru3 cmake-3.4.3/Modules/Platform/UnixPaths.cmake cmake-3.4.3-new/Modules/Platform/UnixPaths.cmake ---- cmake-3.4.3/Modules/Platform/UnixPaths.cmake 2016-01-25 19:57:19.000000000 +0300 -+++ cmake-3.4.3-new/Modules/Platform/UnixPaths.cmake 2016-04-14 00:20:08.963492213 +0300 -@@ -32,9 +32,6 @@ - # List common installation prefixes. These will be used for all - # search types. - list(APPEND CMAKE_SYSTEM_PREFIX_PATH -- # Standard -- /usr/local /usr / -- - # CMake install location - "${_CMAKE_INSTALL_DIR}" - ) -@@ -53,44 +50,25 @@ - - # List common include file locations not under the common prefixes. - list(APPEND CMAKE_SYSTEM_INCLUDE_PATH -- # Windows API on Cygwin -- /usr/include/w32api -- -- # X11 -- /usr/X11R6/include /usr/include/X11 -- -- # Other -- /usr/pkg/include -- /opt/csw/include /opt/include -- /usr/openwin/include -+ @libc_dev@/include - ) -- - list(APPEND CMAKE_SYSTEM_LIBRARY_PATH -- # Windows API on Cygwin -- /usr/lib/w32api -- -- # X11 -- /usr/X11R6/lib /usr/lib/X11 -- -- # Other -- /usr/pkg/lib -- /opt/csw/lib /opt/lib -- /usr/openwin/lib -+ @libc_lib@/lib - ) - - list(APPEND CMAKE_SYSTEM_PROGRAM_PATH -- /usr/pkg/bin -+ @libc_bin@/bin - ) - - list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES -- /lib /lib32 /lib64 /usr/lib /usr/lib32 /usr/lib64 -+ @libc_lib@/lib - ) - - list(APPEND CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES -- /usr/include -+ @libc_dev@/include - ) - list(APPEND CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES -- /usr/include -+ @libc_dev@/include - ) - - # Enable use of lib64 search path variants by default. -diff -ur cmake-3.7.2-orig/Modules/Platform/WindowsPaths.cmake cmake-3.7.2/Modules/Platform/WindowsPaths.cmake ---- cmake-3.7.2-orig/Modules/Platform/WindowsPaths.cmake 2017-04-26 09:08:39.095674666 -0700 -+++ cmake-3.7.2/Modules/Platform/WindowsPaths.cmake 2017-04-28 22:32:10.379015998 -0700 -@@ -66,7 +66,7 @@ - - if(CMAKE_CROSSCOMPILING AND NOT CMAKE_HOST_SYSTEM_NAME MATCHES "Windows") - # MinGW (useful when cross compiling from linux with CMAKE_FIND_ROOT_PATH set) -- list(APPEND CMAKE_SYSTEM_PREFIX_PATH /) -+ # list(APPEND CMAKE_SYSTEM_PREFIX_PATH /) - endif() - - list(APPEND CMAKE_SYSTEM_INCLUDE_PATH -diff -ur cmake-3.7.2-orig/Source/cmFindPackageCommand.cxx cmake-3.7.2/Source/cmFindPackageCommand.cxx diff --git a/pkgs/development/tools/build-managers/cmake/search-path-3.9.patch b/pkgs/development/tools/build-managers/cmake/search-path-3.9.patch new file mode 100644 index 00000000000..6213138402b --- /dev/null +++ b/pkgs/development/tools/build-managers/cmake/search-path-3.9.patch @@ -0,0 +1,62 @@ +diff -ur cmake-3.9.1/Modules/Platform/UnixPaths.cmake cmake-3.9.1-mod/Modules/Platform/UnixPaths.cmake +--- cmake-3.9.1/Modules/Platform/UnixPaths.cmake 2017-08-10 13:36:32.000000000 +0000 ++++ cmake-3.9.1-mod/Modules/Platform/UnixPaths.cmake 2017-09-03 01:24:31.901473539 +0000 +@@ -22,9 +22,6 @@ + # List common installation prefixes. These will be used for all + # search types. + list(APPEND CMAKE_SYSTEM_PREFIX_PATH +- # Standard +- /usr/local /usr / +- + # CMake install location + "${_CMAKE_INSTALL_DIR}" + ) +@@ -43,31 +40,26 @@ + + # Non "standard" but common install prefixes + list(APPEND CMAKE_SYSTEM_PREFIX_PATH +- /usr/X11R6 +- /usr/pkg +- /opt + ) + + # List common include file locations not under the common prefixes. + list(APPEND CMAKE_SYSTEM_INCLUDE_PATH +- # X11 +- /usr/include/X11 ++ @libc_dev@/include + ) + + list(APPEND CMAKE_SYSTEM_LIBRARY_PATH +- # X11 +- /usr/lib/X11 ++ @libc_lib@/lib + ) + + list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES +- /lib /lib32 /lib64 /usr/lib /usr/lib32 /usr/lib64 ++ @libc_lib@/lib + ) + + list(APPEND CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES +- /usr/include ++ @libc_dev@/include + ) + list(APPEND CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES +- /usr/include ++ @libc_dev@/include + ) + + # Enable use of lib32 and lib64 search path variants by default. +diff -ur cmake-3.9.1/Modules/Platform/WindowsPaths.cmake cmake-3.9.1-mod/Modules/Platform/WindowsPaths.cmake +--- cmake-3.9.1/Modules/Platform/WindowsPaths.cmake 2017-08-10 13:36:32.000000000 +0000 ++++ cmake-3.9.1-mod/Modules/Platform/WindowsPaths.cmake 2017-09-03 01:19:32.808355986 +0000 +@@ -66,7 +66,7 @@ + + if(CMAKE_CROSSCOMPILING AND NOT CMAKE_HOST_SYSTEM_NAME MATCHES "Windows") + # MinGW (useful when cross compiling from linux with CMAKE_FIND_ROOT_PATH set) +- list(APPEND CMAKE_SYSTEM_PREFIX_PATH /) ++ # list(APPEND CMAKE_SYSTEM_PREFIX_PATH /) + endif() + + list(APPEND CMAKE_SYSTEM_INCLUDE_PATH From b49b9da3ce990d4420145dc1a4dd43fd8fa71ee0 Mon Sep 17 00:00:00 2001 From: Bernd Amend Date: Mon, 4 Sep 2017 00:54:34 +0200 Subject: [PATCH 2/2] cmake: add withQt5 option and make it the default --- .../tools/build-managers/cmake/default.nix | 11 ++++++++--- pkgs/top-level/all-packages.nix | 5 +++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/pkgs/development/tools/build-managers/cmake/default.nix b/pkgs/development/tools/build-managers/cmake/default.nix index 2668489e58b..a912b04d217 100644 --- a/pkgs/development/tools/build-managers/cmake/default.nix +++ b/pkgs/development/tools/build-managers/cmake/default.nix @@ -6,8 +6,12 @@ , useSharedLibraries ? (!isBootstrap && !stdenv.isCygwin) , useNcurses ? false, ncurses , useQt4 ? false, qt4 +, withQt5 ? false, qtbase }: +assert withQt5 -> useQt4 == false; +assert useQt4 -> withQt5 == false; + with stdenv.lib; let @@ -18,7 +22,7 @@ let in stdenv.mkDerivation rec { - name = "cmake-${os isBootstrap "boot-"}${os useNcurses "cursesUI-"}${os useQt4 "qt4UI-"}${version}"; + name = "cmake-${os isBootstrap "boot-"}${os useNcurses "cursesUI-"}${os withQt5 "qt5UI-"}${os useQt4 "qt4UI-"}${version}"; inherit majorVersion; @@ -46,7 +50,8 @@ stdenv.mkDerivation rec { [ setupHook pkgconfig ] ++ optionals useSharedLibraries [ bzip2 curl expat libarchive xz zlib libuv rhash ] ++ optional useNcurses ncurses - ++ optional useQt4 qt4; + ++ optional useQt4 qt4 + ++ optional withQt5 qtbase; propagatedBuildInputs = optional stdenv.isDarwin ps; @@ -63,7 +68,7 @@ stdenv.mkDerivation rec { configureFlags = [ "--docdir=share/doc/${name}" ] ++ (if useSharedLibraries then [ "--no-system-jsoncpp" "--system-libs" ] else [ "--no-system-libs" ]) # FIXME: cleanup - ++ optional useQt4 "--qt-gui" + ++ optional (useQt4 || withQt5) "--qt-gui" ++ optionals (!useNcurses) [ "--" "-DBUILD_CursesDialog=OFF" ]; dontUseCmakeConfigure = true; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9c0671ef80a..cb5e45afbcb 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6882,13 +6882,14 @@ with pkgs; inherit (darwin) ps; }; - cmake = callPackage ../development/tools/build-managers/cmake { + cmake = libsForQt5.callPackage ../development/tools/build-managers/cmake { inherit (darwin) ps; }; cmakeCurses = cmake.override { useNcurses = true; }; - cmakeWithGui = cmakeCurses.override { useQt4 = true; }; + cmakeWithGui = cmakeCurses.override { withQt5 = true; }; + cmakeWithQt4Gui = cmakeCurses.override { useQt4 = true; }; # Does not actually depend on Qt 5 inherit (kdeFrameworks) extra-cmake-modules kapidox kdoctools;