Use any user-specified CMAKE_CXX_FLAGS in CheckCXXSourceCompiles().

Change-Id: I5816e3b65d8d273c76bf19c475f8fafd9f9bd7a1
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7406fca..0174824 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -450,13 +450,18 @@
   list(APPEND CERES_COMPILE_OPTIONS CERES_NO_THREADS)
 endif (OPENMP)
 
+# Initialise CMAKE_REQUIRED_FLAGS used by CheckCXXSourceCompiles with the
+# contents of CMAKE_CXX_FLAGS such that if the user has passed extra flags
+# they are used when discovering shared_ptr/unordered_map.
+set(CMAKE_REQUIRED_FLAGS ${CMAKE_CXX_FLAGS})
+
 include(CheckCXXCompilerFlag)
 check_cxx_compiler_flag("-std=c++11" COMPILER_HAS_CXX11_FLAG)
 if (CXX11 AND COMPILER_HAS_CXX11_FLAG)
   # Update CMAKE_REQUIRED_FLAGS used by CheckCXXSourceCompiles to include
   # -std=c++11 s/t we will detect the C++11 versions of unordered_map &
   # shared_ptr if they exist.
-  set(CMAKE_REQUIRED_FLAGS -std=c++11)
+  set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -std=c++11")
 endif (CXX11 AND COMPILER_HAS_CXX11_FLAG)
 
 # Set the Ceres compile definitions for the unordered_map configuration.