diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7b926c5..529c99b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -32,41 +32,12 @@
 cmake_minimum_required(VERSION 3.16...3.29)
 project(Ceres C CXX)
 
-# NOTE: The following CMake variables (and those further below) must be applied
-# consistently to all targets in project to avoid visibility warnings by placing
-# the variables at the project top.
-
 # Always build position-independent code (PIC), even when building Ceres as a
 # static library so that shared libraries can link against it, not just
 # executables (PIC does not apply on Windows). Global variable can be overridden
 # by the user whereas target properties can be not.
 set(CMAKE_POSITION_INDEPENDENT_CODE ON)
 
-# Abseil
-
-# In the normal course of things, we would not need the following constraint.
-# However, if we do not set the standard, then std::basic_string_view is not
-# available, which absl depends on and linking the test fails.
-set(CMAKE_CXX_STANDARD 17)
-# Abseil does not handle symbol visibility correctly. As a workaround, we let it
-# expose all the symbols to avoid linker errors.
-set(CMAKE_CXX_VISIBILITY_PRESET default)
-# ABSL plans to enable this flag to be on by default in the future. If it is not
-# set, then it issues a warning. We force enable it, both to silence the warning
-# but to also be safe going forward.
-option(ABSL_PROPAGATE_CXX_STD "Use CMake C++ standard meta features
-(e.g. cxx_std_14) that propagate to targets that link to Abseil" ON)
-option(ABSL_ENABLE_INSTALL "Enable install rules" ON)
-add_subdirectory(third_party/abseil-cpp)
-unset(CMAKE_CXX_STANDARD)
-unset(CMAKE_CXX_VISIBILITY_PRESET)
-
-# Set the default symbol visibility to hidden to unify the behavior among
-# the various compilers and to get smaller binaries
-set(CMAKE_C_VISIBILITY_PRESET hidden)
-set(CMAKE_CXX_VISIBILITY_PRESET hidden)
-set(CMAKE_VISIBILITY_INLINES_HIDDEN ON)
-
 # NOTE: The 'generic' CMake variables CMAKE_[SOURCE/BINARY]_DIR should not be
 #       used.  Always use the project-specific variants (generated by CMake):
 #       <PROJECT_NAME_MATCHING_CASE>_[SOURCE/BINARY]_DIR, e.g.
@@ -151,6 +122,67 @@
   option(ANDROID_STRIP_DEBUG_SYMBOLS "Strip debug symbols from Android builds (reduces file sizes)" ON)
 endif()
 
+# Abseil
+if (EXISTS "${Ceres_SOURCE_DIR}/third_party/abseil-cpp/CMakeLists.txt")
+  message("-- Using the version of abseil in ceres-solver/third_party/abseil-cpp")
+  # In the normal course of things, we would not need the following constraint.
+  # However, if we do not set the standard, then std::basic_string_view is not
+  # available, which absl depends on and linking the test fails.
+  set(CMAKE_CXX_STANDARD 17)
+  # Abseil does not handle symbol visibility correctly. As a workaround, we let it
+  # expose all the symbols to avoid linker errors.
+  set(CMAKE_CXX_VISIBILITY_PRESET default)
+  # ABSL plans to enable this flag to be on by default in the future. If it is not
+  # set, then it issues a warning. We force enable it, both to silence the warning
+  # but to also be safe going forward.
+
+  option(ABSL_PROPAGATE_CXX_STD "Use CMake C++ standard meta features
+  (e.g. cxx_std_14) that propagate to targets that link to Abseil" ON)
+  option(ABSL_ENABLE_INSTALL "Enable install rules" ON)
+
+  add_subdirectory(third_party/abseil-cpp)
+
+  unset(CMAKE_CXX_STANDARD)
+  unset(CMAKE_CXX_VISIBILITY_PRESET)
+
+  # Set the default symbol visibility to hidden to unify the behavior among
+  # the various compilers and to get smaller binaries
+  set(CMAKE_C_VISIBILITY_PRESET hidden)
+  set(CMAKE_CXX_VISIBILITY_PRESET hidden)
+  set(CMAKE_VISIBILITY_INLINES_HIDDEN ON)
+else()
+  message("-- ceres-solver/third_party/abseil-cpp is empty, so falling back to system installed abseil")
+  find_package(absl REQUIRED)
+  message("-- Found abseil version ${absl_VERSION}: ${absl_DIR}")
+  # For some reason unknown to me having the version number in the
+  # find_package call fails. So we check for he minimum version
+  # manually.
+  if (absl_VERSION VERSION_LESS 20240116.2)
+    message(FATAL_ERROR "The version of abseil installed on the system is " ${absl_VERSION} " need at least 20240116.2")
+  endif()
+endif()
+
+# Google Test
+if (BUILD_TESTING)
+  if (EXISTS "${Ceres_SOURCE_DIR}/third_party/googletest/CMakeLists.txt")
+    message("-- Using the version of googletest in ceres-solver/third_party/googletest")
+    # Now that we have absl as a dependency, it would make sense to tell
+    # googletest to use absl also, but doing so seems to be problematic
+    # for now, since if there is a version of absl and re2 installed in
+    # the system then we start getting errors because we maybe using the
+    # absl from our submodule, but the re2 installed on the system only
+    # sees the absl installed on the system. It is possible that we will
+    # need to include re2 as a submodule also, for the following to
+    # work.
+
+    # set(GTEST_HAS_ABSL ON CACHE BOOL "Use ABSL when building gtest")
+    add_subdirectory(${Ceres_SOURCE_DIR}/third_party/googletest ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/googletest)
+  else()
+    message("-- ceres-solver/third_party/googletest is empty, so falling back to system installed googletest")
+    find_package(GTest 1.14.0 REQUIRED)
+  endif()
+endif(BUILD_TESTING)
+
 # IOS is defined iff using the iOS.cmake CMake toolchain to build a static
 # library for iOS.
 if (IOS)
diff --git a/internal/ceres/CMakeLists.txt b/internal/ceres/CMakeLists.txt
index c997a4d..5331843 100644
--- a/internal/ceres/CMakeLists.txt
+++ b/internal/ceres/CMakeLists.txt
@@ -362,18 +362,6 @@
         ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 
 if (BUILD_TESTING)
-  # Now that we have absl as a dependency, it would make sense to tell
-  # googletest to use absl also, but doing so seems to be problematic
-  # for now, since if there is a version of absl and re2 installed in
-  # the system then we start getting errors because we maybe using the
-  # absl from our submodule, but the re2 installed on the system only
-  # sees the absl installed on the system. It is possible that we will
-  # need to include re2 as a submodule also, for the following to
-  # work.
-
-  # set(GTEST_HAS_ABSL ON CACHE BOOL "Use ABSL when building gtest")
-  add_subdirectory(${Ceres_SOURCE_DIR}/third_party/googletest ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/googletest)
-
   add_library(test_util STATIC
               evaluator_test_utils.cc
               numeric_diff_test_utils.cc
