diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
index d83289b1788bf630090c1255cae99575f3f5a922..c61110bb4628af09ec1a497d9cb01301974b1b89 100644
--- a/cmake/CMakeLists.txt
+++ b/cmake/CMakeLists.txt
@@ -485,7 +485,12 @@ if(PKG_MESSAGE)
   option(MESSAGE_ZMQ "Use ZeroMQ in MESSAGE package" OFF)
   file(GLOB_RECURSE cslib_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/*.F
       ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/*.c ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/*.cpp)
-  add_library(cslib STATIC ${cslib_SOURCES})
+
+  if(BUILD_SHARED_LIBS)
+      add_library(cslib SHARED ${cslib_SOURCES})
+  else()
+      add_library(cslib STATIC ${cslib_SOURCES})
+  endif()
 
   if(BUILD_MPI)
     target_compile_definitions(cslib PRIVATE -DMPI_YES)