File: CheckTimeFunction.cmake

package info (click to toggle)
lapack 3.11.0-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 76,136 kB
  • sloc: fortran: 605,191; ansic: 197,715; makefile: 5,018; f90: 1,379; sh: 326; python: 266
file content (31 lines) | stat: -rw-r--r-- 1,191 bytes parent folder | download | duplicates (3)
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
29
30
31
# - 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}
    CMAKE_FLAGS
      -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=${CMAKE_OSX_DEPLOYMENT_TARGET}
      -DCMAKE_Fortran_FLAGS:STRING=${CMAKE_Fortran_FLAGS}
      -DCMAKE_EXE_LINKER_FLAGS:STRING=${CMAKE_EXE_LINKER_FLAGS}
      -DCMAKE_VERBOSE_MAKEFILE=ON
    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()