• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1macro (TEST_INLINE)
2	if (NOT DEFINED INLINE_CODE)
3		message (STATUS "Checking for inline...")
4		set (INLINE_KEYWORD "inline")
5		configure_file (cmake/TestInline.c.in ${PROJECT_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/TestInline.c)
6		try_compile (HAVE_INLINE "${CMAKE_CURRENT_BINARY_DIR}"
7                    "${PROJECT_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/TestInline.c")
8		if (HAVE_INLINE)
9			message (STATUS "Checking for inline... supported")
10		else ()
11			message (STATUS "Checking for inline... not supported")
12
13			message (STATUS "Checking for __inline...")
14			set (INLINE_KEYWORD "__inline")
15			configure_file (cmake/TestInline.c.in ${PROJECT_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/TestInline.c)
16			try_compile (HAVE___INLINE "${CMAKE_CURRENT_BINARY_DIR}"
17                    "${PROJECT_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/TestInline.c")
18			if (HAVE___INLINE)
19				message (STATUS "Checking for __inline... supported")
20			else ()
21				message (STATUS "Checking for __inline... not supported")
22
23				message (STATUS "Checking for __inline__...")
24				set (INLINE_KEYWORD "__inline__")
25				configure_file (cmake/TestInline.c.in ${PROJECT_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/TestInline.c)
26				try_compile (HAVE___INLINE "${CMAKE_CURRENT_BINARY_DIR}"
27					"${PROJECT_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/TestInline.c")
28				if (HAVE___INLINE)
29					message (STATUS "Checking for __inline__... supported")
30
31					message (STATUS "Checking for __inline__...")
32					set (INLINE_KEYWORD "__inline__")
33					configure_file (cmake/TestInline.c.in ${PROJECT_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/cmake/TestInline.c)
34					try_compile (HAVE___INLINE__ "${CMAKE_CURRENT_BINARY_DIR}"
35						"${PROJECT_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/TestInline.c")
36				else ()
37					message (STATUS "Checking for __inline__... not supported")
38					set (INLINE_KEYWORD "")
39				endif ()
40
41			endif ()
42		endif ()
43
44		if (HAVE_INLINE)
45			set (INLINE_CODE "/* #undef inline */" CACHE INTERNAL "")
46		elseif (HAVE___INLINE)
47			set (INLINE_CODE "#define inline __inline" CACHE INTERNAL "")
48		elseif (HAVE___INLINE__)
49			set (INLINE_CODE "#define inline __inline__" CACHE INTERNAL "")
50		else ()
51			set (INLINE_CODE "#define inline " CACHE INTERNAL "")
52		endif ()
53	endif ()
54endmacro (TEST_INLINE)
55