[cygport - the Cygwin packaging tool] branch topic/mingw, updated. 0.34.0-32-g8544a0b
Yaakov Selkowitz
yselkowitz@sourceware.org
Fri May 15 04:15:55 GMT 2020
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/cygport.git;h=8544a0b9eb893e6dc34061f94f931ba19b8fb201
commit 8544a0b9eb893e6dc34061f94f931ba19b8fb201
Author: Yaakov Selkowitz <yselkowi@redhat.com>
Date: Fri May 15 00:15:19 2020 -0400
mingw: better handle variable overrides
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/cygport.git;h=6df7ece1c6b86b70e6d981ddf95e672f6ed9876c
commit 6df7ece1c6b86b70e6d981ddf95e672f6ed9876c
Author: Yaakov Selkowitz <yselkowi@redhat.com>
Date: Tue May 12 18:29:28 2020 -0400
cmake: define CMAKE_SYSTEM_PROCESSOR when cross-compiling
Diff:
---
cygclass/cmake.cygclass | 7 ++--
cygclass/mingw-internal.cygclass | 77 ++++++++++++++++++----------------------
2 files changed, 39 insertions(+), 45 deletions(-)
diff --git a/cygclass/cmake.cygclass b/cygclass/cmake.cygclass
index fe06e9d..528ea63 100644
--- a/cygclass/cmake.cygclass
+++ b/cygclass/cmake.cygclass
@@ -40,7 +40,7 @@
inherit ninja
-__cmake_system() {
+__cmake_system_name() {
local cmsys
# FIXME: do binutils/gcc really support all these?
@@ -141,7 +141,8 @@ cygcmake() {
if cross_compiling
then
- crossargs="-DCMAKE_SYSTEM_NAME=$(__cmake_system)
+ crossargs="-DCMAKE_SYSTEM_NAME=$(__cmake_system_name)
+ -DCMAKE_SYSTEM_PROCESSOR=${CHOST%%-*}
-D_CMAKE_TOOLCHAIN_PREFIX=${CHOST}-
-DCMAKE_FIND_ROOT_PATH=${CC_SYSROOT}
-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY
@@ -228,4 +229,4 @@ src_install() {
}
#****
-readonly -f __cmake_system cygcmake
+readonly -f __cmake_system_name cygcmake
diff --git a/cygclass/mingw-internal.cygclass b/cygclass/mingw-internal.cygclass
index 3ccd5c7..68a7ebf 100644
--- a/cygclass/mingw-internal.cygclass
+++ b/cygclass/mingw-internal.cygclass
@@ -60,67 +60,60 @@ __mingw_init() {
}
__mingw_wrapper() {
- local ovar var
- local toolvars=(CC=gcc CXX=g++ F77=gfortran FC=gfortran OBJC=gcc OBJCXX=g++ \
- AR=ar DLLTOOL=dlltool NM=nm OBJDUMP=objdump RANLIB=ranlib \
- RC=windres STRIP=strip PKG_CONFIG=pkg-config QT5_QMAKE=qmake-qt5)
- local miscvars=(CHOST CTARGET CC_SYSROOT)
- local expvars=(CFLAGS CXXFLAGS)
-
- __check_triplet ${1}
-
- for var in ${miscvars[*]} ${toolvars[*]%=*} ${expvars[*]}
- do
- ovar="orig_${var}"
- local ${ovar}="${!var}"
- done
- declare -g CHOST=${1}
+ local mingw_cc mingw_cxx
+ local tgt=${1}
shift
- declare -g CTARGET=${CHOST}
- declare -g CC_SYSROOT=/usr/${CHOST}/sys-root
- # mingw-w64 actually supports these now, but with libssp it is fragile
- declare -gx CFLAGS="${CFLAGS/-Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong}"
- declare -gx CXXFLAGS="${CXXFLAGS/-Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong}"
- for var in ${toolvars[*]}
- do
- declare -g ${var%=*}=${CHOST}-${var#*=}
- done
+ __check_triplet ${tgt}
+
if inherited clang
then
- declare -g CC="${CHOST}-clang"
- declare -g CXX="${CHOST}-clang++"
+ mingw_cc=${tgt}-clang
+ mingw_cxx=${tgt}-clang++
+ else
+ mingw_cc=${tgt}-gcc
+ mingw_cxx=${tgt}-g++
fi
- if ! check_prog ${CC} || ! check_prog ${STRIP}
+ if ! check_prog ${mingw_cc} || ! check_prog ${tgt}-strip
then
- error "This package requires ${CHOST} binutils and gcc"
+ error "This package requires ${tgt} binutils and gcc"
fi
if ! defined __MINGW_WRAPPER_NO_CWD
then
- mkdir -p ${CHOST}/${MINGW_BUILDDIR_SUFFIX}
- pushd ${CHOST}/${MINGW_BUILDDIR_SUFFIX}
+ mkdir -p ${tgt}/${MINGW_BUILDDIR_SUFFIX}
+ pushd ${tgt}/${MINGW_BUILDDIR_SUFFIX}
fi
- inform "cross-compiling for ${CHOST}"
+ inform "running ${1} for ${tgt}"
+
+ CHOST=${tgt} \
+ CTARGET=${tgt} \
+ CC=${mingw_cc} \
+ CXX=${mingw_cxx} \
+ F77=${tgt}-gfortran \
+ FC=${tgt}-gfortran \
+ OBJC=${mingw_cc} \
+ OBJCXX=${mingw_cxx} \
+ AR=${tgt}-ar \
+ DLLTOOL=${tgt}-dlltool \
+ NM=${tgt}-nm \
+ OBJDUMP=${tgt}-objdump \
+ RANLIB=${tgt}-ranlib \
+ RC=${tgt}-windres \
+ STRIP=${tgt}-strip \
+ PKG_CONFIG=${tgt}-pkg-config \
+ QT5_QMAKE=${tgt}-qmake-qt5 \
+ CC_SYSROOT=/usr/${tgt}/sys-root \
+ CFLAGS="${CFLAGS/-Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong}" \
+ CXXFLAGS="${CXXFLAGS/-Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong}" \
"${@}" || error "${1} for ${CHOST} failed"
if ! defined __MINGW_WRAPPER_NO_CWD
then
popd
fi
-
- for var in ${miscvars[*]} ${toolvars[*]%=*}
- do
- ovar="orig_${var}"
- declare -g ${var}="${!ovar}"
- done
- for var in ${expvars[*]}
- do
- ovar="orig_${var}"
- declare -gx ${var}="${!ovar}"
- done
}
readonly -f __mingw_init __mingw_wrapper
More information about the Cygwin-apps-cvs
mailing list