70 lines
1.9 KiB
CMake
70 lines
1.9 KiB
CMake
# Copyright (C) 2015-2016 Franklin "Snaipe" Mathieu.
|
|
# Redistribution and use of this file is allowed according to the terms of the MIT license.
|
|
# For details see the LICENSE file distributed with Criterion.
|
|
|
|
include(CheckPrototypeDefinition)
|
|
include(CheckLibraryExists)
|
|
include(CheckFunctionExists)
|
|
include(CheckSymbolExists)
|
|
include(PackageUtils)
|
|
|
|
# Check for packages
|
|
|
|
cr_find_package (Gettext)
|
|
cr_find_package (Libintl)
|
|
|
|
if (I18N AND GETTEXT_FOUND AND LIBINTL_LIB_FOUND)
|
|
set (GettextTranslate_ALL 1)
|
|
set (GettextTranslate_GMO_BINARY 1)
|
|
set (ENABLE_NLS 1)
|
|
endif ()
|
|
|
|
# Check for functions
|
|
|
|
check_function_exists(strtok_s HAVE_STRTOK_S)
|
|
check_function_exists(strtok_r HAVE_STRTOK_R)
|
|
|
|
check_library_exists (anl getaddrinfo_a "" HAVE_GETADDRINFO_A)
|
|
|
|
check_function_exists(funopen HAVE_FUNOPEN)
|
|
check_function_exists(fopencookie HAVE_FOPENCOOKIE)
|
|
check_function_exists(open_memstream HAVE_OPEN_MEMSTREAM)
|
|
|
|
check_library_exists(rt clock_gettime "time.h" HAVE_CLOCK_GETTIME_RT)
|
|
if (HAVE_CLOCK_GETTIME_RT AND NOT HAVE_LIBRT)
|
|
set (HAVE_LIBRT 1)
|
|
endif ()
|
|
|
|
if (NOT HAVE_CLOCK_GETTIME_RT)
|
|
check_symbol_exists(clock_gettime "time.h" HAVE_CLOCK_GETTIME)
|
|
else ()
|
|
set (HAVE_CLOCK_GETTIME "${HAVE_CLOCK_GETTIME_RT}" CACHE INTERNAL "Have symbol clock_gettime")
|
|
endif ()
|
|
|
|
check_symbol_exists(CLOCK_MONOTONIC_RAW "time.h" HAVE_CLOCK_MONOTONIC_RAW)
|
|
|
|
# Check for C++11
|
|
|
|
if (LANG_CXX)
|
|
enable_language(CXX)
|
|
endif ()
|
|
|
|
if (NOT MSVC AND CMAKE_CXX_COMPILER_WORKS)
|
|
include(CheckCXXCompilerFlag)
|
|
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
|
|
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
|
|
|
|
if(COMPILER_SUPPORTS_CXX11)
|
|
set(CXX11_FLAG "-std=c++11")
|
|
elseif(COMPILER_SUPPORTS_CXX0X)
|
|
set(CXX11_FLAG "-std=c++0x")
|
|
else()
|
|
message(FATAL_ERROR "Compiler ${CMAKE_CXX_COMPILER} has no C++11 support.")
|
|
endif()
|
|
endif()
|
|
|
|
# Valgrind support
|
|
|
|
if (DEV_BUILD)
|
|
set(ENABLE_VALGRIND_ERRORS 1)
|
|
endif ()
|