diff --git a/CMakeLists.txt b/CMakeLists.txt
index 88f0949..c57ef72 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -20,8 +20,21 @@ SET( charls_HEADERS "colortransform.h"  "context.h" "decoderstrategy.h"  "encode
 OPTION(charls_BUILD_SHARED_LIBS "Build CharLS with shared libraries." OFF)
 SET(BUILD_SHARED_LIBS ${charls_BUILD_SHARED_LIBS})
 
-add_library(CharLS header.cpp  interface.cpp  jpegls.cpp  )
+# Add soname to generated shared lib
 
+SET(CHARLS_LIB_MAJOR_VERSION 1)
+SET(CHARLS_LIB_MINOR_VERSION 0)
+
+IF(BUILD_SHARED_LIBS)
+       add_library(CharLS SHARED header.cpp  interface.cpp  jpegls.cpp  
+         stdafx.cpp
+         )
+       set_target_properties( CharLS PROPERTIES
+                              VERSION ${CHARLS_LIB_MAJOR_VERSION}.${CHARLS_LIB_MINOR_VERSION}
+                              SOVERSION ${CHARLS_LIB_MAJOR_VERSION}
+                              ) 
+
+ENDIF(BUILD_SHARED_LIBS)
 
 add_executable(charlstest test/main.cpp test/time.cpp test/util.cpp test/bitstreamdamage.cpp test/compliance.cpp test/performance.cpp test/dicomsamples.cpp)
 target_link_libraries (charlstest CharLS)
@@ -29,4 +42,8 @@ target_link_libraries (charlstest CharLS)
 # Installs the header files into the {build_dir}/include/libcharls directory
 install(FILES ${charls_HEADERS} DESTINATION include/CharLS)
 
+# Installs the target file (libCharLS.so) into the {build_dir}/lib directory
+install(TARGETS CharLS LIBRARY DESTINATION lib${LIB_SUFFIX})
+
+
 
