aboutsummaryrefslogtreecommitdiff
path: root/CMAKE/CheckTimeFunction.cmake
blob: b57394887c2a185adc1d8f10bb1b928a9607f9dc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# - Check if the Fortran function exists.
# CHECK_TIME_FUNCTION(FUNCTION VARIABLE TYPE)
# - macro which checks if the Fortran function exists
#  FUNCTION - the name of the Fortran function
#  VARIABLE - variable to store the result
#

macro(CHECK_TIME_FUNCTION FUNCTION VARIABLE)

    try_compile(RES
    ${PROJECT_BINARY_DIR}/INSTALL
    ${PROJECT_SOURCE_DIR}/INSTALL
    TIMING secondtst_${FUNCTION}
    OUTPUT_VARIABLE OUTPUT)

    if(RES)
      set(${VARIABLE} ${FUNCTION} CACHE INTERNAL "Have Fortran function ${FUNCTION}")
      message(STATUS "Looking for Fortran ${FUNCTION} - found")
      file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
        "Fortran ${FUNCTION} exists. ${OUTPUT} \n\n")
    else()
      message(STATUS "Looking for Fortran ${FUNCTION} - not found")
      file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
        "Fortran ${FUNCTION} does not exist. \n ${OUTPUT} \n")
    endif()
endmacro()