From e25aaad8c8fb7f1d166410d8a37f0ca1ac53269e Mon Sep 17 00:00:00 2001 From: David Minton Date: Tue, 13 Feb 2024 20:11:54 -0500 Subject: [PATCH] Added an intel and gnu version of the build scripts --- buildscripts/build_negishi_gnu.sh | 39 +++++++++++++++++++ ...uild_negishi.sh => build_negishi_intel.sh} | 0 buildscripts/get_platform.sh | 18 +++++---- cmake/Modules/SetSwiftestFlags.cmake | 14 ++----- 4 files changed, 54 insertions(+), 17 deletions(-) create mode 100755 buildscripts/build_negishi_gnu.sh rename buildscripts/{build_negishi.sh => build_negishi_intel.sh} (100%) diff --git a/buildscripts/build_negishi_gnu.sh b/buildscripts/build_negishi_gnu.sh new file mode 100755 index 000000000..fb522bd38 --- /dev/null +++ b/buildscripts/build_negishi_gnu.sh @@ -0,0 +1,39 @@ +#!/bin/zsh -l +# installs an editable (local) package in release mode on Negishi +# This is a convenience script for Kaustub + +set -a +SCRIPT_DIR=$(realpath $(dirname $0)) +ROOT_DIR=$(realpath ${SCRIPT_DIR}/..) +cd ${ROOT_DIR} +BUILD_TYPE=${1:-"Release"} + +module purge +module use /depot/daminton/etc/modules +module load use.own +module load conda-env/mintongroup-py3.9.13 +module load gcc/12.2.0 +module load hdf5/1.13.2 +module load netcdf-c/4.9.0 +module load netcdf-fortran/4.6.0 +module load shtools/gcc/4.11.10 +cmake -P distclean.cmake +if [[ BUILD_TYPE == "Release" ]]; then + pip install --config-settings=build-dir="build" \ + --config-settings=cmake.build-type="${BUILD_TYPE}" \ + --config-settings=cmake.args="-DUSE_SIMD=ON" \ + --config-settings=cmake.args="-DUSE_OPENMP=ON" \ + --config-settings=cmake.args="-DCMAKE_Fortran_COMPILER=gfortran" \ + --config-settings=cmake.args="-DMACHINE_CODE_VALUE=\"Host\" " \ + --config-settings=install.strip=false \ + --no-build-isolation \ + -ve . +else + pip uninstall swiftest -y + cmake -P distclean.cmake + cmake -B ${ROOT_DIR}/build -S . -G Ninja \ + -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ + -DCMAKE_Fortran_COMPILER=gfortran + + cmake --build ${ROOT_DIR}/build -j${OMP_NUM_THREADS} -v +fi \ No newline at end of file diff --git a/buildscripts/build_negishi.sh b/buildscripts/build_negishi_intel.sh similarity index 100% rename from buildscripts/build_negishi.sh rename to buildscripts/build_negishi_intel.sh diff --git a/buildscripts/get_platform.sh b/buildscripts/get_platform.sh index 2455d7f29..6aaaf21bf 100755 --- a/buildscripts/get_platform.sh +++ b/buildscripts/get_platform.sh @@ -46,17 +46,21 @@ esac case $OS in Linux) # Currently ifx support is not great - # if command -v ifx >/dev/null 2>&1; then - # OS="Linux-ifx" - - if command -v ifort >/dev/null 2>&1; then + case $FC in + *ifx) + OS="Linux-ifx" + ;; + *ifort) OS="Linux-ifort" - elif command -v gfortran >/dev/null 2>&1; then + ;; + *gfortran) OS="Linux-gnu" - else + ;; + *) echo "No Fortran compiler found on Linux" exit 1 - fi + :: + esac ;; Darwin) OS="MacOSX" diff --git a/cmake/Modules/SetSwiftestFlags.cmake b/cmake/Modules/SetSwiftestFlags.cmake index 83bf8ac5d..2f1342a7f 100644 --- a/cmake/Modules/SetSwiftestFlags.cmake +++ b/cmake/Modules/SetSwiftestFlags.cmake @@ -159,6 +159,9 @@ IF (NOT BUILD_SHARED_LIBS AND NOT WINOPT) Fortran "-static-libquadmath" ) ENDIF () + SET_COMPILE_FLAG(CMAKE_Fortran_LINK_FLAGS "${CMAKE_Fortran_LINK_FLAGS}" + Fortran "-Wl,--verbose" + ) IF (USE_OPENMP) SET_COMPILE_FLAG(CMAKE_Fortran_LINK_FLAGS "${CMAKE_Fortran_LINK_FLAGS}" Fortran "-lomp" @@ -419,16 +422,7 @@ IF (CMAKE_BUILD_TYPE STREQUAL "DEBUG" OR CMAKE_BUILD_TYPE STREQUAL "TESTING" ) SET_COMPILE_FLAG(CMAKE_Fortran_FLAGS_DEBUG "${CMAKE_Fortran_FLAGS_DEBUG}" Fortran "-fbacktrace" # GNU (gfortran) ) - # Sanitize - IF (NOT APPLE) - SET_COMPILE_FLAG(CMAKE_Fortran_FLAGS_DEBUG "${CMAKE_Fortran_FLAGS_DEBUG}" - Fortran "-fsanitize=address, undefined" # Gnu - ) - SET_COMPILE_FLAG(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}" - C "-fsanitize=address, undefined" # Gnu - ) - ENDIF() - # Check everything + # # Check everything SET_COMPILE_FLAG(CMAKE_Fortran_FLAGS_DEBUG "${CMAKE_Fortran_FLAGS_DEBUG}" Fortran "-fcheck=all" # GNU )