diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0f2fd15fc7b0b6b87a5ef2814cc4b34e93198312..2623232a7bbda553d3180fcdf13cc9e34ff99aea 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -91,3 +91,33 @@ endif ()
 if (BUILD_TESTING)
   add_subdirectory(tests)
 endif ()
+
+# --- Installation
+# packages required for installation
+include(GNUInstallDirs)
+include(CMakePackageConfigHelpers)
+
+install(TARGETS cdilib
+  ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
+  RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
+  LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
+
+get_target_property(cdi_install_files cdilib CDI_INSTALL_HEADERS)
+install(FILES ${cdi_install_files} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
+
+# -- create configuration files
+configure_package_config_file(
+  "${CMAKE_CURRENT_SOURCE_DIR}/src/cmake/cdi/cdi-config.cmake.in" "${CMAKE_BINARY_DIR}/cmake/cdi-config.cmake"
+  INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/cdi")
+write_basic_package_version_file(
+  "${CMAKE_BINARY_DIR}/cmake/cdi-config-version.cmake"
+  VERSION "${PACKAGE_VERSION}"
+  COMPATIBILITY SameMajorVersion)
+
+#Install CMake configuration files to 
+install(
+  FILES
+  "${CMAKE_BINARY_DIR}/cmake/cdi-config.cmake"
+  "${CMAKE_BINARY_DIR}/cmake/cdi-config-version.cmake"
+  DESTINATION
+  "${CMAKE_INSTALL_LIBDIR}/cmake/cdi")
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 1fc148b5efa1d29996faf4419005c8e74ffd1bc3..e64b8de1af1b794fdc5e2b9d7876ec37f26044c9 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -216,24 +216,3 @@ target_link_libraries(cdilib ${cdi_linked_libs})
 target_compile_definitions(cdilib PRIVATE PACKAGE_NAME="${PROJECT_NAME}" VERSION="${CMAKE_PROJECT_VERSION}" ${cdi_compile_defs})
 
 
-include(GNUInstallDirs)
-install(FILES cdi.h calendar.h cdi_datetime.h julian_date.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
-install(TARGETS cdilib
-  ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
-  RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
-  LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
-
-include(CMakePackageConfigHelpers)
-configure_package_config_file(
-  "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cdi/cdi-config.cmake.in" "${CMAKE_BINARY_DIR}/cmake/cdi-config.cmake"
-  INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/cdi")
-write_basic_package_version_file(
-  "${CMAKE_BINARY_DIR}/cmake/cdi-config-version.cmake"
-  VERSION "${PACKAGE_VERSION}"
-  COMPATIBILITY SameMajorVersion)
-install(
-  FILES
-    "${CMAKE_BINARY_DIR}/cmake/cdi-config.cmake"
-    "${CMAKE_BINARY_DIR}/cmake/cdi-config-version.cmake"
-  DESTINATION
-    "${CMAKE_INSTALL_LIBDIR}/cmake/cdi")