diff --git a/cmake/set_version_numbers.cmake b/cmake/set_version_numbers.cmake
index f6c1c9fd7f82b1e7810a62d4d2809a2c8398e625..333afd4c315501bfc9744ddda492af535b5866c4 100644
--- a/cmake/set_version_numbers.cmake
+++ b/cmake/set_version_numbers.cmake
@@ -35,3 +35,12 @@ endif( ${PROJECT_NAME}_BUILDVERSION )
 
 set(${PROJECT_NAME}_FULL_LIBRARY_VERSION ${${PROJECT_NAME}_SOVERSION}.${${PROJECT_NAME}_PATCH_VERSION})
 
+# The following generates a cpp header file that can be used to access the CMAKE version info.
+# The "VersionInfo.h" is available in the project's build directory and included in the build.
+
+string(REGEX REPLACE "^0" "" ${PROJECT_NAME}_MAJOR_VERSION_INT ${${PROJECT_NAME}_MAJOR_VERSION})
+string(REGEX REPLACE "^0" "" ${PROJECT_NAME}_MINOR_VERSION_INT ${${PROJECT_NAME}_MINOR_VERSION})
+string(REGEX REPLACE "^0" "" ${PROJECT_NAME}_PATCH_VERSION_INT ${${PROJECT_NAME}_PATCH_VERSION})
+
+configure_file(cmake/version_info_template.h.in "${PROJECT_BINARY_DIR}/generated/VersionInfo.h")
+include_directories(${PROJECT_BINARY_DIR}/generated)
diff --git a/cmake/version_info_template.h.in b/cmake/version_info_template.h.in
new file mode 100644
index 0000000000000000000000000000000000000000..7659c54752fd6a342b50129c39ca4af422ca9cbd
--- /dev/null
+++ b/cmake/version_info_template.h.in
@@ -0,0 +1,9 @@
+#pragma once
+
+namespace ChimeraTK::VersionInfo {
+
+  const int major{${${PROJECT_NAME}_MAJOR_VERSION_INT}};
+  const int minor{${${PROJECT_NAME}_MINOR_VERSION_INT}};
+  const int applicationPatch{${${PROJECT_NAME}_PATCH_VERSION_INT}};
+
+} // namespace ChimeraTK::VersionInfo