PROJECT(CPRNC C Fortran)

INCLUDE(Macros.cmake)
set(CMAKE_Fortran_FLAGS, ${CIME_FFLAGS})
set(CMAKE_FC, CIME_SFC)

ENABLE_LANGUAGE(Fortran)

CMAKE_MINIMUM_REQUIRED(VERSION 2.8)

SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} $ENV{CIME_ROOT}/src/externals/pio2/cmake)

# Defining NETCDF_LIBRARIES and NETCDF_INCLUDE_DIR enables bypassing
#   the search for Netcdf
IF (NOT DEFINED NETCDF_LIBRARIES OR NOT DEFINED NETCDF_INCLUDE_DIR)
  FIND_PACKAGE(NetCDF REQUIRED)
  SET(NETCDF_INCLUDE_DIR ${Netcdf_INCLUDE_DIR})
  SET(NETCDF_LIBRARIES ${Netcdf_LIBRARIES})
ENDIF ()

ADD_CUSTOM_COMMAND(
  OUTPUT ${PROJECT_BINARY_DIR}/compare_vars_mod.F90
  COMMAND perl ${PROJECT_SOURCE_DIR}/../../src/externals/genf90/genf90.pl
    ${PROJECT_SOURCE_DIR}/compare_vars_mod.F90.in > ${PROJECT_BINARY_DIR}/compare_vars_mod.F90
)

ADD_CUSTOM_TARGET(COMPARE_VARS DEPENDS ${PROJECT_BINARY_DIR}/compare_vars_mod.F90)

# Support extended line lengths
IF (${CMAKE_Fortran_COMPILER_ID} STREQUAL GNU)
  SET(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -ffree-line-length-none")
ELSEIF (CMAKE_COMPILER_ID STREQUAL PGI)
  SET(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -Mextend")
ELSEIF (CMAKE_COMPILER_ID STREQUAL PathScale)
  SET(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -extend-source")
ENDIF ()

INCLUDE_DIRECTORIES(
  ${NETCDF_INCLUDE_DIR}
  ${PROJECT_SOURCE_DIR}
  ${PROJECT_BINARY_DIR}
)

SET (CPRNC_SRCS
  ${PROJECT_BINARY_DIR}/compare_vars_mod.F90
  filestruct.F90
  utils.F90
  prec.F90
  cprnc.F90
)

ADD_EXECUTABLE(cprnc ${CPRNC_SRCS})
ADD_DEPENDENCIES(cprnc COMPARE_VARS)

TARGET_LINK_LIBRARIES(cprnc ${NETCDF_LIBRARIES})

INSTALL(TARGETS cprnc
        RUNTIME DESTINATION bin)
