PageRenderTime 46ms CodeModel.GetById 21ms RepoModel.GetById 1ms app.codeStats 0ms

/strigi-0.7.7/libstreams/ConfigureChecks.cmake

#
CMake | 133 lines | 110 code | 16 blank | 7 comment | 7 complexity | 6362a23855b5f9356d642a4b47f451bc MD5 | raw file
Possible License(s): LGPL-2.0
  1. #need to find a few default headers:
  2. INCLUDE(CheckIncludeFileCXX)
  3. CHECK_INCLUDE_FILE_CXX(direct.h HAVE_DIRECT_H) # src/streamindexer/filelister.cpp
  4. CHECK_INCLUDE_FILE_CXX(dirent.h HAVE_DIRENT_H) # src/streams/strigi/stgdirent.cpp/.h
  5. CHECK_INCLUDE_FILE_CXX(dlfcn.h HAVE_DLFCN_H) # src/streamindexer/analyzerloader.cpp/.h - do we really need it in .h?
  6. CHECK_INCLUDE_FILE_CXX(ndir.h HAVE_NDIR_H) # src/streams/strigi/stgdirent.cpp/.h
  7. CHECK_INCLUDE_FILE_CXX(stddef.h HAVE_STDDEF_H) # unused !
  8. CHECK_INCLUDE_FILE_CXX(sys/dir.h HAVE_SYS_DIR_H) # src/streams/strigi/stgdirent.cpp/.h
  9. CHECK_INCLUDE_FILE_CXX(sys/ndir.h HAVE_SYS_NDIR_H) # src/streams/strigi/stgdirent.cpp/.h
  10. CHECK_INCLUDE_FILE_CXX(windows.h HAVE_WINDOWS_H) # src/streamindexer/filelister.cpp
  11. # files that may define the u?int{8,16,32,54}_t types
  12. CHECK_INCLUDE_FILE_CXX(socket.h HAVE_SOCKET_H)
  13. CHECK_INCLUDE_FILE_CXX(sys/socket.h HAVE_SYS_SOCKET_H)
  14. CHECK_INCLUDE_FILE_CXX(sys/types.h HAVE_SYS_TYPES_H)
  15. CHECK_INCLUDE_FILE_CXX(unistd.h HAVE_UNISTD_H) # src/streamindexer/pluginendanalyzer.cpp
  16. CHECK_INCLUDE_FILE_CXX(stdint.h HAVE_STDINT_H) # config.h, strigiconfig.h
  17. CHECK_INCLUDE_FILE_CXX(regex.h HAVE_REGEX_H) # src/dummyindexer/*
  18. INCLUDE(CheckIncludeFiles)
  19. CHECK_INCLUDE_FILES(strings.h HAVE_STRINGS_H) # various
  20. #test for some functions that are missing on a particular system
  21. INCLUDE(CheckFunctionExists)
  22. CHECK_FUNCTION_EXISTS(fchdir HAVE_FCHDIR) # unused !
  23. CHECK_FUNCTION_EXISTS(gettimeofday HAVE_GETTIMEOFDAY) # src/luceneindexer/cluceneindexmanager.cpp, src/luceneindexer/cluceneindexreader.cpp, src/streams/strigi/timeofday.h
  24. CHECK_FUNCTION_EXISTS(isblank HAVE_ISBLANK) # src/streams/mailinputstream.cpp, src/streams/strigi/compat.cpp
  25. CHECK_FUNCTION_EXISTS(mkstemp HAVE_MKSTEMP) # src/streamanalyzer/helperendanalyzer.cpp
  26. CHECK_FUNCTION_EXISTS(nanosleep HAVE_NANOSLEEP) # src/storage/sqlitestorage.cpp, src/daemon/indexscheduler.cpp, src/searchclient/cmdlinestrigi.cpp
  27. CHECK_FUNCTION_EXISTS(setenv HAVE_SETENV) # src/xmlindexer/peranalyzerxml.cpp
  28. CHECK_FUNCTION_EXISTS(strcasecmp HAVE_STRCASECMP) # src/streamindexer/expatsaxendanalyzer.cpp, src/streamindexer/saxendanalyzer.cpp
  29. CHECK_FUNCTION_EXISTS(strcasestr HAVE_STRCASESTR) # src/streams/mailinputstream.cpp
  30. CHECK_FUNCTION_EXISTS(strlwr HAVE_STRLWR) # src/streamindexer/ifilterendanalyzer.cpp
  31. CHECK_FUNCTION_EXISTS(strncasecmp HAVE_STRNCASECMP) # src/streams/mailinputstream.cpp
  32. #test for missing types
  33. INCLUDE(CheckTypeSize)
  34. #test for ansi scope (needed for msvc6)
  35. INCLUDE(TestForANSIForScope)
  36. if(HAVE_SOCKET_H)
  37. set(type_check_includes ${type_check_includes} socket.h)
  38. endif(HAVE_SOCKET_H)
  39. if(HAVE_SYS_SOCKET_H)
  40. set(type_check_includes ${type_check_includes} sys/socket.h)
  41. endif(HAVE_SYS_SOCKET_H)
  42. if(HAVE_SYS_TYPES_H)
  43. set(type_check_includes ${type_check_includes} sys/types.h)
  44. endif(HAVE_SYS_TYPES_H)
  45. if(HAVE_UNISTD_H)
  46. set(type_check_includes ${type_check_includes} unistd.h)
  47. endif(HAVE_UNISTD_H)
  48. if(HAVE_STDINT_H)
  49. set(type_check_includes ${type_check_includes} stdint.h)
  50. endif(HAVE_STDINT_H)
  51. SET(CMAKE_EXTRA_INCLUDE_FILES ${CMAKE_EXTRA_INCLUDE_FILES} ${type_check_includes})
  52. CHECK_TYPE_SIZE(int8_t INT8_T)
  53. CHECK_TYPE_SIZE(uint8_t UINT8_T)
  54. CHECK_TYPE_SIZE(int16_t INT16_T)
  55. CHECK_TYPE_SIZE(uint16_t UINT16_T)
  56. CHECK_TYPE_SIZE(int32_t INT32_T)
  57. CHECK_TYPE_SIZE(uint32_t UINT32_T)
  58. CHECK_TYPE_SIZE(int64_t INT64_T)
  59. CHECK_TYPE_SIZE(uint64_t UINT64_T)
  60. CHECK_TYPE_SIZE(char SIZEOF_CHAR)
  61. CHECK_TYPE_SIZE(short SIZEOF_SHORT)
  62. CHECK_TYPE_SIZE(int SIZEOF_INT)
  63. CHECK_TYPE_SIZE(long SIZEOF_LONG)
  64. CHECK_TYPE_SIZE("long long" SIZEOF_LONGLONG)
  65. CHECK_TYPE_SIZE(size_t SIZE_T)
  66. CHECK_TYPE_SIZE(ssize_t SSIZE_T)
  67. CHECK_TYPE_SIZE(uint UINT)
  68. CHECK_TYPE_SIZE(intptr_t INTPTR_T)
  69. CHECK_TYPE_SIZE(socklen_t SOCKLEN_T)
  70. INCLUDE(MacroBoolTo01)
  71. MACRO_BOOL_TO_01(HAVE_INT8_T HAVE_INT8_T)
  72. MACRO_BOOL_TO_01(HAVE_UINT8_T HAVE_UINT8_T)
  73. MACRO_BOOL_TO_01(HAVE_INT16_T HAVE_INT16_T)
  74. MACRO_BOOL_TO_01(HAVE_UINT16_T HAVE_UINT16_T)
  75. MACRO_BOOL_TO_01(HAVE_INT32_T HAVE_INT32_T)
  76. MACRO_BOOL_TO_01(HAVE_UINT32_T HAVE_UINT32_T)
  77. MACRO_BOOL_TO_01(HAVE_INT64_T HAVE_INT64_T)
  78. MACRO_BOOL_TO_01(HAVE_UINT64_T HAVE_UINT64_T)
  79. MACRO_BOOL_TO_01(HAVE_UINT HAVE_UINT)
  80. MACRO_BOOL_TO_01(HAVE_INTPTR_T HAVE_INTPTR_T)
  81. MACRO_BOOL_TO_01(HAVE_SOCKLEN_T HAVE_SOCKLEN_T)
  82. MACRO_BOOL_TO_01(HAVE_STDINT_H HAVE_STDINT_H)
  83. MACRO_BOOL_TO_01(HAVE_SIZE_T HAVE_SIZE_T)
  84. MACRO_BOOL_TO_01(HAVE_SSIZE_T HAVE_SSIZE_T)
  85. MACRO_BOOL_TO_01(HAVE_SOCKET_H STRIGI_HAVE_SOCKET_H)
  86. MACRO_BOOL_TO_01(HAVE_SYS_SOCKET_H STRIGI_HAVE_SYS_SOCKET_H)
  87. MACRO_BOOL_TO_01(HAVE_SYS_TYPES_H STRIGI_HAVE_SYS_TYPES_H)
  88. MACRO_BOOL_TO_01(HAVE_UNISTD_H STRIGI_HAVE_UNISTD_H)
  89. MACRO_BOOL_TO_01(HAVE_STDINT_H STRIGI_HAVE_STDINT_H)
  90. MACRO_BOOL_TO_01(HAVE_STDDEF_H STRIGI_HAVE_STDDEF_H)
  91. #now write out our configuration....
  92. ADD_DEFINITIONS(-DHAVE_CONFIG_H)
  93. CONFIGURE_FILE(
  94. ${libstreams_SOURCE_DIR}/lib/config.h.cmake
  95. ${libstreams_BINARY_DIR}/lib/config.h
  96. )
  97. # this is needed to be able to build a combined mingw/msvc strigi package
  98. if(WIN32)
  99. if(MINGW)
  100. SET(strigi_config_output ${libstreams_BINARY_DIR}/include/strigi/strigiconfig_mingw.h)
  101. elseif(CYGWIN)
  102. SET(strigi_config_output ${libstreams_BINARY_DIR}/include/strigi/strigiconfig_cygwin.h)
  103. else(MINGW)
  104. SET(strigi_config_output ${libstreams_BINARY_DIR}/include/strigi/strigiconfig_msvc.h)
  105. endif(MINGW)
  106. SET(strigi_extra_config_output ${libstreams_BINARY_DIR}/include/strigi/strigiconfig.h)
  107. CONFIGURE_FILE(
  108. ${libstreams_SOURCE_DIR}/strigiconfig.h.cmake
  109. ${strigi_extra_config_output}
  110. )
  111. else(WIN32)
  112. SET(strigi_config_output ${libstreams_BINARY_DIR}/include/strigi/strigiconfig.h)
  113. endif(WIN32)
  114. CONFIGURE_FILE(
  115. ${libstreams_SOURCE_DIR}/strigiconfig.h.cmake
  116. ${strigi_config_output}
  117. )