Decouple library version and so version.

BUG=aomedia:2663

Change-Id: I1fba96a41c527976a6bdb63e27f73d11f85b5936
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f152e13..2ef0863 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -32,6 +32,11 @@
                 "And re-run CMake from the aom_build directory.")
 endif()
 
+# Updating version info.
+# https://www.gnu.org/software/libtool/manual/libtool.html#Updating-version-info
+set(SO_VERSION 2)
+set(SO_FILE_VERSION 2.0.0)
+
 include("${AOM_ROOT}/build/cmake/aom_configure.cmake")
 include("${AOM_ROOT}/aom_dsp/aom_dsp.cmake")
 include("${AOM_ROOT}/aom_mem/aom_mem.cmake")
@@ -240,10 +245,14 @@
       string(SUBSTRING "${aom_version_triple}" 0 ${dash_pos} aom_version_triple)
     endif()
 
-    # Note: CMake docs claim it's only necessary to set one of these, but that's
-    # not true for at least some CMake releases (3.13.4, for example).
-    set_target_properties(aom PROPERTIES SOVERSION ${aom_version_triple})
-    set_target_properties(aom PROPERTIES VERSION ${aom_version_triple})
+    # cmake-format: off
+    # VERSION is embedded in the .so file name.
+    # libaom.so -> libaom.so.SOVERSION
+    # libaom.so.SOVERSION -> libaom.so.VERSION
+    # libaom.so.VERSION
+    # cmake-format: on
+    set_target_properties(aom PROPERTIES SOVERSION ${SO_VERSION})
+    set_target_properties(aom PROPERTIES VERSION ${SO_FILE_VERSION})
   endif()
 endif()
 
@@ -615,7 +624,6 @@
 if(BUILD_SHARED_LIBS)
   include("${AOM_ROOT}/build/cmake/exports.cmake")
   setup_exports_target()
-  set_target_properties(aom PROPERTIES SOVERSION 0)
 endif()
 
 # Handle user supplied compile and link flags last to ensure they're obeyed.