|
Packit |
0b5880 |
#
|
|
Packit |
0b5880 |
# Check: a unit test framework for C
|
|
Packit |
0b5880 |
#
|
|
Packit |
0b5880 |
# Copyright (C) 2011 Mateusz Loskot
|
|
Packit |
0b5880 |
# Copyright (C) 2001, 2002 Arien Malec
|
|
Packit |
0b5880 |
#
|
|
Packit |
0b5880 |
# This library is free software; you can redistribute it and/or
|
|
Packit |
0b5880 |
# modify it under the terms of the GNU Lesser General Public
|
|
Packit |
0b5880 |
# License as published by the Free Software Foundation; either
|
|
Packit |
0b5880 |
# version 2.1 of the License, or (at your option) any later version.
|
|
Packit |
0b5880 |
#
|
|
Packit |
0b5880 |
# This library is distributed in the hope that it will be useful,
|
|
Packit |
0b5880 |
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit |
0b5880 |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Packit |
0b5880 |
# Lesser General Public License for more details.
|
|
Packit |
0b5880 |
#
|
|
Packit |
0b5880 |
# You should have received a copy of the GNU Lesser General Public
|
|
Packit |
0b5880 |
# License along with this library; if not, write to the
|
|
Packit |
0b5880 |
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
Packit |
0b5880 |
# Boston, MA 02111-1307, USA.
|
|
Packit |
0b5880 |
#
|
|
Packit |
0b5880 |
project(check C)
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
|
|
Packit |
0b5880 |
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
macro(extract_version file setting_name)
|
|
Packit |
0b5880 |
file(STRINGS ${file} VERSION_NUMBER REGEX "^${setting_name}")
|
|
Packit |
0b5880 |
string(REPLACE "=" ";" VERSION_NUMBER_LIST ${VERSION_NUMBER})
|
|
Packit |
0b5880 |
list(GET VERSION_NUMBER_LIST 1 ${setting_name})
|
|
Packit |
0b5880 |
endmacro(extract_version)
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
extract_version(configure.ac CHECK_MAJOR_VERSION)
|
|
Packit |
0b5880 |
extract_version(configure.ac CHECK_MINOR_VERSION)
|
|
Packit |
0b5880 |
extract_version(configure.ac CHECK_MICRO_VERSION)
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
set(CHECK_VERSION
|
|
Packit |
0b5880 |
"${CHECK_MAJOR_VERSION}.${CHECK_MINOR_VERSION}.${CHECK_MICRO_VERSION}")
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
set(MEMORY_LEAKING_TESTS_ENABLED 1)
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
###############################################################################
|
|
Packit |
0b5880 |
# Set build features
|
|
Packit |
0b5880 |
set(CMAKE_BUILD_TYPE Debug)
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
###############################################################################
|
|
Packit |
0b5880 |
# Option
|
|
Packit |
0b5880 |
option(CHECK_ENABLE_TESTS
|
|
Packit |
0b5880 |
"Enable the compilation and running of Check's unit tests" ON)
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
###############################################################################
|
|
Packit |
0b5880 |
# Check system and architecture
|
|
Packit |
0b5880 |
if(WIN32)
|
|
Packit |
0b5880 |
if(MSVC60)
|
|
Packit |
0b5880 |
set(WINVER 0x0400)
|
|
Packit |
0b5880 |
else()
|
|
Packit |
0b5880 |
set(WINVER 0x0500)
|
|
Packit |
0b5880 |
endif()
|
|
Packit |
0b5880 |
set(_WIN32_WINNT ${WINVER})
|
|
Packit |
0b5880 |
endif(WIN32)
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
if(MSVC)
|
|
Packit |
0b5880 |
add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
|
|
Packit |
0b5880 |
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
|
|
Packit |
0b5880 |
add_definitions(-D_CRT_NONSTDC_NO_WARNINGS)
|
|
Packit |
0b5880 |
endif(MSVC)
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
###############################################################################
|
|
Packit |
0b5880 |
include(CheckCSourceCompiles)
|
|
Packit |
0b5880 |
include(CheckCSourceRuns)
|
|
Packit |
0b5880 |
include(CheckFunctionExists)
|
|
Packit |
0b5880 |
include(CheckIncludeFile)
|
|
Packit |
0b5880 |
include(CheckIncludeFiles)
|
|
Packit |
0b5880 |
include(CheckLibraryExists)
|
|
Packit |
0b5880 |
include(CheckStructMember)
|
|
Packit |
0b5880 |
include(CheckSymbolExists)
|
|
Packit |
0b5880 |
include(CheckTypeExists)
|
|
Packit |
0b5880 |
include(CheckTypeSize)
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
###############################################################################
|
|
Packit |
0b5880 |
# Check headers
|
|
Packit |
0b5880 |
set(INCLUDES "")
|
|
Packit |
0b5880 |
macro(ck_check_include_file header var)
|
|
Packit |
0b5880 |
check_include_files("${INCLUDES};${header}" ${var})
|
|
Packit |
0b5880 |
if(${var})
|
|
Packit |
0b5880 |
set(INCLUDES ${INCLUDES} ${header})
|
|
Packit |
0b5880 |
endif(${var})
|
|
Packit |
0b5880 |
endmacro(ck_check_include_file)
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
# Some FreeBSD headers assume sys/types.h was already included.
|
|
Packit |
0b5880 |
ck_check_include_file("sys/types.h" HAVE_SYS_TYPES_H)
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
# Alphabetize the rest unless there's a compelling reason
|
|
Packit |
0b5880 |
ck_check_include_file("errno.h" HAVE_ERRNO_H)
|
|
Packit |
0b5880 |
ck_check_include_file("inttypes.h" HAVE_INTTYPES_H)
|
|
Packit |
0b5880 |
ck_check_include_file("limits.h" HAVE_LIMITS_H)
|
|
Packit |
0b5880 |
ck_check_include_file("regex.h" HAVE_REGEX_H)
|
|
Packit |
0b5880 |
ck_check_include_file("signal.h" HAVE_SIGNAL_H)
|
|
Packit |
0b5880 |
ck_check_include_file("stdarg.h" HAVE_STDARG_H)
|
|
Packit |
0b5880 |
ck_check_include_file("stdint.h" HAVE_STDINT_H)
|
|
Packit |
0b5880 |
ck_check_include_file("stdlib.h" HAVE_STDLIB_H)
|
|
Packit |
0b5880 |
ck_check_include_file("string.h" HAVE_STRING_H)
|
|
Packit |
0b5880 |
ck_check_include_file("strings.h" HAVE_STRINGS_H)
|
|
Packit |
0b5880 |
ck_check_include_file("sys/time.h" HAVE_SYS_TIME_H)
|
|
Packit |
0b5880 |
ck_check_include_file("time.h" HAVE_TIME_H)
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
###############################################################################
|
|
Packit |
0b5880 |
# Check functions
|
|
Packit |
0b5880 |
check_function_exists(fork HAVE_FORK)
|
|
Packit |
0b5880 |
check_function_exists(getline HAVE_GETLINE)
|
|
Packit |
0b5880 |
check_function_exists(getpid HAVE_GETPID)
|
|
Packit |
0b5880 |
check_function_exists(gettimeofday HAVE_GETTIMEOFDAY)
|
|
Packit |
0b5880 |
check_function_exists(localtime_r HAVE_DECL_LOCALTIME_R)
|
|
Packit |
0b5880 |
check_function_exists(malloc HAVE_MALLOC)
|
|
Packit |
0b5880 |
check_function_exists(mkstemp HAVE_MKSTEMP)
|
|
Packit |
0b5880 |
check_function_exists(realloc HAVE_REALLOC)
|
|
Packit |
0b5880 |
check_function_exists(setenv HAVE_DECL_SETENV)
|
|
Packit |
0b5880 |
check_function_exists(sigaction HAVE_SIGACTION)
|
|
Packit |
0b5880 |
check_function_exists(strdup HAVE_DECL_STRDUP)
|
|
Packit |
0b5880 |
check_function_exists(strsignal HAVE_DECL_STRSIGNAL)
|
|
Packit |
0b5880 |
check_function_exists(_getpid HAVE__GETPID)
|
|
Packit |
0b5880 |
check_function_exists(_strdup HAVE__STRDUP)
|
|
Packit |
0b5880 |
if (HAVE_REGEX_H)
|
|
Packit |
0b5880 |
check_function_exists(regcomp HAVE_REGCOMP)
|
|
Packit |
0b5880 |
check_function_exists(regexec HAVE_REGEXEC)
|
|
Packit |
0b5880 |
endif()
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
# printf related checks
|
|
Packit |
0b5880 |
check_function_exists(snprintf HAVE_SNPRINTF_FUNCTION)
|
|
Packit |
0b5880 |
check_function_exists(vsnprintf HAVE_VSNPRINTF_FUNCTION)
|
|
Packit |
0b5880 |
check_symbol_exists(snprintf stdio.h HAVE_SNPRINTF_SYMBOL)
|
|
Packit |
0b5880 |
check_symbol_exists(vsnprintf stdio.h HAVE_VSNPRINTF_SYMBOL)
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
if(NOT HAVE_SNPRINTF_FUNCTION AND NOT HAVE_SNPRINTF_SYMBOL)
|
|
Packit |
0b5880 |
add_definitions(-Dsnprintf=rpl_snprintf)
|
|
Packit |
0b5880 |
set(snprintf rpl_snprintf)
|
|
Packit |
0b5880 |
add_definitions(-Dvsnprintf=rpl_vsnprintf)
|
|
Packit |
0b5880 |
set(vsnprintf rpl_vsnprintf)
|
|
Packit |
0b5880 |
else(NOT HAVE_SNPRINTF_FUNCTION AND NOT HAVE_SNPRINTF_SYMBOL)
|
|
Packit |
0b5880 |
set(HAVE_SNPRINTF 1)
|
|
Packit |
0b5880 |
add_definitions(-DHAVE_SNPRINTF=1)
|
|
Packit |
0b5880 |
set(HAVE_VSNPRINTF 1)
|
|
Packit |
0b5880 |
add_definitions(-DHAVE_VSNPRINTF=1)
|
|
Packit |
0b5880 |
endif(NOT HAVE_SNPRINTF_FUNCTION AND NOT HAVE_SNPRINTF_SYMBOL)
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
if(HAVE_FORK)
|
|
Packit |
0b5880 |
add_definitions(-DHAVE_FORK=1)
|
|
Packit |
0b5880 |
set(HAVE_FORK 1)
|
|
Packit |
0b5880 |
else(HAVE_FORK)
|
|
Packit |
0b5880 |
add_definitions(-DHAVE_FORK=0)
|
|
Packit |
0b5880 |
set(HAVE_FORK 0)
|
|
Packit |
0b5880 |
endif(HAVE_FORK)
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
if(HAVE_MKSTEMP)
|
|
Packit |
0b5880 |
add_definitions(-DHAVE_MKSTEMP=1)
|
|
Packit |
0b5880 |
set(HAVE_MKSTEMP 1)
|
|
Packit |
0b5880 |
else(HAVE_MKSTEMP)
|
|
Packit |
0b5880 |
add_definitions(-DHAVE_MKSTEMP=0)
|
|
Packit |
0b5880 |
set(HAVE_MKSTEMP 0)
|
|
Packit |
0b5880 |
endif(HAVE_MKSTEMP)
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
if(HAVE_REGEX_H AND HAVE_REGCOMP AND HAVE_REGEXEC)
|
|
Packit |
0b5880 |
add_definitions(-DHAVE_REGEX=1)
|
|
Packit |
0b5880 |
set(HAVE_REGEX 1)
|
|
Packit |
0b5880 |
add_definitions(-DENABLE_REGEX=1)
|
|
Packit |
0b5880 |
set(ENABLE_REGEX 1)
|
|
Packit |
0b5880 |
endif()
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
###############################################################################
|
|
Packit |
0b5880 |
# Check defines
|
|
Packit |
0b5880 |
set(headers "limits.h")
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
if(HAVE_STDINT_H)
|
|
Packit |
0b5880 |
list(APPEND headers "stdint.h")
|
|
Packit |
0b5880 |
endif(HAVE_STDINT_H)
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
if(HAVE_INTTYPES_H)
|
|
Packit |
0b5880 |
list(APPEND headers "inttypes.h")
|
|
Packit |
0b5880 |
endif(HAVE_INTTYPES_H)
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
check_symbol_exists(INT64_MAX "${headers}" HAVE_INT64_MAX)
|
|
Packit |
0b5880 |
check_symbol_exists(INT64_MIN "${headers}" HAVE_INT64_MIN)
|
|
Packit |
0b5880 |
check_symbol_exists(UINT32_MAX "${headers}" HAVE_UINT32_MAX)
|
|
Packit |
0b5880 |
check_symbol_exists(UINT64_MAX "${headers}" HAVE_UINT64_MAX)
|
|
Packit |
0b5880 |
check_symbol_exists(SIZE_MAX "${headers}" HAVE_SIZE_MAX)
|
|
Packit |
0b5880 |
check_symbol_exists(SSIZE_MAX "limits.h" HAVE_SSIZE_MAX)
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
###############################################################################
|
|
Packit |
0b5880 |
# Check struct members
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
# Check for tv_sec in struct timeval
|
|
Packit |
0b5880 |
if(NOT HAVE_SYS_TIME_H)
|
|
Packit |
0b5880 |
if(MSVC)
|
|
Packit |
0b5880 |
check_struct_member("struct timeval" tv_sec "Winsock2.h" HAVE_STRUCT_TIMEVAL_TV_SEC)
|
|
Packit |
0b5880 |
check_struct_member("struct timeval" tv_usec "Winsock2.h" HAVE_STRUCT_TIMEVAL_TV_USEC)
|
|
Packit |
0b5880 |
check_struct_member("struct timespec" tv_sec "Winsock2.h" HAVE_WINSOCK2_H_STRUCT_TIMESPEC_TV_SEC)
|
|
Packit |
0b5880 |
check_struct_member("struct timespec" tv_sec "time.h" HAVE_TIME_H_STRUCT_TIMESPEC_TV_SEC)
|
|
Packit |
0b5880 |
check_struct_member("struct itimerspec" it_value "Winsock2.h" HAVE_STRUCT_ITIMERSPEC_IT_VALUE)
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
if(NOT HAVE_WINSOCK2_H_STRUCT_TIMESPEC_TV_SEC AND NOT HAVE_TIME_H_STRUCT_TIMESPEC_TV_SEC)
|
|
Packit |
0b5880 |
add_definitions(-DSTRUCT_TIMESPEC_DEFINITION_MISSING=1)
|
|
Packit |
0b5880 |
set(STRUCT_TIMESPEC_DEFINITION_MISSING 1)
|
|
Packit |
0b5880 |
endif(NOT HAVE_WINSOCK2_H_STRUCT_TIMESPEC_TV_SEC AND NOT HAVE_TIME_H_STRUCT_TIMESPEC_TV_SEC)
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
if(NOT HAVE_STRUCT_ITIMERSPEC_IT_VALUE)
|
|
Packit |
0b5880 |
add_definitions(-DSTRUCT_ITIMERSPEC_DEFINITION_MISSING=1)
|
|
Packit |
0b5880 |
set(STRUCT_ITIMERSPEC_DEFINITION_MISSING 1)
|
|
Packit |
0b5880 |
endif(NOT HAVE_STRUCT_ITIMERSPEC_IT_VALUE)
|
|
Packit |
0b5880 |
endif(MSVC)
|
|
Packit |
0b5880 |
endif(NOT HAVE_SYS_TIME_H)
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
# OSX has sys/time.h, but it still lacks itimerspec
|
|
Packit |
0b5880 |
if(HAVE_SYS_TIME_H)
|
|
Packit |
0b5880 |
check_struct_member("struct itimerspec" it_value "sys/time.h" HAVE_STRUCT_ITIMERSPEC_IT_VALUE)
|
|
Packit |
0b5880 |
if(NOT HAVE_STRUCT_ITIMERSPEC_IT_VALUE)
|
|
Packit |
0b5880 |
add_definitions(-DSTRUCT_ITIMERSPEC_DEFINITION_MISSING=1)
|
|
Packit |
0b5880 |
set(STRUCT_ITIMERSPEC_DEFINITION_MISSING 1)
|
|
Packit |
0b5880 |
endif(NOT HAVE_STRUCT_ITIMERSPEC_IT_VALUE)
|
|
Packit |
0b5880 |
endif(HAVE_SYS_TIME_H)
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
###############################################################################
|
|
Packit |
0b5880 |
# Check for integer types
|
|
Packit |
0b5880 |
check_type_size("short" SIZE_OF_SHORT)
|
|
Packit |
0b5880 |
check_type_size("int" SIZE_OF_INT)
|
|
Packit |
0b5880 |
check_type_size("long" SIZE_OF_LONG)
|
|
Packit |
0b5880 |
check_type_size("long long" SIZE_OF_LONG_LONG)
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
check_type_size("unsigned short" SIZE_OF_UNSIGNED_SHORT)
|
|
Packit |
0b5880 |
check_type_size("unsigned" SIZE_OF_UNSIGNED)
|
|
Packit |
0b5880 |
check_type_size("unsigned long" SIZE_OF_UNSIGNED_LONG)
|
|
Packit |
0b5880 |
check_type_size("unsigned long long" SIZE_OF_UNSIGNED_LONG_LONG)
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
check_type_size("__int64" __INT64)
|
|
Packit |
0b5880 |
check_type_size("unsigned __int64" UNSIGNED___INT64)
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
check_type_size(int16_t INT16_T)
|
|
Packit |
0b5880 |
check_type_size(int32_t INT32_T)
|
|
Packit |
0b5880 |
check_type_size(int64_t INT64_T)
|
|
Packit |
0b5880 |
check_type_size(intmax_t INTMAX_T)
|
|
Packit |
0b5880 |
check_type_size(uint8_t UINT8_T)
|
|
Packit |
0b5880 |
check_type_size(uint16_t UINT16_T)
|
|
Packit |
0b5880 |
check_type_size(uint32_t UINT32_T)
|
|
Packit |
0b5880 |
check_type_size(uint64_t UINT64_T)
|
|
Packit |
0b5880 |
check_type_size(uintmax_t UINTMAX_T)
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
#
|
|
Packit |
0b5880 |
set(CMAKE_EXTRA_INCLUDE_FILES time.h)
|
|
Packit |
0b5880 |
check_type_size(clock_t CLOCK_T)
|
|
Packit |
0b5880 |
if(NOT HAVE_CLOCK_T)
|
|
Packit |
0b5880 |
set(clock_t int)
|
|
Packit |
0b5880 |
endif(NOT HAVE_CLOCK_T)
|
|
Packit |
0b5880 |
unset(CMAKE_EXTRA_INCLUDE_FILES)
|
|
Packit |
0b5880 |
#
|
|
Packit |
0b5880 |
set(CMAKE_EXTRA_INCLUDE_FILES time.h)
|
|
Packit |
0b5880 |
check_type_size(clockid_t CLOCKID_T)
|
|
Packit |
0b5880 |
if(NOT HAVE_CLOCKID_T)
|
|
Packit |
0b5880 |
set(clockid_t int)
|
|
Packit |
0b5880 |
endif(NOT HAVE_CLOCKID_T)
|
|
Packit |
0b5880 |
unset(CMAKE_EXTRA_INCLUDE_FILES)
|
|
Packit |
0b5880 |
#
|
|
Packit |
0b5880 |
check_type_size(size_t SIZE_T)
|
|
Packit |
0b5880 |
if(NOT HAVE_SIZE_T)
|
|
Packit |
0b5880 |
if("${CMAKE_SIZEOF_VOID_P}" EQUAL 8)
|
|
Packit |
0b5880 |
set(size_t "uint64_t")
|
|
Packit |
0b5880 |
else("${CMAKE_SIZEOF_VOID_P}" EQUAL 8)
|
|
Packit |
0b5880 |
set(size_t "uint32_t")
|
|
Packit |
0b5880 |
endif("${CMAKE_SIZEOF_VOID_P}" EQUAL 8)
|
|
Packit |
0b5880 |
endif(NOT HAVE_SIZE_T)
|
|
Packit |
0b5880 |
#
|
|
Packit |
0b5880 |
check_type_size(ssize_t SSIZE_T)
|
|
Packit |
0b5880 |
if(NOT HAVE_SSIZE_T)
|
|
Packit |
0b5880 |
if("${CMAKE_SIZEOF_VOID_P}" EQUAL 8)
|
|
Packit |
0b5880 |
set(ssize_t "int64_t")
|
|
Packit |
0b5880 |
else("${CMAKE_SIZEOF_VOID_P}" EQUAL 8)
|
|
Packit |
0b5880 |
set(ssize_t "long")
|
|
Packit |
0b5880 |
endif("${CMAKE_SIZEOF_VOID_P}" EQUAL 8)
|
|
Packit |
0b5880 |
endif(NOT HAVE_SSIZE_T)
|
|
Packit |
0b5880 |
#
|
|
Packit |
0b5880 |
check_type_size(pid_t PID_T)
|
|
Packit |
0b5880 |
if(NOT HAVE_PID_T)
|
|
Packit |
0b5880 |
if(WIN32)
|
|
Packit |
0b5880 |
set(pid_t "int")
|
|
Packit |
0b5880 |
else(WIN32)
|
|
Packit |
0b5880 |
MESSAGE(FATAL_ERROR "pid_t doesn't exist on this platform?")
|
|
Packit |
0b5880 |
endif(WIN32)
|
|
Packit |
0b5880 |
endif(NOT HAVE_PID_T)
|
|
Packit |
0b5880 |
#
|
|
Packit |
0b5880 |
set(CMAKE_EXTRA_INCLUDE_FILES time.h)
|
|
Packit |
0b5880 |
check_type_size(timer_t TIMER_T)
|
|
Packit |
0b5880 |
if(NOT HAVE_TIMER_T)
|
|
Packit |
0b5880 |
set(timer_t int)
|
|
Packit |
0b5880 |
endif(NOT HAVE_TIMER_T)
|
|
Packit |
0b5880 |
unset(CMAKE_EXTRA_INCLUDE_FILES)
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
###############################################################################
|
|
Packit |
0b5880 |
# Check libraries
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
check_library_exists(m floor "" HAVE_LIBM)
|
|
Packit |
0b5880 |
if (HAVE_LIBM)
|
|
Packit |
0b5880 |
set (LIBM "m")
|
|
Packit |
0b5880 |
endif (HAVE_LIBM)
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
check_library_exists(rt clock_gettime "" HAVE_LIBRT)
|
|
Packit |
0b5880 |
if (HAVE_LIBRT)
|
|
Packit |
0b5880 |
set(LIBRT "rt")
|
|
Packit |
0b5880 |
ADD_DEFINITIONS(-DHAVE_LIBRT=1)
|
|
Packit |
0b5880 |
endif (HAVE_LIBRT)
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
check_library_exists(subunit subunit_test_start "" HAVE_SUBUNIT)
|
|
Packit |
0b5880 |
if (HAVE_SUBUNIT)
|
|
Packit |
0b5880 |
set(SUBUNIT "subunit")
|
|
Packit |
0b5880 |
set(ENABLE_SUBUNIT 1)
|
|
Packit |
0b5880 |
add_definitions(-DENABLE_SUBUNIT=1)
|
|
Packit |
0b5880 |
else(HAVE_SUBUNIT)
|
|
Packit |
0b5880 |
set(ENABLE_SUBUNIT 0)
|
|
Packit |
0b5880 |
add_definitions(-DENABLE_SUBUNIT=0)
|
|
Packit |
0b5880 |
endif (HAVE_SUBUNIT)
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
###############################################################################
|
|
Packit |
0b5880 |
# Generate "config.h" from "cmake/config.h.cmake"
|
|
Packit |
0b5880 |
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/config.h.in
|
|
Packit |
0b5880 |
${CMAKE_CURRENT_BINARY_DIR}/config.h)
|
|
Packit |
0b5880 |
include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR})
|
|
Packit |
0b5880 |
add_definitions(-DHAVE_CONFIG_H)
|
|
Packit |
0b5880 |
set(CONFIG_HEADER ${CMAKE_CURRENT_BINARY_DIR}/config.h)
|
|
Packit |
0b5880 |
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/check_stdint.h.in
|
|
Packit |
0b5880 |
${CMAKE_CURRENT_BINARY_DIR}/check_stdint.h)
|
|
Packit |
0b5880 |
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/check_stdint.h DESTINATION include)
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
###############################################################################
|
|
Packit |
0b5880 |
# Subdirectories
|
|
Packit |
0b5880 |
add_subdirectory(lib)
|
|
Packit |
0b5880 |
add_subdirectory(src)
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
###############################################################################
|
|
Packit |
0b5880 |
# Unit tests
|
|
Packit |
0b5880 |
if (CHECK_ENABLE_TESTS)
|
|
Packit |
0b5880 |
add_subdirectory(tests)
|
|
Packit |
0b5880 |
enable_testing()
|
|
Packit |
0b5880 |
add_test(NAME check_check COMMAND check_check)
|
|
Packit |
0b5880 |
add_test(NAME check_check_export COMMAND check_check_export)
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
# Only offer to run shell scripts if we may have a working interpreter
|
|
Packit |
0b5880 |
if(UNIX OR MINGW OR MSYS)
|
|
Packit |
0b5880 |
add_test(NAME test_output.sh
|
|
Packit |
0b5880 |
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tests
|
|
Packit |
0b5880 |
COMMAND sh ${CMAKE_CURRENT_SOURCE_DIR}/tests/test_output.sh)
|
|
Packit |
0b5880 |
add_test(NAME test_log_output.sh
|
|
Packit |
0b5880 |
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tests
|
|
Packit |
0b5880 |
COMMAND sh ${CMAKE_CURRENT_SOURCE_DIR}/tests/test_log_output.sh)
|
|
Packit |
0b5880 |
add_test(NAME test_xml_output.sh
|
|
Packit |
0b5880 |
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tests
|
|
Packit |
0b5880 |
COMMAND sh ${CMAKE_CURRENT_SOURCE_DIR}/tests/test_xml_output.sh)
|
|
Packit |
0b5880 |
add_test(NAME test_tap_output.sh
|
|
Packit |
0b5880 |
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tests
|
|
Packit |
0b5880 |
COMMAND sh ${CMAKE_CURRENT_SOURCE_DIR}/tests/test_tap_output.sh)
|
|
Packit |
0b5880 |
add_test(NAME test_check_nofork.sh
|
|
Packit |
0b5880 |
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tests
|
|
Packit |
0b5880 |
COMMAND sh ${CMAKE_CURRENT_SOURCE_DIR}/tests/test_check_nofork.sh)
|
|
Packit |
0b5880 |
add_test(NAME test_check_nofork_teardown.sh
|
|
Packit |
0b5880 |
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tests
|
|
Packit |
0b5880 |
COMMAND sh ${CMAKE_CURRENT_SOURCE_DIR}/tests/test_check_nofork_teardown.sh)
|
|
Packit |
0b5880 |
add_test(NAME test_set_max_msg_size.sh
|
|
Packit |
0b5880 |
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tests
|
|
Packit |
0b5880 |
COMMAND sh ${CMAKE_CURRENT_SOURCE_DIR}/tests/test_set_max_msg_size.sh)
|
|
Packit |
0b5880 |
endif(UNIX OR MINGW OR MSYS)
|
|
Packit |
0b5880 |
endif()
|