Hello,
with reference to this thread:

https://cygwin.com/pipermail/cygwin/2024-July/256237.html

I added support for setting CMAKE_SYSTEM_PROCESSOR when cross
compiling packages with Cygport.
Until now, this fix allowed me to build all packages that I need with
my new cross compilers.

I hope that you will find this patch useful.
Sincerely,

Carlo Bramini.
diff --git a/cygclass/cmake.cygclass b/cygclass/cmake.cygclass
index d2a7ef0..e859be0 100644
--- a/cygclass/cmake.cygclass
+++ b/cygclass/cmake.cygclass
@@ -82,6 +82,20 @@ __cmake_system() {
        echo -n ${cmsys}
 }
 
+__cmake_processor() {
+       local cmproc
+
+       case ${CHOST} in
+       x86_64-*)         cmproc="x86_64" ;;
+       i586-*)           cmproc="i586" ;;
+       i686-*)           cmproc="i686" ;;
+       aarch64-*)        cmproc="aarch64" ;;
+       *)                cmproc="" ;;
+       esac
+
+       echo -n ${cmproc}
+}
+
 #****C* cmake.cygclass/cygcmake
 #  SYNOPSIS
 #  cygcmake [OPTIONS]
@@ -102,7 +116,7 @@ __cmake_system() {
 #  cmake
 #****
 cygcmake() {
-       local buildtype cmdir crossargs exeext;
+       local buildtype cmdir crossargs exeext cmproc;
 
        check_prog_req cmake;
 
@@ -146,6 +160,13 @@ cygcmake() {
                        -DCMAKE_FIND_ROOT_PATH=$(${CC} -print-sysroot)
                        -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY
                        -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY"
+               cmproc=$(__cmake_processor)
+               if [ -z ${cmproc} ]
+               then
+                       warning "CMAKE_SYSTEM_PROCESSOR is undefined. Please 
add support for ${CHOST}."
+               else
+                       crossargs+=" -DCMAKE_SYSTEM_PROCESSOR=${cmproc}"
+               fi
                case ${CHOST} in *-cygwin*|*-mingw*)
                        crossargs+=" -DCMAKE_RC_COMPILER=$(which 
${CHOST}-windres${exeext})"
                        ;;

Reply via email to