@@ -281,54 +281,58 @@ if (Baselibs_FOUND)
281281 message (STATUS "LIBYAML_LIBRARIES: ${LIBYAML_LIBRARIES} " )
282282 endif ()
283283
284+ # - fms_r4
284285 if (FV_PRECISION STREQUAL R4 OR FV_PRECISION STREQUAL R4R8)
285- # - fms_r4
286- set (inc_fms_r4 ${BASEDIR} /FMS/include_r4)
287- set (lib_fms_r4 ${BASEDIR} /FMS/lib/libfms_r4.a)
286+ # Use find_path and find_library to find the include and library
287+ find_path (FMS_INCLUDE_DIR_R4 NAMES fms.mod PATHS ${BASEDIR} /FMS/include_r4 )
288+ find_library (FMS_LIBRARIES_R4 NAMES fms_r4 PATHS ${BASEDIR} /FMS/lib ${BASEDIR} /FMS/lib64 )
289+ # We also need the path of where the library is for the INTERFACE_LINK_DIRECTORIES
290+ get_filename_component (FMS_LIBRARIES_DIR_R4 ${FMS_LIBRARIES_R4} DIRECTORY )
288291 add_library (FMS::fms_r4 STATIC IMPORTED )
289292 set_target_properties (FMS::fms_r4 PROPERTIES
290- IMPORTED_LOCATION ${lib_fms_r4 }
291- INCLUDE_DIRECTORIES "${inc_fms_r4 } "
292- INTERFACE_INCLUDE_DIRECTORIES "${inc_fms_r4 } "
293+ IMPORTED_LOCATION ${FMS_LIBRARIES_R4 }
294+ INCLUDE_DIRECTORIES "${FMS_INCLUDE_DIR_R4 } "
295+ INTERFACE_INCLUDE_DIRECTORIES "${FMS_INCLUDE_DIR_R4 } "
293296 INTERFACE_LINK_LIBRARIES "NetCDF::NetCDF_Fortran;MPI::MPI_Fortran"
294- INTERFACE_LINK_DIRECTORIES "${BASEDIR} /FMS/lib "
297+ INTERFACE_LINK_DIRECTORIES "${FMS_LIBRARIES_DIR_R4} "
295298 )
296299 if (FMS_BUILT_WITH_YAML)
297300 target_link_libraries (FMS::fms_r4 INTERFACE ${LIBYAML_LIBRARIES} )
298301 endif ()
299- #add_library(fms_r4 ALIAS FMS::fms_r4)
300- # We will set FMS_R4_FOUND if both lib_fms_r4 and inc_fms_r4 are found
302+ # We will set FMS_R4_FOUND if both FMS_LIBRARIES_R4 and FMS_INCLUDE_DIR_R4 are found
301303 # and are valid files and directories respectively
302- if (EXISTS ${lib_fms_r4 } AND IS_DIRECTORY ${inc_fms_r4 } )
303- message (STATUS "Found FMS::fms_r4: ${lib_fms_r4 } " )
304- message (STATUS "FMS::fms_r4 include directory: ${inc_fms_r4 } " )
305- set (FMS_R4_FOUND TRUE CACHE BOOL "fms_r8 Found" FORCE )
304+ if (EXISTS ${FMS_LIBRARIES_R4 } AND IS_DIRECTORY ${FMS_INCLUDE_DIR_R4 } )
305+ message (STATUS "Found FMS::fms_r4: ${FMS_LIBRARIES_R4 } " )
306+ message (STATUS "FMS::fms_r4 include directory: ${FMS_INCLUDE_DIR_R4 } " )
307+ set (FMS_R4_FOUND TRUE CACHE BOOL "fms_r4 Found" FORCE )
306308 else ()
307- message (FATAL_ERROR "FMS::fms_r8 not found" )
309+ message (FATAL_ERROR "FMS::fms_r4 not found" )
308310 endif ()
309311 endif ()
310312
311313 # - fms_r8
312314 if (FV_PRECISION STREQUAL R8 OR FV_PRECISION STREQUAL R4R8)
313- set (inc_fms_r8 ${BASEDIR} /FMS/include_r8)
314- set (lib_fms_r8 ${BASEDIR} /FMS/lib/libfms_r8.a)
315+ # Use find_path and find_library to find the include and library
316+ find_path (FMS_INCLUDE_DIR_R8 NAMES fms.mod PATHS ${BASEDIR} /FMS/include_r8 )
317+ find_library (FMS_LIBRARIES_R8 NAMES fms_r8 PATHS ${BASEDIR} /FMS/lib ${BASEDIR} /FMS/lib64 )
318+ # We also need the path of where the library is for the INTERFACE_LINK_DIRECTORIES
319+ get_filename_component (FMS_LIBRARIES_DIR_R8 ${FMS_LIBRARIES_R8} DIRECTORY )
315320 add_library (FMS::fms_r8 STATIC IMPORTED )
316321 set_target_properties (FMS::fms_r8 PROPERTIES
317- IMPORTED_LOCATION ${lib_fms_r8 }
318- INCLUDE_DIRECTORIES "${inc_fms_r8 } "
319- INTERFACE_INCLUDE_DIRECTORIES "${inc_fms_r8 } "
322+ IMPORTED_LOCATION ${FMS_LIBRARIES_R8 }
323+ INCLUDE_DIRECTORIES "${FMS_INCLUDE_DIR_R8 } "
324+ INTERFACE_INCLUDE_DIRECTORIES "${FMS_INCLUDE_DIR_R8 } "
320325 INTERFACE_LINK_LIBRARIES "NetCDF::NetCDF_Fortran;MPI::MPI_Fortran"
321- INTERFACE_LINK_DIRECTORIES "${BASEDIR} /FMS/lib "
326+ INTERFACE_LINK_DIRECTORIES "${FMS_LIBRARIES_DIR_R8} "
322327 )
323328 if (FMS_BUILT_WITH_YAML)
324329 target_link_libraries (FMS::fms_r8 INTERFACE ${LIBYAML_LIBRARIES} )
325330 endif ()
326- #add_library(fms_r8 ALIAS FMS::fms_r8)
327- # We will set FMS_R8_FOUND if both lib_fms_r8 and inc_fms_r8 are found
331+ # We will set FMS_R8_FOUND if both FMS_LIBRARIES_R8 and FMS_INCLUDE_DIR_R8 are found
328332 # and are valid files and directories respectively
329- if (EXISTS ${lib_fms_r8 } AND IS_DIRECTORY ${inc_fms_r8 } )
330- message (STATUS "Found FMS::fms_r8: ${lib_fms_r8 } " )
331- message (STATUS "FMS::fms_r8 include directory: ${inc_fms_r8 } " )
333+ if (EXISTS ${FMS_LIBRARIES_R8 } AND IS_DIRECTORY ${FMS_INCLUDE_DIR_R8 } )
334+ message (STATUS "Found FMS::fms_r8: ${FMS_LIBRARIES_R8 } " )
335+ message (STATUS "FMS::fms_r8 include directory: ${FMS_INCLUDE_DIR_R8 } " )
332336 set (FMS_R8_FOUND TRUE CACHE BOOL "fms_r8 Found" FORCE )
333337 else ()
334338 message (FATAL_ERROR "FMS::fms_r8 not found" )
0 commit comments