include(CheckLibraryExists)
include(CheckCXXCompilerFlag)

# Check compiler flags
check_cxx_compiler_flag(-std=c++0x            LIBCXX_HAS_STDCXX0X_FLAG)
check_cxx_compiler_flag(-fPIC                 LIBCXX_HAS_FPIC_FLAG)
check_cxx_compiler_flag(-nodefaultlibs        LIBCXX_HAS_NODEFAULTLIBS_FLAG)
check_cxx_compiler_flag(-nostdinc++           LIBCXX_HAS_NOSTDINCXX_FLAG)
check_cxx_compiler_flag(-Wall                 LIBCXX_HAS_WALL_FLAG)
check_cxx_compiler_flag(-W                    LIBCXX_HAS_W_FLAG)
check_cxx_compiler_flag(-Wno-unused-parameter LIBCXX_HAS_WNO_UNUSED_PARAMETER_FLAG)
check_cxx_compiler_flag(-Wwrite-strings       LIBCXX_HAS_WWRITE_STRINGS_FLAG)
check_cxx_compiler_flag(-Wno-long-long        LIBCXX_HAS_WNO_LONG_LONG_FLAG)
check_cxx_compiler_flag(-pedantic             LIBCXX_HAS_PEDANTIC_FLAG)
check_cxx_compiler_flag(-Werror               LIBCXX_HAS_WERROR_FLAG)
check_cxx_compiler_flag(-fno-exceptions       LIBCXX_HAS_FNO_EXCEPTIONS_FLAG)
check_cxx_compiler_flag(-fno-rtti             LIBCXX_HAS_FNO_RTTI_FLAG)
check_cxx_compiler_flag(/WX                   LIBCXX_HAS_WX_FLAG)
check_cxx_compiler_flag(/EHsc                 LIBCXX_HAS_EHSC_FLAG)
check_cxx_compiler_flag(/EHs-                 LIBCXX_HAS_NO_EHS_FLAG)
check_cxx_compiler_flag(/EHa-                 LIBCXX_HAS_NO_EHA_FLAG)
check_cxx_compiler_flag(/GR-                  LIBCXX_HAS_NO_GR_FLAG)

# Check libraries
check_library_exists(pthread pthread_create "" LIBCXX_HAS_PTHREAD_LIB)
check_library_exists(c printf "" LIBCXX_HAS_C_LIB)
check_library_exists(m ccos "" LIBCXX_HAS_M_LIB)
check_library_exists(rt clock_gettime "" LIBCXX_HAS_RT_LIB)
check_library_exists(gcc_s __gcc_personality_v0 "" LIBCXX_HAS_GCC_S_LIB)

# Check C++0x features
if (LIBCXX_ENABLE_CXX0X)
  if (LIBCXX_HAS_STDCXX0X_FLAG)
    set(CMAKE_REQUIRED_DEFINITIONS -std=c++0x)
  endif()
else()
  set(LIBCXX_HAS_STDCXX0X_FLAG FALSE)
endif()
