WRF icon indicating copy to clipboard operation
WRF copied to clipboard

Restructure netCDF find modules to use modern import target

Open islas opened this issue 1 year ago • 1 comments
trafficstars

TYPE: enhancement

KEYWORDS: netCDF, cmake, compilation

SOURCE: internal

DESCRIPTION OF CHANGES: Problem: The current iteration of the cmake build uses the old-style of finding modules. This limits the usability of transitive properties as well as the native netCDF cmake build which provide imported targets.

See https://cmake.org/cmake/help/latest/manual/cmake-developer.7.html#find-modules for more information on module writing.

Solution: Augment the output of the provided find module to supply an imported target that fully describes the netCDF library. Additionally, in rewriting how targets in WRF reference netCDF remove unnecessary linking to the library. Ensure the provided import target and flags of the find module matches the netCDF[-Fortran].cmake.in outputs verbatim thus emulating the native netCDF build for additional robustness.

LIST OF MODIFIED FILES: M CMakeLists.txt M cmake/modules/FindnetCDF-Fortran.cmake M cmake/modules/FindnetCDF.cmake M external/CMakeLists.txt M external/RSL_LITE/CMakeLists.txt M external/atm_ocn/CMakeLists.txt M external/esmf_time_f90/CMakeLists.txt M external/fftpack/fftpack5/CMakeLists.txt M external/io_adios2/CMakeLists.txt M external/io_esmf/CMakeLists.txt M external/io_grib1/CMakeLists.txt M external/io_grib1/MEL_grib1/CMakeLists.txt M external/io_grib1/WGRIB/CMakeLists.txt M external/io_grib1/grib1_util/CMakeLists.txt M external/io_grib2/bacio-1.3/CMakeLists.txt M external/io_grib2/g2lib/CMakeLists.txt M external/io_grib_share/CMakeLists.txt M external/io_netcdf/CMakeLists.txt M external/io_netcdfpar/CMakeLists.txt

RELEASE NOTE: Restructure netCDF find modules to use modern import target

islas avatar May 28 '24 18:05 islas