From cfc77050b33dc34d7b9045b14f099bedcfdf44ef Mon Sep 17 00:00:00 2001 From: MintoDA1 <51412913+MintoDA1@users.noreply.github.com> Date: Fri, 18 Aug 2023 17:08:57 -0400 Subject: [PATCH] Made some adjustments to scripts to ensure the proper gcc version for the dependency build --- buildscripts/_build_getopts.sh | 8 ++-- buildscripts/set_compilers.sh | 75 ++++++++++++++-------------------- pyproject.toml | 5 ++- 3 files changed, 37 insertions(+), 51 deletions(-) diff --git a/buildscripts/_build_getopts.sh b/buildscripts/_build_getopts.sh index 6cf308925..85dbbeaa5 100755 --- a/buildscripts/_build_getopts.sh +++ b/buildscripts/_build_getopts.sh @@ -14,10 +14,10 @@ SCRIPT_DIR=$(realpath $(dirname $0)) ROOT_DIR=$(realpath ${SCRIPT_DIR}/..) # Parse arguments -USTMT="Usage: ${0} <-d /path/to/dependency/source> [-p /prefix/path|{/usr/local}] [-m MACOSX_DEPLOYMENT_TARGET|{10.9}]" +USTMT="Usage: ${0} <-d /path/to/dependency/source> [-p /prefix/path|{/usr/local}] [-m MACOSX_DEPLOYMENT_TARGET|{11.0}]" PREFIX=/usr/local DEPENDENCY_DIR="${ROOT_DIR}/_dependencies" -MACOSX_DEPLOYMENT_TARGET="10.9" +MACOSX_DEPLOYMENT_TARGET="11.0" while getopts ":d:p:m:h" ARG; do case "${ARG}" in d) @@ -59,9 +59,7 @@ case $OS in esac if [ -z ${DEPENDENCY_ENV_VARS+x} ]; then - CMD="${SCRIPT_DIR}/set_compilers.sh -c $COMPILER" - read -r CC CXX FC F77 CPP < <($CMD) - unset CMD + . ${SCRIPT_DIR}/set_compilers.sh LD_LIBRARY_PATH="${PREFIX}/lib:${LD_LIBRARY_PATH}" CPPFLAGS="${CPPFLAGS} -isystem ${PREFIX}/include" diff --git a/buildscripts/set_compilers.sh b/buildscripts/set_compilers.sh index 2621089aa..a9da4a50f 100755 --- a/buildscripts/set_compilers.sh +++ b/buildscripts/set_compilers.sh @@ -14,26 +14,6 @@ # You should have received a copy of the GNU General Public License along with Swiftest. # If not, see: https://www.gnu.org/licenses. # Parse arguments -USTMT="Usage: ${0} <-c Intel|GNU-Linux|GNU-Mac> [-f|--force-ifort]" -IFORT=false -COMPILER="" -while getopts ":c:f" ARG; do - case "${ARG}" in - f) - ;; - c) - COMPILER="${OPTARG}" - ;; - :) - echo "Error: -${OPTARG} requires an argument." - echo $USTMT - exit 1 - ;; - *) - ;; - esac -done - case "$COMPILER" in Intel|GNU-Linux|GNU-Mac) ;; @@ -45,28 +25,29 @@ case "$COMPILER" in ;; esac +set -a # Only replace compiler definitions if they are not already set case $COMPILER in Intel) if [ ! -v FC ]; then if command -v ifx &> /dev/null; then - export FC=$(command -v ifx) + FC=$(command -v ifx) elif command -v ifort &> /dev/null; then - export FC=$(command -v mpiifort) + FC=$(command -v mpiifort) else printf "Error. Cannot find valid Intel Fortran compiler.\n" exit 1 fi fi if [ ! -v F77 ]; then - export F77="${FC}" + F77="${FC}" fi if [ ! -v CC ]; then if command -v icx &> /dev/null; then - export CC=$(command -v icx) + CC=$(command -v icx) elif command -v icc &> /dev/null; then - export CC=$(command -v icc) + CC=$(command -v icc) else printf "Error. Cannot find valid Intel C compiler.\n" exit 1 @@ -75,9 +56,9 @@ case $COMPILER in if [ ! -v CXX ]; then if command -v icpx &> /dev/null; then - export CXX=$(command -v icpx) + CXX=$(command -v icpx) elif command -v icpc &> /dev/null; then - export CXX=$(command -v icpc) + CXX=$(command -v icpc) else printf "Error. Cannot find valid Intel C++ compiler.\n" exit 1 @@ -85,33 +66,39 @@ case $COMPILER in fi if command -v mpiifort &> /dev/null; then - export I_MPI_F90=${FC} - export FC=$(command -v mpiifort) + I_MPI_F90=${FC} + FC=$(command -v mpiifort) fi if command -v mpiicc &> /dev/null; then - export I_MPI_CC =${CC} - export CC=$(command -v mpiicc) + I_MPI_CC =${CC} + CC=$(command -v mpiicc) fi if command -v mpiicpc &> /dev/null; then - export I_MPI_CXX =${CXX} - export CXX=$(command -v mpiicpc) + I_MPI_CXX =${CXX} + CXX=$(command -v mpiicpc) fi - export CPP=${CPP:-$HOMEBRE_PREFIX/bin/cpp-13} + CPP=${CPP:-$HOMEBRE_PREFIX/bin/cpp-13} ;; GNU-Linux) - export FC=${FC:-$(command -v gfortran)} - export CC=${CC:-$(command -v gcc)} - export CXX=${CXX:-$(command -v g++)} - export CPP=${CPP:-$(command -v cpp)} + FC=${FC:-$(command -v gfortran)} + CC=${CC:-$(command -v gcc)} + CXX=${CXX:-$(command -v g++)} + CPP=${CPP:-$(command -v cpp)} ;; GNU-Mac) - export FC=${FC:-$HOMEBREW_PREFIX/bin/gfortran-13} - export CC=${CC:-$HOMEBREW_PREFIX/bin/gcc-13} - export CXX=${CXX:-$HOMEBREW_PREFIX/bin/g++-13} - export CPP=${CPP:-$HOMEBRE_PREFIX/bin/cpp-13} + MAJOR=$(echo ${MACOSX_DEPLOYMENT_TARGET} | awk '{print $1}' FS=.) + printf "MACOS Major Version: ${MAJOR}\n" + FC=${FC:-$HOMEBREW_PREFIX/bin/gfortran-${MAJOR}} + CC=${CC:-$HOMEBREW_PREFIX/bin/gcc-${MAJOR}} + CXX=${CXX:-$HOMEBREW_PREFIX/bin/g++-${MAJOR}} + CPP=${CPP:-$HOMEBREW_PREFIX/bin/cpp-${MAJOR}} + AR=${AR:-$HOMEBREW_PREFIX/bin/gcc-ar-${MAJOR}} + NM=${NM:-$HOMEBREW_PREFIX/bin/gcc-nm-${MAJOR}} + RANLIB=${RANLIB:-$HOMEBREW_PREFIX/bin/gcc-ranlib-${MAJOR}} + LD_LIBRARY_PATH="${HOMEBREW_PREFIX}/lib/gcc/${MAJOR}/lib:${LD_LIBRARY_PATH}" ;; *) printf "Unknown compiler type: ${COMPILER}\n" @@ -120,6 +107,4 @@ case $COMPILER in exit 1 ;; esac -export F77=${FC} - -printf "${CC} ${CXX} ${FC} ${F77} ${CPP}" \ No newline at end of file +F77=${FC} diff --git a/pyproject.toml b/pyproject.toml index 8886aad71..b473bb6e3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,6 +16,8 @@ test-skip = "cp312-*" skip = "pp*" [tool.cibuildwheel.linux] +archs = ["x86_64", "aarch64"] + environment = {SKBUILD_CONFIGURE_OPTIONS="-DBUILD_SHARED_LIBS=OFF", FFLAGS="${FFLAGS} -fPIC", CFLAGS="${CFLAGS} -fPIC", LDFLAGS="${LDFLAGS} -fPIE", LIBS="-lgomp"} before-all = [ "yum install wget m4 doxygen -y", @@ -23,7 +25,8 @@ before-all = [ ] [tool.cibuildwheel.macos] -environment = {PATH="${TMPDIR}/bin:${PATH}",MACOSX_DEPLOYMENT_TARGET="10.9", LD_LIBRARY_PATH="${TMPDIR}/lib:${LD_LIBRARY_PATH}",CPPFLAGS="${CPPFLAGS} -isystem ${TMPDIR}/include",LDFLAGS="${LDFLAGS} -L${TMPDIR}/lib -fPIE -Wl,-no_compact_unwind",CPATH="${CPATH} ${TMPDIR}/include}", CFLAGS="${CFLAGS} -Wno-unused-but-set-variable -fPIC -Wno-deprecated-non-prototype", SKBUILD_CONFIGURE_OPTIONS="-DUSE_OPENMP=OFF -DUSE_SIMD=OFF -DBUILD_SHARED_LIBS=OFF",FFLAGS="${FFLAGS} -fPIC"} +archs = ["x86_64", "universal2", "arm64"] +environment = {PATH="${TMPDIR}/bin:${PATH}",MACOSX_DEPLOYMENT_TARGET="11.0", LD_LIBRARY_PATH="${TMPDIR}/lib:${LD_LIBRARY_PATH}",CPPFLAGS="${CPPFLAGS} -isystem ${TMPDIR}/include",LDFLAGS="${LDFLAGS} -L${TMPDIR}/lib -fPIE -Wl,-no_compact_unwind",CPATH="${CPATH} ${TMPDIR}/include}", CFLAGS="${CFLAGS} -Wno-unused-but-set-variable -fPIC -Wno-deprecated-non-prototype", SKBUILD_CONFIGURE_OPTIONS="-DUSE_OPENMP=OFF -DUSE_SIMD=OFF -DBUILD_SHARED_LIBS=OFF",FFLAGS="${FFLAGS} -fPIC"} before-all = [ "buildscripts/build_dependencies.sh -d ${TMPDIR} -p ${TMPDIR} -m ${MACOSX_DEPLOYMENT_TARGET}" ]