diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5a0b590..635eb75 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -10,6 +10,9 @@ set (OSL_LIBRARY_VERSION_RELEASE_TYPE "")   # "dev", "betaX", "RCY", ""
 set (OSO_FILE_VERSION_MAJOR 1)
 set (OSO_FILE_VERSION_MINOR 0)
 
+set (SOVERSION ${OSL_LIBRARY_VERSION_MAJOR}.${OSL_LIBRARY_VERSION_MINOR}
+     CACHE STRING "Set the SO version in the SO name of the output library")
+
 cmake_minimum_required (VERSION 2.6)
 if (NOT CMAKE_VERSION VERSION_LESS 2.8.4)
     cmake_policy (SET CMP0017 NEW)
diff --git a/src/liboslcomp/CMakeLists.txt b/src/liboslcomp/CMakeLists.txt
index cd71687..0a35afa 100644
--- a/src/liboslcomp/CMakeLists.txt
+++ b/src/liboslcomp/CMakeLists.txt
@@ -23,6 +23,14 @@ endif ()
 TARGET_LINK_LIBRARIES ( oslcomp ${OPENIMAGEIO_LIBRARY} ${Boost_LIBRARIES} ${CMAKE_DL_LIBS})
 LINK_ILMBASE ( oslcomp )
 
+if (NOT BUILDSTATIC)
+    MESSAGE (STATUS "Setting SOVERSION to: ${SOVERSION}")
+    SET_TARGET_PROPERTIES ( oslcomp
+                            PROPERTIES
+                            VERSION ${OSL_LIBRARY_VERSION_MAJOR}.${OSL_LIBRARY_VERSION_MINOR}.${OSL_LIBRARY_VERSION_PATCH}
+                            SOVERSION ${SOVERSION})
+endif ()
+
 if (BUILDSTATIC)
     INSTALL ( TARGETS oslcomp LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
 else ()
diff --git a/src/liboslexec/CMakeLists.txt b/src/liboslexec/CMakeLists.txt
index 0b98f75..5b943ba 100644
--- a/src/liboslexec/CMakeLists.txt
+++ b/src/liboslexec/CMakeLists.txt
@@ -129,6 +129,14 @@ TARGET_LINK_LIBRARIES ( oslexec
 ADD_DEPENDENCIES (oslexec "${CMAKE_CURRENT_SOURCE_DIR}/liboslcexec.map")
 LINK_ILMBASE ( oslexec )
 
+if (NOT BUILDSTATIC)
+    MESSAGE (STATUS "Setting SOVERSION to: ${SOVERSION}")
+    SET_TARGET_PROPERTIES ( oslexec
+                            PROPERTIES
+                            VERSION ${OSL_LIBRARY_VERSION_MAJOR}.${OSL_LIBRARY_VERSION_MINOR}.${OSL_LIBRARY_VERSION_PATCH}
+                            SOVERSION ${SOVERSION})
+endif ()
+
 if (BUILDSTATIC)
     INSTALL ( TARGETS oslexec LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
 else ()
diff --git a/src/liboslquery/CMakeLists.txt b/src/liboslquery/CMakeLists.txt
index 8d7b7a2..def6f56 100644
--- a/src/liboslquery/CMakeLists.txt
+++ b/src/liboslquery/CMakeLists.txt
@@ -14,6 +14,14 @@ endif ()
 TARGET_LINK_LIBRARIES ( oslquery ${OPENIMAGEIO_LIBRARY} ${Boost_LIBRARIES} )
 LINK_ILMBASE ( oslquery )
 
+if (NOT BUILDSTATIC)
+    MESSAGE (STATUS "Setting SOVERSION to: ${SOVERSION}")
+    SET_TARGET_PROPERTIES ( oslquery
+                            PROPERTIES
+                            VERSION ${OSL_LIBRARY_VERSION_MAJOR}.${OSL_LIBRARY_VERSION_MINOR}.${OSL_LIBRARY_VERSION_PATCH}
+                            SOVERSION ${SOVERSION})
+endif ()
+
 if (BUILDSTATIC)
     INSTALL ( TARGETS oslquery LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
 else ()
diff --git a/src/testshade/CMakeLists.txt b/src/testshade/CMakeLists.txt
index 3d99144..1312bae 100644
--- a/src/testshade/CMakeLists.txt
+++ b/src/testshade/CMakeLists.txt
@@ -13,7 +13,17 @@ else ()
 endif ()
 
 TARGET_LINK_LIBRARIES (libtestshade oslexec oslcomp oslquery ${OPENIMAGEIO_LIBRARY} ${Boost_LIBRARIES} ${CMAKE_DL_LIBS} ${LLVM_LIBRARY} )
-SET_TARGET_PROPERTIES (libtestshade PROPERTIES PREFIX "")
+
+if (BUILDSTATIC)
+    SET_TARGET_PROPERTIES (libtestshade PROPERTIES PREFIX "")
+else ()
+    MESSAGE (STATUS "Setting SOVERSION to: ${SOVERSION}")
+    SET_TARGET_PROPERTIES ( libtestshade
+                            PROPERTIES
+                            PREFIX ""
+                            VERSION ${OSL_LIBRARY_VERSION_MAJOR}.${OSL_LIBRARY_VERSION_MINOR}.${OSL_LIBRARY_VERSION_PATCH}
+                            SOVERSION ${SOVERSION})
+endif ()
 
 if (BUILDSTATIC)
     INSTALL ( TARGETS libtestshade LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
