blob: 449f35f4fda49a2d7b4e373fbdbf1728aab5c82a [file] [log] [blame]
Rui Miguel Silva427e8202021-12-03 16:36:51 +00001#-------------------------------------------------------------------------------
2# Copyright (c) 2022 Linaro Limited
3# Copyright (c) 2022, Arm Limited. All rights reserved.
4#
5# SPDX-License-Identifier: BSD-3-Clause
6#
7#-------------------------------------------------------------------------------
8
9set (OPENAMP_URL "https://github.com/OpenAMP/open-amp.git"
10 CACHE STRING "OpenAMP repository URL")
11set (OPENAMP_INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/openamp_install"
12 CACHE DIR "OpenAMP installation directory")
13set (OPENAMP_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/_deps/openamp"
14 CACHE DIR "OpenAMP source code directory")
15set (OPENAMP_PACKAGE_DIR "${OPENAMP_INSTALL_DIR}/openamp/cmake"
16 CACHE DIR "OpenAMP CMake package directory")
17set (OPENAMP_TARGET_NAME "openamp")
18set (OPENAMP_REFSPEC "347397decaa43372fc4d00f965640ebde042966d"
19 CACHE STRING "The version of openamp to use")
20
21set(GIT_OPTIONS
22 GIT_REPOSITORY ${OPENAMP_URL}
23 GIT_TAG ${OPENAMP_REFSPEC}
24 GIT_SHALLOW FALSE
25)
26
27if(NOT OPENAMP_DEBUG)
28 set(OPENAMP_BUILD_TYPE "Release")
29else()
30 set(OPENAMP_BUILD_TYPE "Debug")
31endif()
32
33include(FetchContent)
34
35# Checking git
36find_program(GIT_COMMAND "git")
37if (NOT GIT_COMMAND)
38 message(FATAL_ERROR "Please install git")
39endif()
40
41# Only pass libc settings to openamp if needed. For environments where the
42# standard library is not overridden, this is not needed.
43if(TARGET stdlib::c)
44 include(${TS_ROOT}/tools/cmake/common/PropertyCopy.cmake)
45
46 # Save libc settings
47 save_interface_target_properties(TGT stdlib::c PREFIX LIBC)
48 # Translate libc settings to cmake code fragment. Will be inserted into
49 # libmetal-init-cache.cmake.in when LazyFetch configures the file.
50 translate_interface_target_properties(PREFIX LIBC RES _cmake_fragment)
51 unset_saved_properties(LIBC)
52endif()
53
54include(${TS_ROOT}/tools/cmake/common/LazyFetch.cmake REQUIRED)
55LazyFetch_MakeAvailable(DEP_NAME openamp
56 FETCH_OPTIONS "${GIT_OPTIONS}"
57 INSTALL_DIR "${OPENAMP_INSTALL_DIR}"
58 CACHE_FILE "${TS_ROOT}/external/openamp/openamp-init-cache.cmake.in"
59 SOURCE_DIR "${OPENAMP_SOURCE_DIR}"
60)
61unset(_cmake_fragment)
62
63#Create an imported target to have clean abstraction in the build-system.
64add_library(openamp STATIC IMPORTED)
65set_property(TARGET openamp PROPERTY IMPORTED_LOCATION "${OPENAMP_INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}open_amp${CMAKE_STATIC_LIBRARY_SUFFIX}")
66set_property(TARGET openamp PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${OPENAMP_INSTALL_DIR}/include")