diff --git a/tools/cmake/common/ExportLibrary.cmake b/tools/cmake/common/ExportLibrary.cmake
index fed4e75..c171c5b 100644
--- a/tools/cmake/common/ExportLibrary.cmake
+++ b/tools/cmake/common/ExportLibrary.cmake
@@ -1,5 +1,5 @@
 #-------------------------------------------------------------------------------
-# Copyright (c) 2020-2021, Arm Limited and Contributors. All rights reserved.
+# Copyright (c) 2020-2022, Arm Limited and Contributors. All rights reserved.
 #
 # SPDX-License-Identifier: BSD-3-Clause
 #
@@ -10,7 +10,7 @@
 
 	.. code:: cmake
 
-		export_library(TARGET LIB_NAME INTERFACE_FILES)
+		export_library(TARGET <target name> LIB_NAME <library name> PKG_CONFIG_FILE <file name>)
 
 	INPUTS:
 
@@ -20,23 +20,30 @@
 	``LIB_NAME``
 	The name of the library.
 
-	``INTERFACE_FILES``
-	List of header files to declare the library's public interface.
+	``PKG_CONFIG_FILE``
+	Name of the package configuration file to generate.
 
 #]===]
 function(export_library)
 	set(options  )
-	set(oneValueArgs TARGET LIB_NAME)
-	set(multiValueArgs INTERFACE_FILES)
+	set(oneValueArgs TARGET LIB_NAME PKG_CONFIG_FILE)
+	set(multiValueArgs)
 	cmake_parse_arguments(MY_PARAMS "${options}" "${oneValueArgs}"
 						"${multiValueArgs}" ${ARGN} )
 
-	if(NOT DEFINED MY_PARAMS_TARGET)
-		message(FATAL_ERROR "export_library: mandatory parameter TARGET not defined!")
+	foreach(_param IN ITEMS MY_PARAMS_TARGET MY_PARAMS_LIB_NAME MY_PARAMS_PKG_CONFIG_FILE)
+		if(NOT DEFINED ${_param})
+			list(APPEND _miss_params "${_param}" )
+		endif()
+	endforeach()
+
+	if (_miss_params)
+		string(REPLACE ";" ", " _miss_params "${_miss_params}")
+		message(FATAL_ERROR "export_library: mandatory parameter(s) ${_miss_params} not defined!")
 	endif()
-	if(NOT DEFINED MY_PARAMS_LIB_NAME)
-		message(FATAL_ERROR "export_library: mandatory parameter LIB_NAME not defined!")
-	endif()
+
+
+	string(TOLOWER "${MY_PARAMS_LIB_NAME}" LC_LIB_NAME)
 
 	# Set default install location if none specified
 	if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
@@ -55,18 +62,56 @@
 			DESTINATION ${TS_ENV}/include
 	)
 
-	# Install library header files files
-	install(
-		FILES ${MY_PARAMS_INTERFACE_FILES}
-		DESTINATION ${TS_ENV}/include
+	# Create targets file.
+	export(
+		EXPORT
+			${MY_PARAMS_LIB_NAME}_targets
+		FILE
+			"${CMAKE_CURRENT_BINARY_DIR}/${MY_PARAMS_LIB_NAME}Targets.cmake"
+		NAMESPACE
+			${MY_PARAMS_LIB_NAME}::
+	)
+
+	# Create a config file package.
+	include(CMakePackageConfigHelpers)
+	get_target_property(_ver ${MY_PARAMS_TARGET} VERSION)
+	write_basic_package_version_file(
+		"${CMAKE_CURRENT_BINARY_DIR}/${LC_LIB_NAME}ConfigVersion.cmake"
+		VERSION "${_ver}"
+		COMPATIBILITY SameMajorVersion
+	)
+
+	# Finalize config file.
+	# Config package location relative to install root.
+	set(ConfigPackageLocation ${TS_ENV}/lib/cmake/${MY_PARAMS_LIB_NAME})
+
+	get_filename_component(_configured_pkgcfg_name "${MY_PARAMS_PKG_CONFIG_FILE}" NAME_WLE)
+	set(_configured_pkgcfg_name "${CMAKE_CURRENT_BINARY_DIR}/${_configured_pkgcfg_name}")
+	configure_package_config_file(
+			"${MY_PARAMS_PKG_CONFIG_FILE}"
+			"${_configured_pkgcfg_name}"
+		INSTALL_DESTINATION
+			${ConfigPackageLocation}
 	)
 
 	# Install the export details
 	install(
 		EXPORT ${MY_PARAMS_LIB_NAME}_targets
-		FILE ${MY_PARAMS_LIB_NAME}_targets.cmake
+		FILE ${MY_PARAMS_LIB_NAME}Targets.cmake
 		NAMESPACE ${MY_PARAMS_LIB_NAME}::
-		DESTINATION ${TS_ENV}/lib/cmake
+		DESTINATION ${ConfigPackageLocation}
 		COMPONENT ${MY_PARAMS_LIB_NAME}
 	)
+
+
+	# install config and version files
+	install(
+		FILES
+			"${_configured_pkgcfg_name}"
+			"${CMAKE_CURRENT_BINARY_DIR}/${LC_LIB_NAME}ConfigVersion.cmake"
+		DESTINATION
+			${ConfigPackageLocation}
+		COMPONENT
+			${MY_PARAMS_LIB_NAME}
+	)
 endfunction()
