diff --git a/TFACMFConfigVersion.cmake b/TFACMFConfigVersion.cmake
new file mode 100644
index 0000000..2387aa2
--- /dev/null
+++ b/TFACMFConfigVersion.cmake
@@ -0,0 +1,38 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2020, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+#-------------------------------------------------------------------------------
+
+#Read the version.txt file
+get_filename_component(_MY_LOC ${CMAKE_CURRENT_LIST_FILE} DIRECTORY)
+file(READ "${_MY_LOC}/version.txt" _VER_STRING)
+
+#Extract the version number
+string(REGEX MATCH "([0-9]+)\.([0-9]+)\.([0-9]+)" PACKAGE_VERSION ${_VER_STRING})
+
+#Set some meta-data
+set(TFACMF_VENDOR "Arm")
+set(TFACMF_DESCRIPTION_SUMMARY "CMake framework for TF-A.")
+set(PACKAGE_VERSION_MAJOR ${CMAKE_MATCH_1})
+set(PACKAGE_VERSION_MINOR ${CMAKE_MATCH_2})
+set(PACKAGE_VERSION_PATCH ${CMAKE_MATCH_3})
+set(CPACK_RESOURCE_FILE_LICENSE "${_MY_LOC}/license.rst")
+set(CPACK_RESOURCE_FILE_README "${_MY_LOC}/readme.rst")
+
+#Compare requested version with ours and report result to find_package()
+set(PACKAGE_VERSION_COMPATIBLE FALSE)
+set(PACKAGE_VERSION_EXACT FALSE)
+
+#Compare requested version to ours
+if(PACKAGE_FIND_VERSION_MAJOR EQUAL PACKAGE_VERSION_MAJOR)
+    set(_FIND_MP_VER "${PACKAGE_FIND_VERSION_MINOR}.${PACKAGE_FIND_VERSION_PATCH}")
+    set(_MY_MP_VER "${PACKAGE_VERSION_MINOR}.${PACKAGE_VERSION_PATCH}")
+
+    if (_FIND_MP_VER VERSION_EQUAL _MY_MP_VER)
+       set(PACKAGE_VERSION_EXACT TRUE)
+    elseif(_FIND_MP_VER VERSION_LESS _MY_MP_VER)
+        set(PACKAGE_VERSION_COMPATIBLE TRUE)
+    endif()
+endif()
