Adding check to LinuxFFAUserShim.cmake
Adding mechanism to check whether the driver is resident before
fetching the code.
Change-Id: Iaf0f17bd0652be301b19e12747a7e83975ee4ba6
Signed-off-by: Mark Dykes <mark.dykes@arm.com>
diff --git a/external/LinuxFFAUserShim/LinuxFFAUserShim.cmake b/external/LinuxFFAUserShim/LinuxFFAUserShim.cmake
index 9c2252c..09a2bf8 100644
--- a/external/LinuxFFAUserShim/LinuxFFAUserShim.cmake
+++ b/external/LinuxFFAUserShim/LinuxFFAUserShim.cmake
@@ -8,24 +8,32 @@
# Find Linux FF-A user space shim repo location.
# It contains a kernel module which exposes FF-A operations to user space using DebugFS.
+# If the driver is already installed, try to find that
+find_path(LINUX_FFA_USER_SHIM_INCLUDE_DIR
+ NAMES arm_ffa_user.h
+ DOC "Linux FF-A user space shim driver include directory"
+)
-set(LINUX_FFA_USER_SHIM_URL "https://git.gitlab.arm.com/linux-arm/linux-trusted-services.git"
- CACHE STRING "Linux FF-A user space shim repository URL")
-set(LINUX_FFA_USER_SHIM_REFSPEC "v5.0.0"
- CACHE STRING "Linux FF-A user space shim git refspec")
+# If not found, download it
+if(NOT LINUX_FFA_USER_SHIM_INCLUDE_DIR)
-set(LINUX_FFA_USER_SHIM_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/_deps/linux_ffa_user_shim-src"
- CACHE PATH "Location of Linux driver source.")
+ set(LINUX_FFA_USER_SHIM_URL "https://git.gitlab.arm.com/linux-arm/linux-trusted-services.git"
+ CACHE STRING "Linux FF-A user space shim repository URL")
+ set(LINUX_FFA_USER_SHIM_REFSPEC "v5.0.0"
+ CACHE STRING "Linux FF-A user space shim git refspec")
-if (DEFINED ENV{LINUX_FFA_USER_SHIM_SOURCE_DIR})
- set(LINUX_FFA_USER_SHIM_SOURCE_DIR $ENV{LINUX_FFA_USER_SHIM_SOURCE_DIR}
- CACHE PATH "Location of Linux driver source." FORCE)
-endif()
+ set(LINUX_FFA_USER_SHIM_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/_deps/linux_ffa_user_shim-src"
+ CACHE PATH "Location of Linux driver source.")
-set(GIT_OPTIONS
- GIT_REPOSITORY ${LINUX_FFA_USER_SHIM_URL}
- GIT_TAG ${LINUX_FFA_USER_SHIM_REFSPEC}
- GIT_SHALLOW FALSE
+ if (DEFINED ENV{LINUX_FFA_USER_SHIM_SOURCE_DIR})
+ set(LINUX_FFA_USER_SHIM_SOURCE_DIR $ENV{LINUX_FFA_USER_SHIM_SOURCE_DIR}
+ CACHE PATH "Location of Linux driver source." FORCE)
+ endif()
+
+ set(GIT_OPTIONS
+ GIT_REPOSITORY ${LINUX_FFA_USER_SHIM_URL}
+ GIT_TAG ${LINUX_FFA_USER_SHIM_REFSPEC}
+ GIT_SHALLOW FALSE
)
include(${TS_ROOT}/tools/cmake/common/LazyFetch.cmake REQUIRED)
LazyFetch_MakeAvailable(
@@ -34,13 +42,14 @@
SOURCE_DIR ${LINUX_FFA_USER_SHIM_SOURCE_DIR}
)
-find_path(LINUX_FFA_USER_SHIM_INCLUDE_DIR
- NAMES arm_ffa_user.h
- PATHS ${LINUX_FFA_USER_SHIM_SOURCE_DIR}
- NO_DEFAULT_PATH
- REQUIRED
- DOC "Linux FF-A user space shim include directory"
-)
+ find_path(LINUX_FFA_USER_SHIM_INCLUDE_DIR
+ NAMES arm_ffa_user.h
+ PATHS ${LINUX_FFA_USER_SHIM_SOURCE_DIR}
+ NO_DEFAULT_PATH
+ REQUIRED
+ DOC "Linux FF-A user space shim include directory"
+ )
+endif()
set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS
"${LINUX_FFA_USER_SHIM_INCLUDE_DIR}/arm_ffa_user.h")