1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
MACRO(CHECK_INCLUDE_FILE_DEFINE HEADER VAR)
CHECK_INCLUDE_FILE(${HEADER} HAVE_INCLUDE_FILE)
IF(HAVE_INCLUDE_FILE)
ADD_DEFINE("${VAR} 1")
SET(${VAR} 1 CACHE INTERNAL "")
ENDIF(HAVE_INCLUDE_FILE)
ENDMACRO(CHECK_INCLUDE_FILE_DEFINE ARG)
MACRO(CHECK_FUNCTION_DEFINE HEADERS FUNC PARAM VAR)
CHECK_C_SOURCE_COMPILES(
"
${HEADERS}
int main(){
${FUNC} ${PARAM};
}
" ${VAR})
IF(${VAR})
ADD_DEFINE("${VAR} 1")
ENDIF(${VAR})
ENDMACRO(CHECK_FUNCTION_DEFINE HEADERS FUNC PARAM VAR)
IF(WIN32)
CHECK_INCLUDE_FILE_DEFINE(windows.h HAVE_WINDOWS_H)
IF(HAVE_WINDOWS_H)
CHECK_FUNCTION_DEFINE("#include <windows.h>" Sleep "(0)" HAVE_SLEEP)
ENDIF(HAVE_WINDOWS_H)
ELSE(WIN32)
CHECK_INCLUDE_FILE_DEFINE(time.h HAVE_TIME_H)
IF(HAVE_TIME_H)
CHECK_FUNCTION_DEFINE("#include <time.h>" nanosleep "((struct timespec*)0, (struct timespec*)0)" HAVE_NANOSLEEP)
ELSE(HAVE_TIME_H)
CHECK_INCLUDE_FILE_DEFINE(unistd.h HAVE_UNISTD_H)
IF(HAVE_UNISTD_H)
CHECK_FUNCTION_DEFINE("#include <unistd.h>" usleep "(0)" HAVE_USLEEP)
ENDIF(HAVE_UNISTD_H)
ENDIF(HAVE_TIME_H)
ENDIF(WIN32)
|