TestInline.cmake 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. macro (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. message (STATUS "Checking for __inline...")
  13. set (INLINE_KEYWORD "__inline")
  14. configure_file (cmake/TestInline.c.in ${PROJECT_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/TestInline.c)
  15. try_compile (HAVE___INLINE "${CMAKE_CURRENT_BINARY_DIR}"
  16. "${PROJECT_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/TestInline.c")
  17. if (HAVE___INLINE)
  18. message (STATUS "Checking for __inline... supported")
  19. else ()
  20. message (STATUS "Checking for __inline... not supported")
  21. message (STATUS "Checking for __inline__...")
  22. set (INLINE_KEYWORD "__inline__")
  23. configure_file (cmake/TestInline.c.in ${PROJECT_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/TestInline.c)
  24. try_compile (HAVE___INLINE "${CMAKE_CURRENT_BINARY_DIR}"
  25. "${PROJECT_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/TestInline.c")
  26. if (HAVE___INLINE)
  27. message (STATUS "Checking for __inline__... supported")
  28. message (STATUS "Checking for __inline__...")
  29. set (INLINE_KEYWORD "__inline__")
  30. configure_file (cmake/TestInline.c.in ${PROJECT_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/cmake/TestInline.c)
  31. try_compile (HAVE___INLINE__ "${CMAKE_CURRENT_BINARY_DIR}"
  32. "${PROJECT_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/TestInline.c")
  33. else ()
  34. message (STATUS "Checking for __inline__... not supported")
  35. set (INLINE_KEYWORD "")
  36. endif ()
  37. endif ()
  38. endif ()
  39. if (HAVE_INLINE)
  40. set (INLINE_CODE "/* #undef inline */" CACHE INTERNAL "")
  41. elseif (HAVE___INLINE)
  42. set (INLINE_CODE "#define inline __inline" CACHE INTERNAL "")
  43. elseif (HAVE___INLINE__)
  44. set (INLINE_CODE "#define inline __inline__" CACHE INTERNAL "")
  45. else ()
  46. set (INLINE_CODE "#define inline " CACHE INTERNAL "")
  47. endif ()
  48. endif ()
  49. endmacro (TEST_INLINE)