Fix openamp, libmetal and libc linking order.

- change the component dependency chain, and make openamp depend
  on libmetal and the se-proxy target on openamp
- fix libc dependency of the components and make libmetal depend on
  stdlib::c.

Change-Id: I6bbf83244d42d5006a7d5ed1f604f51c06cc4939
Signed-off-by: Gyorgy Szing <Gyorgy.Szing@arm.com>
diff --git a/deployments/se-proxy/infra/corstone-1000/infra.cmake b/deployments/se-proxy/infra/corstone-1000/infra.cmake
index 675f2cd..4e7e2bd 100644
--- a/deployments/se-proxy/infra/corstone-1000/infra.cmake
+++ b/deployments/se-proxy/infra/corstone-1000/infra.cmake
@@ -24,12 +24,9 @@
 		"components/service/secure_storage/backend/secure_storage_ipc"
 )
 
-# libmetal
-include(${TS_ROOT}/external/openamp/libmetal.cmake)
-
 # OpenAMP
 include(${TS_ROOT}/external/openamp/openamp.cmake)
-target_link_libraries(se-proxy PRIVATE openamp libmetal)
+target_link_libraries(se-proxy PRIVATE openamp)
 
 target_sources(se-proxy PRIVATE
 
diff --git a/external/openamp/libmetal.cmake b/external/openamp/libmetal.cmake
index d06aa12..2457ca8 100644
--- a/external/openamp/libmetal.cmake
+++ b/external/openamp/libmetal.cmake
@@ -1,22 +1,21 @@
 #-------------------------------------------------------------------------------
 # Copyright (c) 2021-2022 Linaro Limited
-# Copyright (c) 2021-2022, Arm Limited. All rights reserved.
+# Copyright (c) 2021-2023, Arm Limited. All rights reserved.
 #
 # SPDX-License-Identifier: BSD-3-Clause
 #
 #-------------------------------------------------------------------------------
 
 set (LIBMETAL_URL "https://github.com/OpenAMP/libmetal.git"
-		    CACHE STRING "libmetal repository URL")
+		CACHE STRING "libmetal repository URL")
 set (LIBMETAL_INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/libmetal_install"
-		    CACHE DIR "libmetal installation directory")
+		CACHE PATH "libmetal installation directory")
 set(LIBMETAL_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/_deps/libmetal"
-		CACHE DIR "libmetal source-code")
+		CACHE PATH "libmetal source-code")
 set (LIBMETAL_PACKAGE_DIR "${LIBMETAL_INSTALL_DIR}/libmetal/cmake"
-			    CACHE DIR "libmetal CMake package directory")
-set (LIBMETAL_TARGET_NAME "libmetal")
+		CACHE PATH "libmetal CMake package directory")
 set (LIBMETAL_REFSPEC "f252f0e007fbfb8b3a52b1d5901250ddac96baad"
-			CACHE STRING "The version of libmetal to use")
+		CACHE STRING "The version of libmetal to use")
 set(LIBMETAL_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/_deps/libmetal-build")
 
 set(GIT_OPTIONS
@@ -65,3 +64,6 @@
 add_library(libmetal STATIC IMPORTED)
 set_property(TARGET libmetal PROPERTY IMPORTED_LOCATION "${LIBMETAL_INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}metal${CMAKE_STATIC_LIBRARY_SUFFIX}")
 set_property(TARGET libmetal PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${LIBMETAL_INSTALL_DIR}/include")
+if(TARGET stdlib::c)
+	target_link_libraries(libmetal INTERFACE stdlib::c)
+endif()
diff --git a/external/openamp/openamp.cmake b/external/openamp/openamp.cmake
index 449f35f..6594826 100644
--- a/external/openamp/openamp.cmake
+++ b/external/openamp/openamp.cmake
@@ -1,24 +1,23 @@
 #-------------------------------------------------------------------------------
 # Copyright (c) 2022 Linaro Limited
-# Copyright (c) 2022, Arm Limited. All rights reserved.
+# Copyright (c) 2022-2023, Arm Limited. All rights reserved.
 #
 # SPDX-License-Identifier: BSD-3-Clause
 #
 #-------------------------------------------------------------------------------
 
 set (OPENAMP_URL "https://github.com/OpenAMP/open-amp.git"
-		    CACHE STRING "OpenAMP repository URL")
+		CACHE STRING "OpenAMP repository URL")
 set (OPENAMP_INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/openamp_install"
-			    CACHE DIR "OpenAMP installation directory")
+		CACHE PATH "OpenAMP installation directory")
 set (OPENAMP_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/_deps/openamp"
-			    CACHE DIR "OpenAMP source code directory")
+		CACHE PATH "OpenAMP source code directory")
 set (OPENAMP_PACKAGE_DIR "${OPENAMP_INSTALL_DIR}/openamp/cmake"
-			    CACHE DIR "OpenAMP CMake package directory")
-set (OPENAMP_TARGET_NAME "openamp")
+		CACHE PATH "OpenAMP CMake package directory")
 set (OPENAMP_REFSPEC "347397decaa43372fc4d00f965640ebde042966d"
-			CACHE STRING "The version of openamp to use")
+		CACHE STRING "The version of openamp to use")
 
-set(GIT_OPTIONS
+set(GIT_OPTIONS_OPENAMP
     GIT_REPOSITORY ${OPENAMP_URL}
     GIT_TAG ${OPENAMP_REFSPEC}
     GIT_SHALLOW FALSE
@@ -30,6 +29,9 @@
 	set(OPENAMP_BUILD_TYPE "Debug")
 endif()
 
+# Add libmetal dependency
+include(${TS_ROOT}/external/openamp/libmetal.cmake)
+
 include(FetchContent)
 
 # Checking git
@@ -53,7 +55,7 @@
 
 include(${TS_ROOT}/tools/cmake/common/LazyFetch.cmake REQUIRED)
 LazyFetch_MakeAvailable(DEP_NAME openamp
-    FETCH_OPTIONS "${GIT_OPTIONS}"
+    FETCH_OPTIONS "${GIT_OPTIONS_OPENAMP}"
     INSTALL_DIR "${OPENAMP_INSTALL_DIR}"
     CACHE_FILE "${TS_ROOT}/external/openamp/openamp-init-cache.cmake.in"
     SOURCE_DIR "${OPENAMP_SOURCE_DIR}"
@@ -64,3 +66,4 @@
 add_library(openamp STATIC IMPORTED)
 set_property(TARGET openamp PROPERTY IMPORTED_LOCATION "${OPENAMP_INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}open_amp${CMAKE_STATIC_LIBRARY_SUFFIX}")
 set_property(TARGET openamp PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${OPENAMP_INSTALL_DIR}/include")
+target_link_libraries(openamp INTERFACE libmetal)