Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ElmerCSC
GitHub Repository: ElmerCSC/elmerfem
Path: blob/devel/cmake/Modules/FindNETCDF.cmake
3206 views
# - cmake script for finding NETCDF libraries

#  NETCDF_INCLUDE_DIR  - user modifiable choice of where netcdf headers are
#  NETCDF_LIBRARY      - user modifiable choice of where netcdf library if
#  NETCDFF_LIBRARY     - user modifiable choice of where netcdf-fortran library is
#  or NETCDF_LIBRARIES - user modifiable choice of where netcdf & netcdff libraries are

# his module returns these variables for the rest of the project to use.
#
#  NETCDF_FOUND              - True if NETCDF found including required interfaces (see below)
#  NETCDF_LIBRARIES          - All netcdf related libraries.
#  NETCDF_INCLUDE_DIR        - All directories to include.

# # handle the QUIETLY and REQUIRED arguments and set NETCDF_FOUND to TRUE
# if all listed variables are TRUE
INCLUDE(FindPackageHandleStandardArgs)

# If NETCDF & NETCDF_FORTRAN libraries are already defined, do nothing
IF(NETCDF_LIBRARIES AND NETCDF_INCLUDE_DIR)
   SET(NETCDF_FOUND TRUE)
   RETURN()
ELSEIF(NETCDFF_LIBRARY AND NETCDF_LIBRARY AND NETCDF_INCLUDE_DIR)
   SET(NETCDF_LIBRARIES "${NETCDFF_LIBRARY};${NETCDF_LIBRARY}" )
   SET(NETCDF_FOUND TRUE)
   RETURN()
ENDIF()

SET(NETCDF_FOUND FALSE)
SET(NETCDFINCLUDE
  "${NETCDFROOT}/include"
  "$ENV{NETCDFROOT}/include"
  "${NETCDF_ROOT}/include"
  "$ENV{NETCDF_ROOT}/include"
  "${CMAKE_SOURCE_DIR}/netcdf/include"
  INTERNAL
  )

FIND_PATH(NETCDF_INCLUDE_DIR
  netcdf.h 
  HINTS 
  ${NETCDFINCLUDE}
  )

SET(NETCDFLIB 
  "${NETCDFROOT}/lib"
  "$ENV{NETCDFROOT}/lib"
  "${NETCDF_ROOT}/lib"
  "$ENV{NETCDF_ROOT}/lib"
  "${CMAKE_SOURCE_DIR}/netcdf/lib"
  INTERNAL)

SET(NETCDFFLIB 
  "${NETCDFROOT}/lib"
  "$ENV{NETCDFROOT}/lib"
  "${NETCDF_ROOT}/lib"
  "$ENV{NETCDF_ROOT}/lib"
  "${CMAKE_SOURCE_DIR}/netcdf/lib"
  INTERNAL)

FIND_LIBRARY(NETCDF_LIBRARY netcdf HINTS ${NETCDFLIB})
FIND_LIBRARY(NETCDFF_LIBRARY netcdff HINTS ${NETCDFFLIB})

IF (NETCDF_INCLUDE_DIR AND NETCDF_LIBRARY AND NETCDFF_LIBRARY)
  UNSET(NETCDF_FAILMSG)
  SET(NETCDFLIB_FOUND TRUE)
  SET(NETCDF_INCLUDE_DIR ${NETCDF_INCLUDE_DIR})
  SET(NETCDF_LIBRARIES "${NETCDFF_LIBRARY};${NETCDF_LIBRARY}")
ELSE()
  SET(NETCDF_FAILMSG "NETCDF libraries not found.")
ENDIF()

IF (NOT NETCDF_FAILMSG)
  SET(NETCDF_FOUND TRUE)
ENDIF()

MARK_AS_ADVANCED(
  NETCDFINCLUDE
  NETCDFLIB
  NETCDF_FAILMSG
  NETCDF_INCLUDE_DIR
  NETCDF_LIBRARIES
  NETCDF_LIBRARY
  NETCDF_F_LIBRARY)