Add two commonly used modules. First one checks if the function exists, the second one checks the size of type
This commit is contained in:
parent
157e2b4ac3
commit
76e9af1575
|
@ -0,0 +1,15 @@
|
||||||
|
#ifdef CHECK_FUNCTION_EXISTS
|
||||||
|
|
||||||
|
char CHECK_FUNCTION_EXISTS();
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
CHECK_FUNCTION_EXISTS();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#else /* CHECK_FUNCTION_EXISTS */
|
||||||
|
|
||||||
|
# error "CHECK_FUNCTION_EXISTS has to specify the function"
|
||||||
|
|
||||||
|
#endif /* CHECK_FUNCTION_EXISTS */
|
|
@ -0,0 +1,22 @@
|
||||||
|
#
|
||||||
|
# Check if the type exists and determine size of type. if the type
|
||||||
|
# exists, the size will be stored to the variable.
|
||||||
|
#
|
||||||
|
# CHECK_TYPE_SIZE - macro which checks the size of type
|
||||||
|
# VARIABLE - variable to store size if the type exists.
|
||||||
|
#
|
||||||
|
|
||||||
|
MACRO(CHECK_FUNCTION_EXISTS FUNCTION VARIABLE)
|
||||||
|
TRY_COMPILE(COMPILE_OK
|
||||||
|
${PROJECT_BINARY_DIR}
|
||||||
|
${CMAKE_ROOT}/Modules/CheckFunctionExists.c
|
||||||
|
COMPILE_DEFINITIONS -DCHECK_FUNCTION_EXISTS=${FUNCTION}
|
||||||
|
OUTPUT_VARIABLE OUTPUT)
|
||||||
|
IF(COMPILE_OK)
|
||||||
|
SET(${VARIABLE} ${COMPILE_OK})
|
||||||
|
ELSE(COMPILE_OK)
|
||||||
|
WRITE_FILE(${PROJECT_BINARY_DIR}/CMakeError.log
|
||||||
|
"Determining if the function ${FUNCTION} exists failed with the following output:\n"
|
||||||
|
"${OUTPUT}\n")
|
||||||
|
ENDIF(COMPILE_OK)
|
||||||
|
ENDMACRO(CHECK_FUNCTION_EXISTS)
|
|
@ -0,0 +1,20 @@
|
||||||
|
#ifdef CHECK_SIZE_OF
|
||||||
|
|
||||||
|
#ifdef HAVE_SYS_TYPES_H
|
||||||
|
# include <sys/types.h>
|
||||||
|
#endif /* HAVE_SYS_TYPES_H */
|
||||||
|
|
||||||
|
#ifdef HAVE_STDINT_H
|
||||||
|
# include <stdint.h>
|
||||||
|
#endif /* HAVE_STDINT_H */
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
return sizeof(CHECK_SIZE_OF);
|
||||||
|
}
|
||||||
|
|
||||||
|
#else /* CHECK_SIZE_OF */
|
||||||
|
|
||||||
|
# error "CHECK_SIZE_OF has to specify the type"
|
||||||
|
|
||||||
|
#endif /* CHECK_SIZE_OF */
|
|
@ -0,0 +1,21 @@
|
||||||
|
#
|
||||||
|
# Check if the type exists and determine size of type. if the type
|
||||||
|
# exists, the size will be stored to the variable.
|
||||||
|
#
|
||||||
|
# CHECK_TYPE_SIZE - macro which checks the size of type
|
||||||
|
# VARIABLE - variable to store size if the type exists.
|
||||||
|
#
|
||||||
|
|
||||||
|
MACRO(CHECK_TYPE_SIZE TYPE VARIABLE)
|
||||||
|
TRY_RUN(RUN_RESULT COMPILE_OK
|
||||||
|
${PROJECT_BINARY_DIR}
|
||||||
|
${CMAKE_ROOT}/Modules/CheckSizeOf.c
|
||||||
|
COMPILE_DEFINITIONS -DCHECK_SIZE_OF="${TYPE}"
|
||||||
|
OUTPUT_VARIABLE OUTPUT)
|
||||||
|
IF(COMPILE_OK)
|
||||||
|
SET(${VARIABLE} ${RUN_RESULT})
|
||||||
|
ELSE(COMPILE_OK)
|
||||||
|
WRITE_FILE(${PROJECT_BINARY_DIR}/CMakeError.log
|
||||||
|
"Determining size of ${TYPE} failed with the following output:\n${OUTPUT}\n")
|
||||||
|
ENDIF(COMPILE_OK)
|
||||||
|
ENDMACRO(CHECK_TYPE_SIZE)
|
Loading…
Reference in New Issue