diff options
author | Douglas Gregor <dgregor@apple.com> | 2009-10-01 17:25:36 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2009-10-01 17:25:36 +0000 |
commit | 9c091a4846044f18cfdd8bca55957c2aa6c9a8a5 (patch) | |
tree | 68d1f2f803228d7442212c7bca9b93fb0c3581ad /cmake | |
parent | 714e8bc1fc415050e557272326a75b50ac54d2bb (diff) | |
download | external_llvm-9c091a4846044f18cfdd8bca55957c2aa6c9a8a5.zip external_llvm-9c091a4846044f18cfdd8bca55957c2aa6c9a8a5.tar.gz external_llvm-9c091a4846044f18cfdd8bca55957c2aa6c9a8a5.tar.bz2 |
Teach CMake to look for bidirectional_iterator, iterator, forward_iterator, uint64_t, and u_int64_t, from Yonggang Luo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83203 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'cmake')
-rwxr-xr-x | cmake/config-ix.cmake | 48 |
1 files changed, 44 insertions, 4 deletions
diff --git a/cmake/config-ix.cmake b/cmake/config-ix.cmake index a33e5d9..17feffe 100755 --- a/cmake/config-ix.cmake +++ b/cmake/config-ix.cmake @@ -1,6 +1,28 @@ +include(CheckIncludeFile) +include(CheckLibraryExists) +include(CheckSymbolExists) +include(CheckFunctionExists) +include(CheckCXXSourceCompiles) + +# Helper macros and functions +macro(add_cxx_include result files) + set(${result} "") + foreach (file_name ${files}) + set(${result} "${${result}}#include<${file_name}>\n") + endforeach() +endmacro(add_cxx_include files result) + +function(check_type_exists type files variable) + add_cxx_include(includes "${files}") + CHECK_CXX_SOURCE_COMPILES(" + ${includes} ${type} typeVar; + int main() { + return 0; + } + " ${variable}) +endfunction() # include checks -include(CheckIncludeFile) check_include_file(argz.h HAVE_ARGZ_H) check_include_file(assert.h HAVE_ASSERT_H) check_include_file(dirent.h HAVE_DIRENT_H) @@ -41,15 +63,12 @@ check_include_file(utime.h HAVE_UTIME_H) check_include_file(windows.h HAVE_WINDOWS_H) # library checks -include(CheckLibraryExists) check_library_exists(pthread pthread_create "" HAVE_LIBPTHREAD) check_library_exists(pthread pthread_getspecific "" HAVE_PTHREAD_GETSPECIFIC) check_library_exists(pthread pthread_rwlock_init "" HAVE_PTHREAD_RWLOCK_INIT) check_library_exists(dl dlopen "" HAVE_LIBDL) # function checks -include(CheckSymbolExists) -include(CheckFunctionExists) check_symbol_exists(getpagesize unistd.h HAVE_GETPAGESIZE) check_symbol_exists(getrusage sys/resource.h HAVE_GETRUSAGE) check_symbol_exists(setrlimit sys/resource.h HAVE_SETRLIMIT) @@ -78,6 +97,27 @@ if( LLVM_USING_GLIBC ) add_llvm_definitions( -D_GNU_SOURCE ) endif() +# Type checks +check_type_exists(std::bidirectional_iterator<int,int> "iterator;iostream" HAVE_BI_ITERATOR) +check_type_exists(std::iterator<int,int,int> iterator HAVE_STD_ITERATOR) +check_type_exists(std::forward_iterator<int,int> iterator HAVE_FWD_ITERATOR) + +set(headers "") +if (HAVE_SYS_TYPES_H) + set(headers ${headers} "sys/types.h") +endif() + +if (HAVE_INTTYPES_H) + set(headers ${headers} "inttypes.h") +endif() + +if (HAVE_STDINT_H) + set(headers ${headers} "stdint.h") +endif() + +check_type_exists(uint64_t "${headers}" HAVE_UINT64_T) +check_type_exists(u_int64_t "${headers}" HAVE_U_INT64_T) + # Define LLVM_MULTITHREADED if gcc atomic builtins exists. include(CheckAtomic) |