build-system/cmake: Build out of source tree by default.
* guix/build-system/cmake.scm (cmake-build): Change 'out-of-source?' to default to #t. * guix/build/cmake-build-system.scm (configure): Add 'out-of-source?' keyword parameter and honor it.
This commit is contained in:
parent
b4f0bb1771
commit
977f03ffd3
|
@ -48,7 +48,7 @@
|
||||||
(search-paths '())
|
(search-paths '())
|
||||||
(make-flags ''())
|
(make-flags ''())
|
||||||
(cmake (default-cmake))
|
(cmake (default-cmake))
|
||||||
(out-of-source? #f)
|
(out-of-source? #t)
|
||||||
(tests? #t)
|
(tests? #t)
|
||||||
(test-target "test")
|
(test-target "test")
|
||||||
(parallel-build? #t) (parallel-tests? #f)
|
(parallel-build? #t) (parallel-tests? #f)
|
||||||
|
|
|
@ -31,18 +31,28 @@
|
||||||
;;
|
;;
|
||||||
;; Code:
|
;; Code:
|
||||||
|
|
||||||
(define* (configure #:key outputs (configure-flags '())
|
(define* (configure #:key outputs (configure-flags '()) (out-of-source? #t)
|
||||||
#:allow-other-keys)
|
#:allow-other-keys)
|
||||||
"Configure the given package."
|
"Configure the given package."
|
||||||
(let ((out (assoc-ref outputs "out")))
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
(if (file-exists? "CMakeLists.txt")
|
(abs-srcdir (getcwd))
|
||||||
(let ((args `(,(string-append "-DCMAKE_INSTALL_PREFIX=" out)
|
(srcdir (if out-of-source?
|
||||||
|
(string-append "../" (basename abs-srcdir))
|
||||||
|
".")))
|
||||||
|
(format #t "source directory: ~s (relative from build: ~s)~%"
|
||||||
|
abs-srcdir srcdir)
|
||||||
|
(when out-of-source?
|
||||||
|
(mkdir "../build")
|
||||||
|
(chdir "../build"))
|
||||||
|
(format #t "build directory: ~s~%" (getcwd))
|
||||||
|
|
||||||
|
(let ((args `(,srcdir
|
||||||
|
,(string-append "-DCMAKE_INSTALL_PREFIX=" out)
|
||||||
,@configure-flags)))
|
,@configure-flags)))
|
||||||
(setenv "CMAKE_LIBRARY_PATH" (getenv "LIBRARY_PATH"))
|
(setenv "CMAKE_LIBRARY_PATH" (getenv "LIBRARY_PATH"))
|
||||||
(setenv "CMAKE_INCLUDE_PATH" (getenv "CPATH"))
|
(setenv "CMAKE_INCLUDE_PATH" (getenv "CPATH"))
|
||||||
(format #t "running 'cmake' with arguments ~s~%" args)
|
(format #t "running 'cmake' with arguments ~s~%" args)
|
||||||
(zero? (apply system* "cmake" args)))
|
(zero? (apply system* "cmake" args)))))
|
||||||
(error "no CMakeLists.txt found"))))
|
|
||||||
|
|
||||||
(define* (check #:key (tests? #t) (parallel-tests? #t) (test-target "test")
|
(define* (check #:key (tests? #t) (parallel-tests? #t) (test-target "test")
|
||||||
#:allow-other-keys)
|
#:allow-other-keys)
|
||||||
|
|
Loading…
Reference in New Issue