unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* [PATCH] gnu: Add cmake.
@ 2013-03-12  3:52 Cyril Roelandt
  2013-03-14 17:39 ` Ludovic Courtès
  0 siblings, 1 reply; 5+ messages in thread
From: Cyril Roelandt @ 2013-03-12  3:52 UTC (permalink / raw
  To: bug-guix

* gnu/packages/cmake.scm: New file.
* gnu/packages/patches/cmake-fix-tests.patch: New file.
* Makefile.am: Add them.
---
Hello!

This patch adds cmake, which will be useful to package other pieces of software.

WBR,
Cyril.

 Makefile.am                                |    2 +
 gnu/packages/cmake.scm                     |   78 ++++++++++++++++++++++++++++
 gnu/packages/patches/cmake-fix-tests.patch |   43 +++++++++++++++
 3 files changed, 123 insertions(+)
 create mode 100644 gnu/packages/cmake.scm
 create mode 100644 gnu/packages/patches/cmake-fix-tests.patch

diff --git a/Makefile.am b/Makefile.am
index 5764f3c..971ab9e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -67,6 +67,7 @@ MODULES =					\
   gnu/packages/bootstrap.scm			\
   gnu/packages/cdrom.scm			\
   gnu/packages/check.scm			\
+  gnu/packages/cmake.scm			\
   gnu/packages/compression.scm			\
   gnu/packages/cpio.scm				\
   gnu/packages/curl.scm				\
@@ -186,6 +187,7 @@ dist_patch_DATA =						\
   gnu/packages/patches/automake-skip-amhello-tests.patch	\
   gnu/packages/patches/bigloo-gc-shebangs.patch			\
   gnu/packages/patches/binutils-ld-new-dtags.patch		\
+  gnu/packages/patches/cmake-fix-tests.patch			\
   gnu/packages/patches/cpio-gets-undeclared.patch		\
   gnu/packages/patches/diffutils-gets-undeclared.patch		\
   gnu/packages/patches/emacs-configure-sh.patch			\
diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm
new file mode 100644
index 0000000..734f55f
--- /dev/null
+++ b/gnu/packages/cmake.scm
@@ -0,0 +1,78 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages cmake)
+  #:use-module (guix licenses)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages file))
+
+(define-public cmake
+  (package
+    (name "cmake")
+    (version "2.8.10.2")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append
+                   "http://www.cmake.org/files/v"
+                   (substring version 0
+                    (string-index version #\. (+ 1 (string-index version #\.))))
+                   "/cmake-" version ".tar.gz"))
+             (sha256
+              (base32 "1c8fj6i2x9sb39wc9av2ighj415mw33cxfrlfpafcvm0knrlylnf"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:test-target "test"
+       #:patches (list (assoc-ref %build-inputs "fix-tests"))
+       #:patch-flags '("-p0")
+       #:phases (alist-replace
+                 'configure
+                 (lambda* (#:key outputs #:allow-other-keys)
+                   (let ((out (assoc-ref outputs "out")))
+                     ;; Replace "/bin/sh" by the right path in... a lot of
+                     ;; files.
+                     (substitute*
+                       '("Modules/CompilerId/Xcode-3.pbxproj.in"
+                         "Modules/CompilerId/Xcode-1.pbxproj.in"
+                         "Modules/CompilerId/Xcode-2.pbxproj.in"
+                         "Modules/CPack.RuntimeScript.in"
+                         "Source/cmakexbuild.cxx"
+                         "Source/cmGlobalXCodeGenerator.cxx"
+                         "Source/CTest/cmCTestBatchTestHandler.cxx"
+                         "Source/cmLocalUnixMakefileGenerator3.cxx"
+                         "Utilities/cmbzip2/Makefile-libbz2_so"
+                         "Utilities/Release/release_cmake.cmake"
+                         "Utilities/cmlibarchive/libarchive/archive_write_set_format_shar.c"
+                         "Tests/CMakeLists.txt")
+                       (("/bin/sh") (which "sh")))
+                     (zero? (system* "./configure"
+                             (string-append "--prefix=" out)))))
+                 %standard-phases)))
+    (inputs
+     `(("file" ,file)
+       ("fix-tests" ,(search-patch "cmake-fix-tests.patch"))))
+    (home-page "http://www.cmake.org/")
+    (synopsis "A cross-platform, open-source build system")
+    (description
+     "CMake is a family of tools designed to build, test and package software.
+CMake is used to control the software compilation process using simple platform
+and compiler independent configuration files. CMake generates native makefiles
+and workspaces that can be used in the compiler environment of your choice.")
+    (license bsd-3)))
diff --git a/gnu/packages/patches/cmake-fix-tests.patch b/gnu/packages/patches/cmake-fix-tests.patch
new file mode 100644
index 0000000..0ac6db5
--- /dev/null
+++ b/gnu/packages/patches/cmake-fix-tests.patch
@@ -0,0 +1,43 @@
+--- Tests/CMakeLists.txt	2013-03-11 00:52:09.000000000 +0100
++++ Tests/CMakeLists.txt	2013-03-11 03:38:57.000000000 +0100
+@@ -1706,16 +1706,16 @@
+     PASS_REGULAR_EXPRESSION "Could not find executable"
+     FAIL_REGULAR_EXPRESSION "SegFault")
+ 
+-  configure_file(
+-    "${CMake_SOURCE_DIR}/Tests/CTestTestUpload/test.cmake.in"
+-    "${CMake_BINARY_DIR}/Tests/CTestTestUpload/test.cmake"
+-    @ONLY ESCAPE_QUOTES)
+-  add_test(CTestTestUpload ${CMAKE_CTEST_COMMAND}
+-    -S "${CMake_BINARY_DIR}/Tests/CTestTestUpload/test.cmake" -V
+-    --output-log "${CMake_BINARY_DIR}/Tests/CTestTestUpload/testOut.log"
+-    )
+-  set_tests_properties(CTestTestUpload PROPERTIES
+-    PASS_REGULAR_EXPRESSION "Upload\\.xml")
++#  configure_file(
++#    "${CMake_SOURCE_DIR}/Tests/CTestTestUpload/test.cmake.in"
++#    "${CMake_BINARY_DIR}/Tests/CTestTestUpload/test.cmake"
++#    @ONLY ESCAPE_QUOTES)
++#  add_test(CTestTestUpload ${CMAKE_CTEST_COMMAND}
++#    -S "${CMake_BINARY_DIR}/Tests/CTestTestUpload/test.cmake" -V
++#    --output-log "${CMake_BINARY_DIR}/Tests/CTestTestUpload/testOut.log"
++#    )
++#  set_tests_properties(CTestTestUpload PROPERTIES
++#    PASS_REGULAR_EXPRESSION "Upload\\.xml")
+ 
+   configure_file(
+     "${CMake_SOURCE_DIR}/Tests/CTestTestConfigFileInBuildDir/test1.cmake.in"
+--- Utilities/cmcurl/CMakeLists.txt	2012-11-27 14:26:34.000000000 +0100
++++ Utilities/cmcurl/CMakeLists.txt	2013-03-11 03:59:06.000000000 +0100
+@@ -729,8 +729,8 @@
+ ADD_EXECUTABLE(LIBCURL Testing/curltest.c)
+ TARGET_LINK_LIBRARIES(LIBCURL cmcurl ${CMAKE_DL_LIBS})
+ 
+-IF(CMAKE_CURL_TEST_URL)
+-  ADD_TEST(curl LIBCURL ${CMAKE_CURL_TEST_URL})
+-ENDIF(CMAKE_CURL_TEST_URL)
++#IF(CMAKE_CURL_TEST_URL)
++#  ADD_TEST(curl LIBCURL ${CMAKE_CURL_TEST_URL})
++#ENDIF(CMAKE_CURL_TEST_URL)
+ 
+ INSTALL(FILES COPYING DESTINATION ${CMake_DOC_DEST}/cmcurl)
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] gnu: Add cmake.
  2013-03-12  3:52 [PATCH] gnu: Add cmake Cyril Roelandt
@ 2013-03-14 17:39 ` Ludovic Courtès
  2013-03-15  2:12   ` Cyril Roelandt
  0 siblings, 1 reply; 5+ messages in thread
From: Ludovic Courtès @ 2013-03-14 17:39 UTC (permalink / raw
  To: Cyril Roelandt; +Cc: bug-guix

Cyril Roelandt <tipecaml@gmail.com> skribis:

> * gnu/packages/cmake.scm: New file.
> * gnu/packages/patches/cmake-fix-tests.patch: New file.
> * Makefile.am: Add them.

Thanks!  Can you add a comment at the top of the patch saying what it
does, why, with a pointer to any relevant mailing list discussion or
documentation?

Ideally all patches should eventually be submitted upstream, but
sometimes it’s not desirable, because the changes would too specific or
intrusive.  State it in the patch if that is the case.

Other than that, looks good to me, so feel free to push then.

It would be great to have a ‘cmake-build-system’, which would be based
on ‘gnu-build-system’ but with specific ‘configure’ and ‘test’ phases.
See guix/build-system/perl.scm and related files for an example.  :-)

Ludo’.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] gnu: Add cmake.
  2013-03-14 17:39 ` Ludovic Courtès
@ 2013-03-15  2:12   ` Cyril Roelandt
  2013-03-15 10:41     ` Ludovic Courtès
  0 siblings, 1 reply; 5+ messages in thread
From: Cyril Roelandt @ 2013-03-15  2:12 UTC (permalink / raw
  To: Ludovic Courtès; +Cc: bug-guix

On 03/14/2013 06:39 PM, Ludovic Courtès wrote:
> Cyril Roelandt<tipecaml@gmail.com>  skribis:
>
>> * gnu/packages/cmake.scm: New file.
>> * gnu/packages/patches/cmake-fix-tests.patch: New file.
>> * Makefile.am: Add them.
>
> Thanks!  Can you add a comment at the top of the patch saying what it
> does, why, with a pointer to any relevant mailing list discussion or
> documentation?
>

Sure.

> Ideally all patches should eventually be submitted upstream, but
> sometimes it’s not desirable, because the changes would too specific or
> intrusive.  State it in the patch if that is the case.
>

Here, these tests require network connectivity, so I don't think 
upstream will accept the patches.

> Other than that, looks good to me, so feel free to push then.
>
> It would be great to have a ‘cmake-build-system’, which would be based
> on ‘gnu-build-system’ but with specific ‘configure’ and ‘test’ phases.
> See guix/build-system/perl.scm and related files for an example.  :-)
>

I'll have to try and package a piece of software requiring cmake, then :)

Cyril.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] gnu: Add cmake.
  2013-03-15  2:12   ` Cyril Roelandt
@ 2013-03-15 10:41     ` Ludovic Courtès
  2013-03-21 18:55       ` Cyril Roelandt
  0 siblings, 1 reply; 5+ messages in thread
From: Ludovic Courtès @ 2013-03-15 10:41 UTC (permalink / raw
  To: Cyril Roelandt; +Cc: bug-guix

Cyril Roelandt <tipecaml@gmail.com> skribis:

> On 03/14/2013 06:39 PM, Ludovic Courtès wrote:

[...]

>> Ideally all patches should eventually be submitted upstream, but
>> sometimes it’s not desirable, because the changes would too specific or
>> intrusive.  State it in the patch if that is the case.
>>
>
> Here, these tests require network connectivity, so I don't think
> upstream will accept the patches.

Ah OK.  Then just specify it in the patch header.

>> Other than that, looks good to me, so feel free to push then.
>>
>> It would be great to have a ‘cmake-build-system’, which would be based
>> on ‘gnu-build-system’ but with specific ‘configure’ and ‘test’ phases.
>> See guix/build-system/perl.scm and related files for an example.  :-)
>>
>
> I'll have to try and package a piece of software requiring cmake, then :)

Of course!  :-)

Ludo’.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] gnu: Add cmake.
  2013-03-15 10:41     ` Ludovic Courtès
@ 2013-03-21 18:55       ` Cyril Roelandt
  0 siblings, 0 replies; 5+ messages in thread
From: Cyril Roelandt @ 2013-03-21 18:55 UTC (permalink / raw
  To: Ludovic Courtès; +Cc: bug-guix

On 03/15/2013 11:41 AM, Ludovic Courtès wrote:
> Cyril Roelandt<tipecaml@gmail.com>  skribis:
>
>> On 03/14/2013 06:39 PM, Ludovic Courtès wrote:
>
> [...]
>
>>> Ideally all patches should eventually be submitted upstream, but
>>> sometimes it’s not desirable, because the changes would too specific or
>>> intrusive.  State it in the patch if that is the case.
>>>
>>
>> Here, these tests require network connectivity, so I don't think
>> upstream will accept the patches.
>
> Ah OK.  Then just specify it in the patch header.
>

Done, thanks for your review.

Cyril.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-03-21 19:07 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-12  3:52 [PATCH] gnu: Add cmake Cyril Roelandt
2013-03-14 17:39 ` Ludovic Courtès
2013-03-15  2:12   ` Cyril Roelandt
2013-03-15 10:41     ` Ludovic Courtès
2013-03-21 18:55       ` Cyril Roelandt

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).