~ubuntu-branches/ubuntu/utopic/fltk1.1/utopic

« back to all changes in this revision

Viewing changes to CMake/CheckFunctionWithHeaderExists.cmake

  • Committer: Bazaar Package Importer
  • Author(s): Aaron M. Ucko
  • Date: 2004-12-04 12:59:54 UTC
  • mto: (2.1.1 hoary)
  • mto: This revision was merged to the branch mainline in revision 3.
  • Revision ID: james.westby@ubuntu.com-20041204125954-4792872ghx55a78w
Tags: upstream-1.1.6
ImportĀ upstreamĀ versionĀ 1.1.6

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#
 
2
# Check if the symbol exists in include files
 
3
#
 
4
# CHECK_FUNCTIONWITHHEADER_EXISTS - macro which checks the symbol exists in include files.
 
5
# SYMBOL - symbol
 
6
# FILES  - include files to check
 
7
# VARIABLE - variable to return result
 
8
#
 
9
 
 
10
MACRO(CHECK_FUNCTIONWITHHEADER_EXISTS SYMBOL FILES VARIABLE)
 
11
  IF("${VARIABLE}" MATCHES "^${VARIABLE}$")
 
12
    SET(CHECK_SYMBOL_EXISTS_CONTENT "/* */\n")
 
13
    SET(MACRO_CHECK_SYMBOL_EXISTS_FLAGS ${CMAKE_REQUIRED_FLAGS})
 
14
    IF(CMAKE_REQUIRED_LIBRARIES)
 
15
      SET(CHECK_SYMBOL_EXISTS_LIBS 
 
16
        "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}")
 
17
    ENDIF(CMAKE_REQUIRED_LIBRARIES)
 
18
    FOREACH(FILE ${FILES})
 
19
      SET(CHECK_SYMBOL_EXISTS_CONTENT
 
20
        "${CHECK_SYMBOL_EXISTS_CONTENT}#include <${FILE}>\n")
 
21
    ENDFOREACH(FILE)
 
22
    SET(CHECK_SYMBOL_EXISTS_CONTENT
 
23
      "${CHECK_SYMBOL_EXISTS_CONTENT}\nint main()\n{\n${SYMBOL};return 0;\n}\n")
 
24
 
 
25
    FILE(WRITE ${CMAKE_BINARY_DIR}/CMakeTmp/CheckSymbolExists.c 
 
26
      "${CHECK_SYMBOL_EXISTS_CONTENT}")
 
27
 
 
28
    MESSAGE(STATUS "Looking for ${SYMBOL}")
 
29
    TRY_COMPILE(${VARIABLE}
 
30
      ${CMAKE_BINARY_DIR}
 
31
      ${CMAKE_BINARY_DIR}/CMakeTmp/CheckSymbolExists.c
 
32
      CMAKE_FLAGS 
 
33
      -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_SYMBOL_EXISTS_FLAGS}
 
34
      "${CHECK_SYMBOL_EXISTS_LIBS}"
 
35
      OUTPUT_VARIABLE OUTPUT)
 
36
    IF(${VARIABLE})
 
37
      MESSAGE(STATUS "Looking for ${SYMBOL} - found")
 
38
      SET(${VARIABLE} 1 CACHE INTERNAL "Have symbol ${SYMBOL}")
 
39
      FILE(APPEND ${CMAKE_BINARY_DIR}/CMakeOutput.log 
 
40
        "Determining if the ${SYMBOL} "
 
41
        "exist passed with the following output:\n"
 
42
        "${OUTPUT}\nFile ${CMAKE_BINARY_DIR}/CMakeTmp/CheckSymbolExists.c:\n"
 
43
        "${CHECK_SYMBOL_EXISTS_CONTENT}\n")
 
44
    ELSE(${VARIABLE})
 
45
      MESSAGE(STATUS "Looking for ${SYMBOL} - not found.")
 
46
      SET(${VARIABLE} "" CACHE INTERNAL "Have symbol ${SYMBOL}")
 
47
      FILE(APPEND ${CMAKE_BINARY_DIR}/CMakeError.log 
 
48
        "Determining if the ${SYMBOL} "
 
49
        "exist failed with the following output:\n"
 
50
        "${OUTPUT}\nFile ${CMAKE_BINARY_DIR}/CMakeTmp/CheckSymbolExists.c:\n"
 
51
        "${CHECK_SYMBOL_EXISTS_CONTENT}\n")
 
52
    ENDIF(${VARIABLE})
 
53
  ENDIF("${VARIABLE}" MATCHES "^${VARIABLE}$")
 
54
ENDMACRO(CHECK_FUNCTIONWITHHEADER_EXISTS)