Skip to content

Commit

Permalink
Merge branch 'Xilinx:master' into ex_error
Browse files Browse the repository at this point in the history
  • Loading branch information
zhangchiming authored Jan 31, 2025
2 parents 550125b + 03d2e25 commit e650524
Show file tree
Hide file tree
Showing 5 changed files with 123 additions and 42 deletions.
8 changes: 4 additions & 4 deletions src/CMake/components.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
if (NOT WIN32)
if (${LINUX_FLAVOR} MATCHES "^(ubuntu|debian)")
set (XRT_DEV_COMPONENT_SUFFIX "dev")
elseif (${LINUX_FLAVOR} MATCHES "^(rhel|centos)")
elseif (${LINUX_FLAVOR} MATCHES "^(rhel|centos|fedora)")
set (XRT_DEV_COMPONENT_SUFFIX "devel")
endif()
else()
Expand Down Expand Up @@ -88,9 +88,9 @@ if (XRT_NPU)
# been explicitly marked alveo or npu
set (CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "npu")
set (XRT_COMPONENT "npu")
set (XRT_DEV_COMPONENT "npu")
set (XRT_BASE_COMPONENT ${XRT_COMPONENT})
set (XRT_BASE_DEV_COMPONENT ${XRT_DEV_COMPONENT})
set (XRT_DEV_COMPONENT "npu-${XRT_DEV_COMPONENT_SUFFIX}")
set (XRT_BASE_COMPONENT "base")
set (XRT_BASE_DEV_COMPONENT "base-${XRT_DEV_COMPONENT_SUFFIX}")
endif(XRT_NPU)

# Alveo builds one Alveo package for both deployment and development
Expand Down
147 changes: 113 additions & 34 deletions src/CMake/cpackLin.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@
# XRT_VERSION_PATCH
# LINUX_FLAVOR


SET(CPACK_SET_DESTDIR ON)
SET(CPACK_PACKAGE_VERSION_RELEASE "${XRT_VERSION_RELEASE}")
SET(CPACK_PACKAGE_VERSION_MAJOR "${XRT_VERSION_MAJOR}")
SET(CPACK_PACKAGE_VERSION_MINOR "${XRT_VERSION_MINOR}")
SET(CPACK_PACKAGE_VERSION_PATCH "${XRT_VERSION_PATCH}")
set(CPACK_PACKAGE_VERSION ${XRT_VERSION_MAJOR}.${XRT_VERSION_MINOR}.${XRT_VERSION_PATCH})
SET(CPACK_PACKAGE_NAME "xrt")

SET(CPACK_ARCHIVE_COMPONENT_INSTALL ON)
Expand All @@ -21,11 +21,27 @@ SET(CPACK_RPM_COMPONENT_INSTALL ON)

# For some reason CMake doesn't populate CPACK_COMPONENTS_ALL when the
# project has only one component, this leads to cpack generating
# pacage without component name appended. To work-around this,
# package without component name appended. To work-around this,
# populate the variable explictly.
get_cmake_property(CPACK_COMPONENTS_ALL COMPONENTS)
message("Install components in the project: ${CPACK_COMPONENTS_ALL}")

# Set up component dependencies on base if built
if (${XRT_BASE_COMPONENT} STREQUAL "base")
set(CPACK_COMPONENT_ALVEO_DEPENDS base)
set(CPACK_COMPONENT_NPU_DEPENDS base)
endif()

# Set up aws component dependencies. Can be
# xrt or alveo depending on the build
SET(CPACK_COMPONENT_AWS_DEPENDS ${XRT_COMPONENT})

# Set up development component dependencies
set(CPACK_COMPONENT_BASE-DEV_DEPENDS base)
set(CPACK_COMPONENT_ALVEO-DEV_DEPENDS alveo)
set(CPACK_COMPONENT_NPU-DEV_DEPENDS npu)
set(CPACK_COMPONENT_XRT-DEV_DEPENDS xrt)

# When the rpmbuild occurs for packaging, it uses a default version of
# python to perform a python byte compilation. For the CentOS 7.x OS, this
# is python2. Being that the XRT python code is for python3, this results in
Expand Down Expand Up @@ -72,30 +88,52 @@ if (${LINUX_FLAVOR} MATCHES "^(ubuntu|debian)")
SET(CPACK_DEBIAN_AWS_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_BINARY_DIR}/aws/postinst;${CMAKE_CURRENT_BINARY_DIR}/aws/prerm")
SET(CPACK_DEBIAN_AZURE_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_BINARY_DIR}/azure/postinst;${CMAKE_CURRENT_BINARY_DIR}/azure/prerm")
SET(CPACK_DEBIAN_CONTAINER_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_BINARY_DIR}/container/postinst;${CMAKE_CURRENT_BINARY_DIR}/container/prerm")

#set (CPACK_DEBIAN_PACKAGE_DEBUG ON)
SET(CPACK_DEBIAN_PACKAGE_SHLIBDEPS "yes")
set(CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS ON)

# Set the path to the private (cross package) shared libraries
# This makes CPackDeb.cmake invoke dpkg-shlibdeps with -l${dir} option
set (CPACK_DEBIAN_PACKAGE_SHLIBDEPS_PRIVATE_DIRS ${XRT_BUILD_INSTALL_DIR}/lib)

if( (${CMAKE_VERSION} VERSION_LESS "3.6.0") AND (${CPACK_DEBIAN_PACKAGE_SHLIBDEPS} STREQUAL "yes") )
# Fix bug in CPackDeb.cmake in use of dpkg-shlibdeps
SET(CMAKE_MODULE_PATH ${XRT_SOURCE_DIR}/CMake/patch ${CMAKE_MODULE_PATH})
endif()

SET(CPACK_DEBIAN_AWS_PACKAGE_DEPENDS "xrt (>= ${XRT_VERSION_MAJOR}.${XRT_VERSION_MINOR}.${XRT_VERSION_PATCH})")
SET(CPACK_DEBIAN_XRT_PACKAGE_DEPENDS "ocl-icd-libopencl1 (>= 2.2.0), dkms (>= 2.2.0), udev, python3")
# Dependencies not automatically detected by CPack
SET(CPACK_DEBIAN_BASE_PACKAGE_DEPENDS "ocl-icd-libopencl1 (>= 2.2.0), python3")
SET(CPACK_DEBIAN_BASE-DEV_PACKAGE_DEPENDS "ocl-icd-opencl-dev (>= 2.2.0), uuid-dev (>= 2.27.1)")

# If base package combines deployment and development, then
# include development dependencies
if (${XRT_BASE_DEV_COMPONENT} STREQUAL "base")
set(CPACK_DEBIAN_BASE_PACKAGE_DEPENDS
"${CPACK_DEBIAN_BASE_PACKAGE_DEPENDS}, \
${CPACK_DEBIAN_BASE-DEV_PACKAGE_DEPENDS}")
endif()

# If base is included in npu, then include base dependencies
if (${XRT_BASE_DEV_COMPONENT} STREQUAL "npu")
set(CPACK_DEBIAN_NPU_PACKAGE_DEPENDS
"${CPACK_DEBIAN_BASE_PACKAGE_DEPENDS}, \
${CPACK_DEBIAN_BASE-DEV_PACKAGE_DEPENDS}")
endif()

# If base is included in alveo, then include base dependencies
if (${XRT_BASE_DEV_COMPONENT} STREQUAL "alveo")
set(CPACK_DEBIAN_ALVEO_PACKAGE_DEPENDS
"${CPACK_DEBIAN_BASE_PACKAGE_DEPENDS}, \
${CPACK_DEBIAN_BASE-DEV_PACKAGE_DEPENDS}")
endif()

if (${XRT_DEV_COMPONENT} STREQUAL "xrt")
# applications link with -luuid
SET(CPACK_DEBIAN_XRT_PACKAGE_DEPENDS
"${CPACK_DEBIAN_XRT_PACKAGE_DEPENDS}, \
ocl-icd-opencl-dev (>= 2.2.0), \
uuid-dev (>= 2.27.1)")
else()
# xrt development package
SET(CPACK_DEBIAN_XRT-DEV_PACKAGE_NAME ${XRT_DEV_COMPONENT})
SET(CPACK_DEBIAN_XRT-DEV_PACKAGE_DEPENDS
"xrt (>= ${XRT_VERSION_MAJOR}.${XRT_VERSION_MINOR}.${XRT_VERSION_PATCH}), \
ocl-icd-opencl-dev (>= 2.2.0), \
uuid-dev (>= 2.27.1)")
# If base is included in xrt, then include base dependencies
# along with dmks and udev. This is true for XRT legacy
if (${XRT_BASE_DEV_COMPONENT} STREQUAL "xrt")
set(CPACK_DEBIAN_XRT_PACKAGE_DEPENDS
"${CPACK_DEBIAN_BASE_PACKAGE_DEPENDS}, \
${CPACK_DEBIAN_BASE-DEV_PACKAGE_DEPENDS}, \
dkms (>= 2.2.0), udev")
endif()

if ((${LINUX_FLAVOR} MATCHES "^(ubuntu)") AND (${LINUX_VERSION} STREQUAL "23.10"))
Expand Down Expand Up @@ -155,22 +193,63 @@ elseif (${LINUX_FLAVOR} MATCHES "^(rhel|centos|amzn|fedora|sles|mariner|almalinu
SET(CPACK_RPM_CONTAINER_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_BINARY_DIR}/container/postinst")
SET(CPACK_RPM_CONTAINER_PRE_UNINSTALL_SCRIPT_FILE "${CMAKE_CURRENT_BINARY_DIR}/container/prerm")
SET(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/usr/local" "/usr/src" "/opt" "/etc/OpenCL" "/etc/OpenCL/vendors" "/usr/lib" "/usr/lib/pkgconfig" "/usr/lib64/pkgconfig" "/lib" "/lib/firmware" "/usr/share/pkgconfig")
SET(CPACK_RPM_AWS_PACKAGE_REQUIRES "xrt >= ${XRT_VERSION_MAJOR}.${XRT_VERSION_MINOR}.${XRT_VERSION_PATCH}")
if (${LINUX_FLAVOR} MATCHES "^(sles)")
SET(CPACK_RPM_XRT_PACKAGE_REQUIRES "ocl-icd-devel >= 2.2, dkms >= 2.2.0, python3 >= 3.6")
elseif (${LINUX_FLAVOR} MATCHES "^(mariner)")
SET(CPACK_RPM_XRT_PACKAGE_REQUIRES "ocl-icd >= 2.2, dkms >= 2.5.0, python3 >= 3.6")
else()
SET(CPACK_RPM_XRT_PACKAGE_REQUIRES "ocl-icd >= 2.2, dkms >= 2.5.0, python3 >= 3.6")
endif()

if (${XRT_DEV_COMPONENT} STREQUAL "xrt")
# xrt is also development package
SET(CPACK_RPM_XRT_PACKAGE_REQUIRES "${CPACK_RPM_XRT_PACKAGE_REQUIRES}, ocl-icd-devel >= 2.2, libuuid-devel >= 2.23.2")
else()
# xrt development package
SET(CPACK_RPM_XRT-DEV_PACKAGE_NAME ${XRT_DEV_COMPONENT})
SET(CPACK_RPM_XRT-DEV_PACKAGE_REQUIRES "xrt >= ${XRT_VERSION_MAJOR}.${XRT_VERSION_MINOR}.${XRT_VERSION_PATCH}, ocl-icd-devel >= 2.2, libuuid-devel >= 2.23.2")

set(CPACK_RPM_BASE_PACKAGE_REQUIRES "ocl-icd >= 2.2, python3 >= 3.6")
set(CPACK_RPM_BASE-DEVEL_PACKAGE_REQUIRES "ocl-icd-devel >= 2.2, libuuid-devel >= 2.23.2")
set(CPACK_RPM_NPU_PACKAGE_REQUIRES "xrt-base = ${CPACK_PACKAGE_VERSION}")
set(CPACK_RPM_NPU-DEVEL_PACKAGE_REQUIRES "xrt-npu = ${CPACK_PACKAGE_VERSION}")
set(CPACK_RPM_ALVEO_PACKAGE_REQUIRES "xrt-base = ${CPACK_PACKAGE_VERSION}")
set(CPACK_RPM_ALVEO-DEVEL_PACKAGE_REQUIRES "xrt-alveo= ${CPACK_PACKAGE_VERSION}")
set(CPACK_RPM_XRT-DEVEL_PACKAGE_REQUIRES "xrt = ${CPACK_PACKAGE_VERSION}")

# If xrt-base-devel development component is built, then it depends
# on xrt-base deployment. For the cases where xrt-base-devel
# is folded into deployment, we don't want xrt-base dependency.
if (${XRT_BASE_DEV_COMPONENT} STREQUAL "base-devel")
set(CPACK_RPM_BASE-DEVEL_PACKAGE_REQUIRES
"${CPACK_RPM_BASE-DEVEL_PACKAGE_REQUIRES}, \
xrt-base = ${CPACK_PACKAGE_VERSION}")
endif()

# If base package combines deployment and development, then
# include development dependencies
if (${XRT_BASE_DEV_COMPONENT} STREQUAL "base")
set(CPACK_RPM_BASE_PACKAGE_REQUIRES
"${CPACK_RPM_BASE_PACKAGE_REQUIRES}, \
${CPACK_RPM_BASE-DEVEL_PACKAGE_REQUIRES}")
endif()

# If base is included in npu, then include base dependencies
if (${XRT_BASE_DEV_COMPONENT} STREQUAL "npu")
set(CPACK_RPM_NPU_PACKAGE_REQUIRES
"${CPACK_RPM_BASE_PACKAGE_REQUIRES}, \
${CPACK_RPM_BASE-DEVEL_PACKAGE_REQUIRES}")
endif()

# If base is included in alveo, then include base dependencies
if (${XRT_BASE_DEV_COMPONENT} STREQUAL "alveo")
set(CPACK_RPM_ALVEO_PACKAGE_REQUIRES
"${CPACK_RPM_BASE_PACKAGE_REQUIRES}, \
${CPACK_RPM_BASE-DEVEL_PACKAGE_REQUIRES}")
endif()

# If base is included in xrt, then include base dependencies
# along with dmks and udev. This is true for XRT legacy
if (${XRT_BASE_DEV_COMPONENT} STREQUAL "xrt")
set(CPACK_RPM_XRT_PACKAGE_REQUIRES
"${CPACK_RPM_BASE_PACKAGE_REQUIRES}, \
${CPACK_RPM_BASE-DEVEL_PACKAGE_REQUIRES}, \
dkms")
endif()

# If base component is alveo, then aws has a dependency on alveo
if (${XRT_BASE_COMPONENT} STREQUAL "alveo")
set(CPACK_RPM_AWS_PACKAGE_REQUIRES "xrt-alveo = ${CPACK_PACKAGE_VERSION}")
endif()

# If base component is xrt, then aws has a dependency on xrt
if (${XRT_BASE_COMPONENT} STREQUAL "xrt")
set(CPACK_RPM_AWS_PACKAGE_REQUIRES "xrt = ${CPACK_PACKAGE_VERSION}")
endif()

if (DEFINED CROSS_COMPILE)
Expand Down
4 changes: 3 additions & 1 deletion src/CMake/nativeLnx.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,9 @@ endif (XRT_BASE)
include (CMake/changelog.cmake)

# --- Package Config ---
include (CMake/pkgconfig.cmake)
if (XRT_BASE)
include (CMake/pkgconfig.cmake)
endif (XRT_BASE)

# --- Coverity Support ---
include (CMake/coverity.cmake)
Expand Down
2 changes: 1 addition & 1 deletion src/CMake/pkgconfig.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,5 @@ configure_file (
install (
FILES ${CMAKE_CURRENT_BINARY_DIR}/xrt.pc
DESTINATION ${XRT_PKG_CONFIG_DIR}
COMPONENT ${XRT_DEV_COMPONENT}
COMPONENT ${XRT_BASE_DEV_COMPONENT}
)
4 changes: 2 additions & 2 deletions src/runtime_src/xdp/profile/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,11 @@ target_link_libraries(xdp_core PRIVATE xrt_coreutil)

set_target_properties(xdp_core PROPERTIES VERSION ${XRT_VERSION_STRING} SOVERSION ${XRT_SOVERSION})

# xdp_cre is not an end-user link library, so skip the name link
install(TARGETS xdp_core
EXPORT xrt-targets
RUNTIME DESTINATION ${XRT_INSTALL_BIN_DIR} COMPONENT ${XRT_COMPONENT}
LIBRARY DESTINATION ${XRT_INSTALL_LIB_DIR} COMPONENT ${XRT_COMPONENT} NAMELINK_COMPONENT ${XRT_DEV_COMPONENT}
ARCHIVE DESTINATION ${XRT_INSTALL_LIB_DIR} COMPONENT ${XRT_DEV_COMPONENT})
LIBRARY DESTINATION ${XRT_INSTALL_LIB_DIR} COMPONENT ${XRT_COMPONENT} NAMELINK_SKIP)

# Build the individual plugins
add_subdirectory(plugin)

0 comments on commit e650524

Please sign in to comment.