diff --git a/.gitignore b/.gitignore index 8b992dffc..67541a087 100644 --- a/.gitignore +++ b/.gitignore @@ -67,12 +67,10 @@ docs/_static/fortran_docs/*/** !environment.yml !.dockerignore +swiftest/_bindings.cpython* bin/ build/* -hdf5-* -netcdf-c-* -netcdf-fortran-* -zlib-* +lib* actions-runner* diff --git a/CMakeLists.txt b/CMakeLists.txt index cbbdb3690..fa83859b8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -37,7 +37,7 @@ ELSE() # Define the paths to the source code and python files SET(SRC "${CMAKE_SOURCE_DIR}/src") SET(PY "${CMAKE_SOURCE_DIR}/swiftest") - + MESSAGE(STATUS "CMAKE_Fortran_PREPROCESS_SOURCE: ${CMAKE_Fortran_PREPROCESS_SOURCE}") # Make sure paths are correct for Unix or Windows style FILE(TO_CMAKE_PATH ${SRC} SRC) FILE(TO_CMAKE_PATH ${PY} PY) @@ -59,8 +59,6 @@ ELSE() SET(INSTALL_LIBDIR ${CMAKE_INSTALL_LIBDIR}) SET(INSTALL_INCLUDEDIR ${CMAKE_INSTALL_INCLUDEDIR}) ENDIF () - SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) - SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) # Have the .mod files placed in the include folder SET(CMAKE_Fortran_MODULE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/mod) diff --git a/buildscripts/build_negishi.sh b/buildscripts/build_negishi.sh index ff8a9c9e5..4fa08d673 100755 --- a/buildscripts/build_negishi.sh +++ b/buildscripts/build_negishi.sh @@ -18,14 +18,23 @@ module load use.own module load conda-env/mintongroup-py3.9.13 module load netcdf-fortran/intel-oneapi/4.6.1 module load shtools/intel-oneapi/4.11.10 +# cmake -P distclean.cmake +# 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=mpiifort" \ +# --config-settings=cmake.args="-DCMAKE_Fortran_FLAGS=\"-f90=ifort\"" \ +# --config-settings=cmake.args="-DMACHINE_CODE_VALUE=\"CORE-AVX-I\" " \ +# --config-settings=install.strip=false \ +# --no-build-isolation \ +# -ve . + cmake -P distclean.cmake -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=mpiifort" \ - --config-settings=cmake.args="-DCMAKE_Fortran_FLAGS=\"-f90=ifort\"" \ - --config-settings=cmake.args="-DMACHINE_CODE_VALUE=\"CORE-AVX-I\" " \ - --config-settings=install.strip=false \ - --no-build-isolation \ - -ve . +cmake -B ${ROOT_DIR}/build -S . -G Ninja \ + -DMACHINE_CODE_VALUE="CORE-AVX-I" \ + -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ + -DCMAKE_Fortran_COMPILER=mpiifort \ + -DCMAKE_Fortran_FLAGS="-f90=ifort" + +cmake --build ${ROOT_DIR}/build -j${OMP_NUM_THREADS} -v \ No newline at end of file diff --git a/cmake/Modules/SetSwiftestFlags.cmake b/cmake/Modules/SetSwiftestFlags.cmake index 638c7aff7..83bf8ac5d 100644 --- a/cmake/Modules/SetSwiftestFlags.cmake +++ b/cmake/Modules/SetSwiftestFlags.cmake @@ -309,12 +309,6 @@ IF (CMAKE_BUILD_TYPE STREQUAL "DEBUG" OR CMAKE_BUILD_TYPE STREQUAL "TESTING" ) Fortran "/Qopt-prefetch-" # Intel Windows ) ELSE () - SET_COMPILE_FLAG(CMAKE_Fortran_FLAGS_DEBUG "${CMAKE_Fortran_FLAGS_DEBUG}" - Fortran REQUIRED "-pg -g3" - ) - SET_COMPILE_FLAG(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}" - C REQUIRED "-g3" - ) SET_COMPILE_FLAG(CMAKE_Fortran_FLAGS_DEBUG "${CMAKE_Fortran_FLAGS_DEBUG}" Fortran REQUIRED "-O0" # All compilers not on Windows ) diff --git a/distclean.cmake b/distclean.cmake index 683a5db35..5df5a151e 100644 --- a/distclean.cmake +++ b/distclean.cmake @@ -47,6 +47,7 @@ FILE(GLOB_RECURSE CMAKEINSTALL "${TOPDIR}/*cmake_install.cmake" "${TOPDIR}/*install_manifest.txt") FILE(GLOB_RECURSE CMAKETESTFILES "${TOPDIR}/*CTestTestfile.cmake") SET(TOPDIRECTORIES "${TOPDIR}/lib" + "${TOPDIR}/lib64" "${TOPDIR}/libexec" "${TOPDIR}/bin" "${TOPDIR}/include" diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c434fcc2c..45bc1257d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -103,11 +103,12 @@ IF(USE_COARRAY) set(SWIFTEST_src ${SWIFTEST_src} ${COARRAY_FILES} ) ENDIF () +STRING(TOUPPER "${CMAKE_BUILD_TYPE}" BT) + # Turn preprocessor on for all files SET_SOURCE_FILES_PROPERTIES(${SWIFTEST_src} ${DRIVER_src} PROPERTIES Fortran_PREPROCESS ON) #Set strict vs fast math flags -STRING(TOUPPER "${CMAKE_BUILD_TYPE}" BT) IF(BT STREQUAL "RELEASE" OR BT STREQUAL "PROFILE") SET_PROPERTY(SOURCE ${STRICT_MATH_FILES} APPEND_STRING PROPERTY COMPILE_FLAGS "${STRICTMATH_FLAGS}") SET_PROPERTY(SOURCE ${FAST_MATH_FILES} APPEND_STRING PROPERTY COMPILE_FLAGS "${FASTMATH_FLAGS}") @@ -127,7 +128,6 @@ ADD_EXECUTABLE(${SWIFTEST_DRIVER} ${DRIVER_src}) # Add the needed libraries ##################################################### # Create a library from the source files, except the driver - ADD_LIBRARY(${SWIFTEST_LIBRARY} ${SWIFTEST_src}) IF (NOT BUILD_SHARED_LIBS) SET_PROPERTY(TARGET ${SWIFTEST_LIBRARY} PROPERTY POSITION_INDEPENDENT_CODE)