blob: 76f1f99b8c524affa6e905f004c5143fa0f07bcf [file] [edit]
enable_language(C)
enable_language(CXX)
# Warning options after the first entry are ignored for compatibility.
set(CMAKE_REQUIRED_FLAGS
"-DCHECK_REQUIRED_FLAGS -Drequired_flag_function=memcpy -Drequired_flag_library=memcpy -Drequired_flag_type=int"
"-Wseen-by-cmake")
set(CMAKE_REQUIRED_INCLUDES "${CMAKE_CURRENT_LIST_DIR}")
include(CheckFunctionExists)
include(CheckIncludeFile)
include(CheckIncludeFileCXX)
include(CheckIncludeFiles)
include(CheckLibraryExists)
include(CheckPrototypeDefinition)
include(CheckTypeSize)
function(run_tests)
if(${ARGC} GREATER 1)
set(${ARGN})
endif()
check_function_exists(required_flag_function CHECK_FUNCTION_EXISTS_RESULT)
check_include_file(CheckRequiredFlags.h CHECK_INCLUDE_FILE_RESULT)
check_include_file_cxx(CheckRequiredFlags.h CHECK_INCLUDE_FILE_CXX_RESULT)
check_include_files("stddef.h;CheckRequiredFlags.h" CHECK_INCLUDE_FILES_RESULT)
check_library_exists("" required_flag_library "" CHECK_LIBRARY_EXISTS_RESULT)
check_prototype_definition(
required_flag_prototype
"int required_flag_prototype(int value)"
"value"
"CheckRequiredFlags.h"
CHECK_PROTOTYPE_DEFINITION_RESULT
)
check_type_size(required_flag_type CHECK_TYPE_SIZE_RESULT)
foreach(result IN ITEMS
CHECK_FUNCTION_EXISTS_RESULT
CHECK_INCLUDE_FILE_RESULT
CHECK_INCLUDE_FILE_CXX_RESULT
CHECK_INCLUDE_FILES_RESULT
CHECK_LIBRARY_EXISTS_RESULT
CHECK_PROTOTYPE_DEFINITION_RESULT
CHECK_TYPE_SIZE_RESULT
)
if(NOT ${result})
message(SEND_ERROR "${result} did not honor CMAKE_REQUIRED_FLAGS")
endif()
unset(CACHE{${result}})
endforeach()
unset(CACHE{HAVE_CHECK_TYPE_SIZE_RESULT})
endfunction()
run_tests()
run_tests(CMAKE_REQUIRED_LINK_OPTIONS REQUIRED-NOTFOUND)
run_tests(CMAKE_REQUIRED_LIBRARIES REQUIRED-NOTFOUND)