diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
index 3ef3e8d7f48d31f1e0e02d748d4482801ef801e7..53ac20f5d9158437315402d256fc45722b63685b 100644
--- a/cmake/CMakeLists.txt
+++ b/cmake/CMakeLists.txt
@@ -43,6 +43,29 @@ function(validate_option name values)
     endif()
 endfunction(validate_option)
 
+function(get_lammps_version version_header variable)
+    file(READ ${version_header} line)
+    set(MONTHS x Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec)
+    string(REGEX REPLACE "#define LAMMPS_VERSION \"([0-9]+) ([A-Za-z]+) ([0-9]+)\"" "\\1" day "${line}")
+    string(REGEX REPLACE "#define LAMMPS_VERSION \"([0-9]+) ([A-Za-z]+) ([0-9]+)\"" "\\2" month "${line}")
+    string(REGEX REPLACE "#define LAMMPS_VERSION \"([0-9]+) ([A-Za-z]+) ([0-9]+)\"" "\\3" year "${line}")
+    string(STRIP ${day} day)
+    string(STRIP ${month} month)
+    string(STRIP ${year} year)
+    list(FIND MONTHS "${month}" month)
+    string(LENGTH ${day} day_length)
+    string(LENGTH ${month} month_length)
+    if(day_length EQUAL 1)
+        set(day "0${day}")
+    endif()
+    if(month_length EQUAL 1)
+        set(month "0${month}")
+    endif()
+    set(${variable} "${year}${month}${day}" PARENT_SCOPE)
+endfunction()
+
+get_lammps_version(${LAMMPS_SOURCE_DIR}/version.h LAMMPS_VERSION)
+
 # Cmake modules/macros are in a subdirectory to keep this file cleaner
 set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/Modules)
 
@@ -121,10 +144,10 @@ if(BUILD_LIB)
   if(BUILD_SHARED_LIBS) # for all pkg libs, mpi_stubs and linalg
     set(CMAKE_POSITION_INDEPENDENT_CODE ON)
   endif()
-  set(LIB_SUFFIX "" CACHE STRING "Suffix to append to liblammps and pkg-config file")
-  mark_as_advanced(LIB_SUFFIX)
-  if(LIB_SUFFIX)
-    set(LIB_SUFFIX "_${LIB_SUFFIX}")
+  set(LAMMPS_LIB_SUFFIX "" CACHE STRING "Suffix to append to liblammps and pkg-config file")
+  mark_as_advanced(LAMMPS_LIB_SUFFIX)
+  if(LAMMPS_LIB_SUFFIX)
+    set(LAMMPS_LIB_SUFFIX "_${LAMMPS_LIB_SUFFIX}")
   endif()
 endif()
 
@@ -1040,14 +1063,14 @@ if(BUILD_LIB)
   if(LAMMPS_DEPS)
     add_dependencies(lammps ${LAMMPS_DEPS})
   endif()
-  set_target_properties(lammps PROPERTIES OUTPUT_NAME lammps${LIB_SUFFIX})
-  if(BUILD_SHARED_LIBS)
-    set_target_properties(lammps PROPERTIES SOVERSION ${SOVERSION})
-    install(TARGETS lammps LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
-    install(FILES ${LAMMPS_SOURCE_DIR}/library.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lammps)
-    configure_file(pkgconfig/liblammps.pc.in ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LIB_SUFFIX}.pc @ONLY)
-    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LIB_SUFFIX}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
-  endif()
+  set_target_properties(lammps PROPERTIES OUTPUT_NAME lammps${LAMMPS_LIB_SUFFIX})
+  set_target_properties(lammps PROPERTIES SOVERSION ${SOVERSION})
+  install(TARGETS lammps LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(FILES ${LAMMPS_SOURCE_DIR}/library.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lammps)
+  configure_file(pkgconfig/liblammps.pc.in ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LAMMPS_LIB_SUFFIX}.pc @ONLY)
+  install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LAMMPS_LIB_SUFFIX}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+  configure_file(FindLAMMPS.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FindLAMMPS${LAMMPS_LIB_SUFFIX}.cmake @ONLY)
+  install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FindLAMMPS${LAMMPS_LIB_SUFFIX}.cmake DESTINATION ${CMAKE_INSTALL_DATADIR}/cmake/Module)
 else()
   list(APPEND LMP_SOURCES ${LIB_SOURCES})
 endif()
diff --git a/cmake/FindLAMMPS.cmake.in b/cmake/FindLAMMPS.cmake.in
new file mode 100644
index 0000000000000000000000000000000000000000..586df83c2d080197ea0256794febd395ab81cc63
--- /dev/null
+++ b/cmake/FindLAMMPS.cmake.in
@@ -0,0 +1,48 @@
+# - Find liblammps
+# Find the native liblammps headers and libraries.
+#
+# The following variables will set:
+#  LAMMPS_INCLUDE_DIRS - where to find lammps/library.h, etc.
+#  LAMMPS_LIBRARIES    - List of libraries when using lammps.
+#  LAMMPS_API_DEFINES  - lammps library api defines
+#  LAMMPS_VERSION      - lammps library version 
+#  LAMMPS_FOUND        - True if liblammps found.
+#
+# In addition a LAMMPS::LAMMPS imported target is getting created.
+#
+#  LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
+#  http://lammps.sandia.gov, Sandia National Laboratories
+#  Steve Plimpton, sjplimp@sandia.gov
+#
+#  Copyright (2003) Sandia Corporation.  Under the terms of Contract
+#  DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
+#  certain rights in this software.  This software is distributed under
+#  the GNU General Public License.
+#
+#  See the README file in the top-level LAMMPS directory.
+#
+
+find_package(PkgConfig)
+
+pkg_check_modules(PC_LAMMPS liblammps@LAMMPS_LIB_SUFFIX@)
+find_path(LAMMPS_INCLUDE_DIR lammps/library.h HINTS ${PC_LAMMPS_INCLUDE_DIRS} @CMAKE_INSTALL_FULL_INCLUDEDIR@)
+
+set(LAMMPS_VERSION @LAMMPS_VERSION@)
+set(LAMMPS_API_DEFINES @LAMMPS_API_DEFINES@)
+
+find_library(LAMMPS_LIBRARY NAMES lammps@LAMMPS_LIB_SUFFIX@ HINTS ${PC_LAMMPS_LIBRARY_DIRS} @CMAKE_INSTALL_FULL_LIBDIR@)
+
+set(LAMMPS_INCLUDE_DIRS "${LAMMPS_INCLUDE_DIR}")
+set(LAMMPS_LIBRARIES "${LAMMPS_LIBRARY}")
+
+include(FindPackageHandleStandardArgs)
+# handle the QUIETLY and REQUIRED arguments and set LAMMPS_FOUND to TRUE
+# if all listed variables are TRUE
+find_package_handle_standard_args(LAMMPS REQUIRED_VARS LAMMPS_LIBRARY LAMMPS_INCLUDE_DIR VERSION_VAR LAMMPS_VERSION)
+
+mark_as_advanced(LAMMPS_INCLUDE_DIR LAMMPS_LIBRARY)
+
+if(LAMMPS_FOUND AND NOT TARGET LAMMPS::LAMMPS)
+  add_library(LAMMPS::LAMMPS UNKNOWN IMPORTED)
+  set_target_properties(LAMMPS::LAMMPS PROPERTIES IMPORTED_LOCATION "${LAMMPS_LIBRARY}" INTERFACE_INCLUDE_DIRECTORIES "${LAMMPS_INCLUDE_DIR}" INTERFACE_COMPILE_DEFINITIONS "${LAMMPS_API_DEFINES}")
+endif()
diff --git a/cmake/pkgconfig/liblammps.pc.in b/cmake/pkgconfig/liblammps.pc.in
index 400b7593cff4034539df766111dd53d6fbbeaac9..445b2ab29e719020ab10b5e579cee1655a11f7be 100644
--- a/cmake/pkgconfig/liblammps.pc.in
+++ b/cmake/pkgconfig/liblammps.pc.in
@@ -4,7 +4,7 @@
 # after you added @CMAKE_INSTALL_FULL_LIBDIR@/pkg-config to PKG_CONFIG_PATH,
 # e.g. export PKG_CONFIG_PATH=@CMAKE_INSTALL_FULL_LIBDIR@/pkgconfig
 
-prefix=@CMAKE_INSTALL_FULL_PREFIX@
+prefix=@CMAKE_INSTALL_PREFIX@
 libdir=@CMAKE_INSTALL_FULL_LIBDIR@
 includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
 
@@ -13,6 +13,6 @@ Description: Large-scale Atomic/Molecular Massively Parallel Simulator Library
 URL: http://lammps.sandia.gov
 Version:
 Requires:
-Libs: -L${libdir} -llammps@LIB_SUFFIX@@
+Libs: -L${libdir} -llammps@LAMMPS_LIB_SUFFIX@
 Libs.private: -lm
 Cflags: -I${includedir} @LAMMPS_API_DEFINES@