janneke pushed a commit to branch core-packages-team
in repository guix.

commit 3d19db75da4882b599e93d1b395138566036026c
Author: Janneke Nieuwenhuizen <jann...@gnu.org>
AuthorDate: Wed Dec 11 10:54:37 2024 +0100

    Revert "guix: build-system: cmake: Rework cross compilation."
    
    We should probably include this patch set, but no rust world rebuild for me
    right now!
    
    This reverts commit a1dda308571841de1a2c223d7864622d304cdf30.
    
    Change-Id: I5cce844a3059fce21bf9c880a20042cfc1ee4ffa
---
 guix/build-system/cmake.scm       | 20 +-------------------
 guix/build/cmake-build-system.scm | 11 +++++++++++
 2 files changed, 12 insertions(+), 19 deletions(-)

diff --git a/guix/build-system/cmake.scm b/guix/build-system/cmake.scm
index 8a3a183524..0b8a651ee0 100644
--- a/guix/build-system/cmake.scm
+++ b/guix/build-system/cmake.scm
@@ -39,15 +39,6 @@
 ;;
 ;; Code:
 
-(define* (cmake-system-name-for-target
-          #:optional (target (or (%current-target-system)
-                                 (%current-system))))
-  (cond ((target-hurd? target)  "GNU")
-        ((target-linux? target) "Linux")
-        ((target-mingw? target) "Windows")
-        ;; For avr, or1k-elf, xtensa-ath9k-elf
-        (else "Generic")))
-
 (define %cmake-build-system-modules
   ;; Build-side modules imported by default.
   `((guix build cmake-build-system)
@@ -240,16 +231,7 @@ build system."
                                                  
search-path-specification->sexp
                                                  native-search-paths)
                        #:phases #$phases
-                       #:configure-flags
-                       `(#$(string-append "-DCMAKE_C_COMPILER="
-                                          (cc-for-target target))
-                         #$(string-append "-DCMAKE_CXX_COMPILER="
-                                          (cxx-for-target target))
-                         #$(string-append "-DCMAKE_SYSTEM_NAME="
-                                          (cmake-system-name-for-target 
target))
-                         ,@#$(if (pair? configure-flags)
-                                 (sexp->gexp configure-flags)
-                                 configure-flags))
+                       #:configure-flags #$configure-flags
                        #:make-flags #$make-flags
                        #:out-of-source? #$out-of-source?
                        #:build-type #$build-type
diff --git a/guix/build/cmake-build-system.scm 
b/guix/build/cmake-build-system.scm
index 61033061c6..d1ff5071be 100644
--- a/guix/build/cmake-build-system.scm
+++ b/guix/build/cmake-build-system.scm
@@ -62,6 +62,17 @@
                   ,(string-append "-DCMAKE_INSTALL_RPATH=" out "/lib")
                   ;; enable verbose output from builds
                   "-DCMAKE_VERBOSE_MAKEFILE=ON"
+
+                  ;;  Cross-build
+                  ,@(if target
+                        (list (string-append "-DCMAKE_C_COMPILER="
+                                             target "-gcc")
+                              (string-append "-DCMAKE_CXX_COMPILER="
+                                             target "-g++")
+                              (if (string-contains target "mingw")
+                                  "-DCMAKE_SYSTEM_NAME=Windows"
+                                  "-DCMAKE_SYSTEM_NAME=Linux"))
+                        '())
                   ,@configure-flags)))
       (format #t "running 'cmake' with arguments ~s~%" args)
       (apply invoke "cmake" args))))

Reply via email to