All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Updates needed to build on SLES15 at NCCS
- Changes to
esma_add_f2pyX_modulemacros in handling thepython -c 'import foo_'tests. AddsLD_LIBRARY_PATHto it. Still does not fix all problems.
- Fixed rpath handling on macOS.
- Change
ESMA_USE_GFE_NAMESPACEdefault toON. This requires Baselibs v6.2 or the latest libraries - On Linux, link to
libesmf.sorather thanlibesmf_fullylinked.soper advice of ESMF developers. - On macOS, link to
libesmf.dylibrather thanlibesmf.a. This requires Baselibs v6.2.5 as that has a bug fix for ESMF dylib handling
-
Add ability to detect BASEDIR from the environment.
-
Add checks to
FindBaselibs.cmaketo make sure BASEDIR has the right arch (as defined byuname -s) as this is still a requirement for GEOS run scripts. The code will also try to make a valid BASEDIR. That is, if you pass in/path/to/baselibs, but it sees a/path/to/baselibs/arch/libexists, it will allow that and try to use it. -
Previous option
CPP_DEBUG_<targethas now been replaced with a more fine-grained combination of cmake variables:XFLAGSandXFLAGS_SOURCES. To use$cmake .. -DXFLAGS="foo bar=7 DEBUG" -DXFLAGS_SOURCES="<file1> <file2>" $ makeNOTE: This change requires checking for specified sources in every directory (or rather in those that use
esma_set_this()and thus add some overhead to cmake. We may later decide to implement a per-target or per-directory pair of flags to address this, but that will be harder for the user to use.
- Fixes for F2PY and GNU as well as some cleanup
- Removed extra space in diagnostic message about missing directories
- Fixed a bug with double precision handling and GNU
- A new CMake variable
CPP_DEBUG_<target>has been added for each target. The value is a list of source files that should receive the "-DDEBUG" compile definition. To use:To use with multiple files use quotes and separate with$ cmake .. -DCPP_DEBUG_MAPL.base=MAPL_base.F90;$ cmake .. -DCPP_DEBUG_MAPL.base="MAPL_base.F90;MAPL_CFIO.F90"
- Added Python2 and Python3 versions of generic Python F2PY macros.
- Added option
BUILD_WITH_PFLOGGERwhich defaults toON. This is added for collaborators that do not use pFlogger
- Added new
ESMA_USE_GFE_NAMESPACEwhich defaults toOFF. If you set this toON, you must then use the new GFE namespace style in CMake, e.g.,gftl==>GFTL::gftl.
- Fixed Aggressive GNU flags on Graviton2 processors
- Added test for GNU and Intel to try and determine if building on Intel or AMD chips and choose correct vectorization flags.
- Changed
-extend_sourceto-extend-sourcedue to warning print in Intel 2021
- Fixed Aggressive flags with GCC 10
- Add ability for
Aggressivebuild type (note: requires GEOS-ESM/ecbuild geos/v1.0.6 to use as ecbuild restricts allowedCMAKE_BUILD_TYPE)
- Fixed
new_esma_generate_automatic_codemacro to better handle automatically generated files (see GEOS-ESM/GEOSchem_GridComp#108)
- Add changelog enforcer
- Remove
Externals.cfgas part ofmanage_externalsdeprecation
- Added Docker authentication for CI
- Updates from UFS to enable use with MAPL without Baselibs (Requires MAPL 2.4.0+)
- Fix for default Fortran module directory
- Add support for Arm64 machines
- Requirement for MKL is removed (MKL is used if found, otherwise BLAS/LAPACK is used)
- Update Intel Debug flags to be more comprehensive
- Add CircleCI testing
- Fix for handling f2py tests
- Fix for coding of AWS detection found on Ubuntu/CircleCI
- Fixes for handling MOM/MOM6 shared libraries on macOS
- Add support to detect AWS systems
- Add an option
USE_F2PYwhich by default isONpreserving current behavior. (Useful on pioneer systems and containers where f2py might not be available.)
- Updates in support of MAPL 2.2
- Fix up how testing is done
- Generalize the stub generator
- Use
find_fileto generalize path to MAPL utilities (acg)
- Updated to ecbuild geos/v1.0.5
- Updates for JEDI Compatibility
- Support for GCC 10
- See releases tab for more information
- Typo in message in
esma_add_library().
- Added macro
esma_add_f2py_module()which wraps existingadd_f2py_module()and a call toadd_test().
- Allow ecbuild to be mounted as
ecbuild@,@ecbuild, orecbuild
NOTE: This version of ESMA_cmake now requires Baselibs 6.0.10 or higher due to the need for yaFyaml and pFlogger
- Made gFTL-shared, yaFyaml, and pFlogger REQUIRED
- Added ability for OpenMP and Double Precision to be used with f2py Used by the MAM Optics code
- Add ability to allow @-symbol to be at beginning or end of sub-repo (still in progress)
- Emit BASEDIR location during CMake
- Added macro to verify availability of Python modules
Use:
esma_find_python_module(<module> [REQUIRED]) - Added macro to add a post-build check availability of Python modules
Use:
esma_check_python_module(<module>) - Added option is `esma_add_library() to use SHARED
- Also uptick the ecbuild version in Externals.cfg to prevent a CMake warning.
- Fix for macOS and Clang found by @tclune
- Updates to f2py detection
- Added flag for Intel to suppress long name warning.
- Turn on MPI_DETERMINE_LIBRARY_VERSION
- Updates to f2py detection for Python 3
NOTE This release of ESMA Cmake is not backwardly compatible to the 1.x series.
- Updates for Baselibs 6.x
- Needed because CMake interface to FLAP changed
- Also, this version of ESMA_cmake is based on pFUnit 4 and as such uses find_package(PFUNIT) and then uses the PFUNIT_FOUND variable.
- Add
FINDLOC()detection
- Adds CODEOWNERS
- Adds QUIET to find_package of non-required libraries
- Convert options to use OPTION()
- Fixes to esma_add_library from #34
- Fixes for debug flag setting from #17
- Update LaTeX detection
- Change the @ecbuild location to GEOS-ESM
- Updates necessary for building on macOS (f2py)
- Add code to the automatic code generation macros to install the generated RC files to etc/
- Add executable bit to F2Py shared objects
- Add MPI option to UseF2Py
- Add GitInfo package
- Fix cmake autodetect when embedded.