PROJECT (INCLUDES)

# auto-generated header with sizeof magic
INCLUDE(CheckTypeSize)
CHECK_TYPE_SIZE(short SIZE_SHORT)
MATH(EXPR SHORTLESS ${SIZE_SHORT}-1)
CHECK_TYPE_SIZE(int SIZE_INT)
MATH(EXPR INTLESS ${SIZE_INT}-1)
CHECK_TYPE_SIZE(long SIZE_LONG)
MATH(EXPR LONGLESS ${SIZE_LONG}-1)
CHECK_TYPE_SIZE("long long" SIZE_LLONG)
MATH(EXPR LLONGLESS ${SIZE_LLONG}-1)
CHECK_TYPE_SIZE(float SIZE_FLOAT)
MATH(EXPR FLOATLESS ${SIZE_FLOAT}-1)
CHECK_TYPE_SIZE(double SIZE_DOUBLE)
MATH(EXPR DOUBLELESS ${SIZE_DOUBLE}-1)
CHECK_TYPE_SIZE("char*" SIZE_PTR)
MATH(EXPR PTRLESS ${SIZE_PTR}-1)
CONFIGURE_FILE( align.h.in align.h)
#SET_SOURCE_FILES_PROPERTIES(align.h PROPERTIES GENERATED 1)


TRY_COMPILE(VA_LIST_IS_ARRAY ${CMAKE_BINARY_DIR}  ${CMAKE_CURRENT_SOURCE_DIR}/test_VA_LIST_IS_ARRAY.c)
# invert the result, has the condition IFF compiler fails. There must be a simple way to say a=!b... but how?
IF(VA_LIST_IS_ARRAY) 
   SET(VA_LIST_IS_ARRAY FALSE)
else(VA_LIST_IS_ARRAY) 
   SET(VA_LIST_IS_ARRAY TRUE)
endif(VA_LIST_IS_ARRAY)

TRY_COMPILE(HAVE_MLOCKALL ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/test_HAVE_MLOCKALL.c)

CONFIGURE_FILE( xconfig.h.in xconfig.h)

# FIXME! Does not work as expected. Not important for out-of-source builds but
# is not nice either.
#
###SET_SOURCE_FILES_PROPERTIES(xconfig.h PROPERTIES GENERATED 1)
#LIST(APPEND tmps  xconfig.h  align.h)
#SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES tmps)

