e107ac46085b054be2bf28ae69860fe9bea98bb9
[alexxy/gromacs.git] / cmake / gmxTestInline.cmake
1 # - Define macro to check inline keyword
2 #
3 #  GMX_TEST_INLINE(VARIABLE)
4 #
5 #  VARIABLE will be set to the keyword
6 #
7 #  Remember to have a cmakedefine for it too...
8
9 MACRO(GMX_TEST_INLINE VARIABLE)
10     IF(NOT DEFINED TEST_${VARIABLE})
11
12         MESSAGE(STATUS "Checking for inline keyword")
13
14         FOREACH(KEYWORD "__inline__" "__inline" "inline")
15             IF(NOT TEST_${VARIABLE})
16                 TRY_COMPILE(TEST_${VARIABLE} "${CMAKE_BINARY_DIR}"    
17                             "${CMAKE_SOURCE_DIR}/cmake/TestInline.c"
18                             COMPILE_DEFINITIONS "-DTESTINLINEDEF=${KEYWORD}" )
19                 SET(LAST_INLINE_KEYWORD ${KEYWORD})
20             ENDIF(NOT TEST_${VARIABLE})
21         ENDFOREACH(KEYWORD)
22
23         IF(TEST_${VARIABLE})
24             SET(${VARIABLE} ${LAST_INLINE_KEYWORD} CACHE INTERNAL "Inline keyword" FORCE)
25             MESSAGE(STATUS "Checking for inline keyword - ${LAST_INLINE_KEYWORD}")
26         ELSE(TEST_${VARIABLE})
27             SET(${VARIABLE} " " CACHE INTERNAL "Inline keyword" FORCE)
28             MESSAGE(STATUS "Checking for inline keyword - not found")
29         ENDIF(TEST_${VARIABLE})
30
31     ENDIF(NOT DEFINED TEST_${VARIABLE})        
32 ENDMACRO(GMX_TEST_INLINE VARIABLE)
33
34
35
36