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 '())
|
||||
(make-flags ''())
|
||||
(cmake (default-cmake))
|
||||
(out-of-source? #f)
|
||||
(out-of-source? #t)
|
||||
(tests? #t)
|
||||
(test-target "test")
|
||||
(parallel-build? #t) (parallel-tests? #f)
|
||||
|
|
|
@ -31,18 +31,28 @@
|
|||
;;
|
||||
;; Code:
|
||||
|
||||
(define* (configure #:key outputs (configure-flags '())
|
||||
(define* (configure #:key outputs (configure-flags '()) (out-of-source? #t)
|
||||
#:allow-other-keys)
|
||||
"Configure the given package."
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(if (file-exists? "CMakeLists.txt")
|
||||
(let ((args `(,(string-append "-DCMAKE_INSTALL_PREFIX=" out)
|
||||
,@configure-flags)))
|
||||
(setenv "CMAKE_LIBRARY_PATH" (getenv "LIBRARY_PATH"))
|
||||
(setenv "CMAKE_INCLUDE_PATH" (getenv "CPATH"))
|
||||
(format #t "running 'cmake' with arguments ~s~%" args)
|
||||
(zero? (apply system* "cmake" args)))
|
||||
(error "no CMakeLists.txt found"))))
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(abs-srcdir (getcwd))
|
||||
(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)))
|
||||
(setenv "CMAKE_LIBRARY_PATH" (getenv "LIBRARY_PATH"))
|
||||
(setenv "CMAKE_INCLUDE_PATH" (getenv "CPATH"))
|
||||
(format #t "running 'cmake' with arguments ~s~%" args)
|
||||
(zero? (apply system* "cmake" args)))))
|
||||
|
||||
(define* (check #:key (tests? #t) (parallel-tests? #t) (test-target "test")
|
||||
#:allow-other-keys)
|
||||
|
|
Loading…
Reference in New Issue