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