diff --git a/CMakeLists.txt b/CMakeLists.txt
index fc366c9..9b7e841 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -74,15 +74,10 @@
 set(CMAKE_RELEASE_POSTFIX "")
 set(CMAKE_DEBUG_POSTFIX "-debug")
 
-# Important: Always bump the second number (e.g. 1.3.x to 1.4.0) for any
-# release that changes the ABI. The ABI changes for almost any modification to
-# include/ceres (e.g. the public API). If you are unsure about whether
-# something is an ABI change, please ask on the list.
-set(CERES_VERSION_MAJOR 1)
-set(CERES_VERSION_MINOR 11)
-set(CERES_VERSION_PATCH 0)
-set(CERES_VERSION
-    ${CERES_VERSION_MAJOR}.${CERES_VERSION_MINOR}.${CERES_VERSION_PATCH})
+# Read the Ceres version from the source, such that we only ever have a single
+# definition of the Ceres version.
+include(ReadCeresVersionFromSource)
+read_ceres_version_from_source(${CMAKE_SOURCE_DIR})
 
 enable_testing()
 
diff --git a/cmake/ReadCeresVersionFromSource.cmake b/cmake/ReadCeresVersionFromSource.cmake
new file mode 100644
index 0000000..2859744
--- /dev/null
+++ b/cmake/ReadCeresVersionFromSource.cmake
@@ -0,0 +1,81 @@
+# Ceres Solver - A fast non-linear least squares minimizer
+# Copyright 2015 Google Inc. All rights reserved.
+# http://ceres-solver.org/
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# * Redistributions of source code must retain the above copyright notice,
+#   this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright notice,
+#   this list of conditions and the following disclaimer in the documentation
+#   and/or other materials provided with the distribution.
+# * Neither the name of Google Inc. nor the names of its contributors may be
+#   used to endorse or promote products derived from this software without
+#   specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+# Author: alexs.mac@gmail.com (Alex Stewart)
+#
+
+# Extract Ceres version from <CERES_SOURCE_ROOT>/include/ceres/version.h
+# so that we only have a single definition of the Ceres version, not two
+# one in the source and one in the CMakeLists.txt.
+macro(read_ceres_version_from_source CERES_SOURCE_ROOT)
+  set(CERES_VERSION_FILE ${CERES_SOURCE_ROOT}/include/ceres/version.h)
+  if (NOT EXISTS ${CERES_VERSION_FILE})
+    message(FATAL_ERROR "Cannot find Ceres version.h file in specified "
+      "Ceres source directory: ${CERES_SOURCE_ROOT}, it is not here: "
+      "${CERES_VERSION_FILE}")
+  endif()
+
+  file(READ ${CERES_VERSION_FILE} CERES_VERSION_FILE_CONTENTS)
+
+  string(REGEX MATCH "#define CERES_VERSION_MAJOR [0-9]+"
+    CERES_VERSION_MAJOR "${CERES_VERSION_FILE_CONTENTS}")
+  string(REGEX REPLACE "#define CERES_VERSION_MAJOR ([0-9]+)" "\\1"
+    CERES_VERSION_MAJOR "${CERES_VERSION_MAJOR}")
+  # NOTE: if (VAR) is FALSE if VAR is numeric and <= 0, as such we cannot use
+  #       it for testing version numbers, which might well be zero, at least
+  #       for the patch version, hence check for empty string explicitly.
+  if ("${CERES_VERSION_MAJOR}" STREQUAL "")
+    message(FATAL_ERROR "Failed to extract Ceres major version from "
+      "${CERES_VERSION_FILE}")
+  endif()
+
+  string(REGEX MATCH "#define CERES_VERSION_MINOR [0-9]+"
+    CERES_VERSION_MINOR "${CERES_VERSION_FILE_CONTENTS}")
+  string(REGEX REPLACE "#define CERES_VERSION_MINOR ([0-9]+)" "\\1"
+    CERES_VERSION_MINOR "${CERES_VERSION_MINOR}")
+  if ("${CERES_VERSION_MINOR}" STREQUAL "")
+    message(FATAL_ERROR "Failed to extract Ceres minor version from "
+      "${CERES_VERSION_FILE}")
+  endif()
+
+  string(REGEX MATCH "#define CERES_VERSION_REVISION [0-9]+"
+    CERES_VERSION_PATCH "${CERES_VERSION_FILE_CONTENTS}")
+  string(REGEX REPLACE "#define CERES_VERSION_REVISION ([0-9]+)" "\\1"
+    CERES_VERSION_PATCH "${CERES_VERSION_PATCH}")
+  if ("${CERES_VERSION_PATCH}" STREQUAL "")
+    message(FATAL_ERROR "Failed to extract Ceres patch version from "
+      "${CERES_VERSION_FILE}")
+  endif()
+
+  # This is on a single line s/t CMake does not interpret it as a list of
+  # elements and insert ';' separators which would result in 3.;2.;0 nonsense.
+  set(CERES_VERSION "${CERES_VERSION_MAJOR}.${CERES_VERSION_MINOR}.${CERES_VERSION_PATCH}")
+
+  message(STATUS "Detected Ceres version: ${CERES_VERSION} from "
+    "${CERES_VERSION_FILE}")
+endmacro()
diff --git a/scripts/make_release b/scripts/make_release
index f146fe1..ce5d5cd 100755
--- a/scripts/make_release
+++ b/scripts/make_release
@@ -40,14 +40,16 @@
 
 TMP="/tmp/ceres-solver-$1"
 DOCS_TMP="/tmp/ceres-solver-docs-$1"
-VERSION=$(grep 'set(CERES_VERSION_' CMakeLists.txt | \
-          sed -e 's/\(.*\) \(.*\))/\2/' | \
-          tr '\n' '.' | sed -e 's/.$//')
+VERSION=$(grep '#define CERES_VERSION_' include/ceres/version.h | \
+          sed -e 's/#define CERES_VERSION_STRING.*$//' | \
+          sed -e 's/\(^#define CERES_VERSION_[MR^S].[A-Z]*\) \([0-9]\)/\2/' | \
+          tr '\n' '.' | \
+          sed -e 's/..$//')
 GIT_COMMIT=$(git log -1 HEAD |grep commit)
 
 if [[ $1 != $VERSION ]] ; then
   echo "ERROR: Version from the command line $1 does not match CERES_VERSION"
-  echo "       in CMakeLists.txt, which is $VERSION. You may not be in the "
+  echo "       in include/ceres/version.h, which is $VERSION. You may not be in the "
   echo "       toplevel source dir."
   exit 1
 fi
