diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
index b9481731c346c1fc43dc22d74aae811187a67860..e138a98cdd25722664c415c9868638843fee8cf4 100644
--- a/source/CMakeLists.txt
+++ b/source/CMakeLists.txt
@@ -120,12 +120,19 @@ install(
   RENAME adios2.h
 )
 install(
-  FILES
-    ADIOS.h ADIOSMacros.h ADIOS_MPI.h ADIOSTypes.h mpidummy.h
+  FILES ADIOS.h ADIOS.inl ADIOSMacros.h ADIOS_MPI.h ADIOSTypes.h mpidummy.h
   DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/adios2
 )
 install(
-  DIRECTORY core
+  DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/core
   DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/adios2
-  FILES_MATCHING PATTERN "*.h" PATTERN "*.inl"
+  FILES_MATCHING REGEX "[^/]*\.(h|inl)$"
+)
+
+# Library installation
+install(
+  TARGETS adios2 EXPORT adios2
+  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+  ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
 )
diff --git a/thirdparty/KWSys/CMakeLists.txt b/thirdparty/KWSys/CMakeLists.txt
index 058c8f9ef4b292dae879db5cc061f10b0dfed2d7..15166f82a0732ae99c06184559b4479a14b76818 100644
--- a/thirdparty/KWSys/CMakeLists.txt
+++ b/thirdparty/KWSys/CMakeLists.txt
@@ -1,5 +1,9 @@
 set(KWSYS_NAMESPACE adios2sys)
 set(KWSYS_USE_DynamicLoader ON)
 set(KWSYS_BUILD_SHARED OFF)
+if(NOT ADIOS_BUILD_SHARED_LIBS)
+  set(KWSYS_INSTALL_EXPORT_NAME adios2)
+  set(KWSYS_INSTALL_LIB_DIR ${CMAKE_INSTALL_LIBDIR})
+endif()
 
 add_subdirectory(adios2sys)