Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .github/docker/ubuntu.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ apt-get install -y \
libc6:arm64 \
libstdc++6:arm64 \
git \
ninja-build
ninja-build \
python3
Comment thread
rwmcguir marked this conversation as resolved.
rm -rf /var/lib/apt/lists/*
EOF
55 changes: 53 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright (C) 2020-2025 Intel Corporation
# Copyright (C) 2020-2026 Intel Corporation
# SPDX-License-Identifier: MIT

cmake_minimum_required(VERSION 3.12.0 FATAL_ERROR)
Expand Down Expand Up @@ -222,6 +222,12 @@ include_directories("${CMAKE_CURRENT_SOURCE_DIR}")

set(TARGET_LOADER_NAME ze_loader)

# Canonical Ubuntu/Debian package names (libze1 / libze-dev)
# produced alongside the existing level-zero / level-zero-devel packages.
if(NOT BUILD_INSTALLER)
set(CANONICAL_LIB_COMPONENT "libze1")
set(CANONICAL_SDK_COMPONENT "libze-dev")
endif()

add_subdirectory(source)
add_subdirectory(samples)
Expand Down Expand Up @@ -265,6 +271,29 @@ install(FILES ${LEVEL_ZERO_LOADER_API_HEADERS}
COMPONENT ${SDK_COMPONENT_STRING}
)

# Canonical Ubuntu/Debian package naming (libze1 / libze-dev) mirrors Canonical's own packaging.
# EXCLUDE_FROM_ALL prevents these rules from running during 'make install' — the same files are
# already installed by the level-zero / level-zero-devel components above. CPack ignores
# EXCLUDE_FROM_ALL when building component packages, so 'cmake --build . --target package'
# still produces all four .deb files without duplicating entries in install_manifest.txt.
if(CANONICAL_SDK_COMPONENT)
install(FILES ${LEVEL_ZERO_API_HEADERS}
DESTINATION ./include/level_zero
COMPONENT ${CANONICAL_SDK_COMPONENT}
EXCLUDE_FROM_ALL
)
install(FILES ${LEVEL_ZERO_LAYERS_API_HEADERS}
DESTINATION ./include/level_zero/layers
COMPONENT ${CANONICAL_SDK_COMPONENT}
EXCLUDE_FROM_ALL
)
install(FILES ${LEVEL_ZERO_LOADER_API_HEADERS}
DESTINATION ./include/level_zero/loader
COMPONENT ${CANONICAL_SDK_COMPONENT}
EXCLUDE_FROM_ALL
)
endif()

if (MSVC)
set (PYTHON_EXECUTABLE "python")
else()
Expand Down Expand Up @@ -357,7 +386,7 @@ set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "oneAPI Level Zero")
set(CPACK_PACKAGE_VENDOR "Intel Corporation")

set(CPACK_PACKAGE_INSTALL_DIRECTORY ${CMAKE_INSTALL_PREFIX})
set(CPACK_PACKAGE_CONTACT "Intel Corporation")
set(CPACK_PACKAGE_CONTACT "Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>")

set(CPACK_PACKAGE_VERSION_MAJOR "${PROJECT_VERSION_MAJOR}")
set(CPACK_PACKAGE_VERSION_MINOR "${PROJECT_VERSION_MINOR}")
Expand Down Expand Up @@ -409,6 +438,28 @@ if(CPACK_GENERATOR MATCHES "DEB")
set(CPACK_DEBIAN_LEVEL-ZERO_FILE_NAME "${PROJECT_NAME}_${PROJECT_VERSION}+${os_name}${os_version}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}.deb")
set(CPACK_DEBIAN_LEVEL-ZERO-DEVEL_FILE_NAME "${PROJECT_NAME}-devel_${PROJECT_VERSION}+${os_name}${os_version}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}.deb")
set(CPACK_DEBIAN_LEVEL-ZERO-DEVEL_PACKAGE_DEPENDS "level-zero(=${PROJECT_VERSION})")
# Mutual exclusion with the canonical libze1 / libze-dev packages
set(CPACK_DEBIAN_LEVEL-ZERO_PACKAGE_CONFLICTS "libze1")
set(CPACK_DEBIAN_LEVEL-ZERO_PACKAGE_PROVIDES "libze1")
set(CPACK_DEBIAN_LEVEL-ZERO_PACKAGE_REPLACES "libze1")
set(CPACK_DEBIAN_LEVEL-ZERO-DEVEL_PACKAGE_CONFLICTS "libze-dev")
set(CPACK_DEBIAN_LEVEL-ZERO-DEVEL_PACKAGE_PROVIDES "libze-dev")
set(CPACK_DEBIAN_LEVEL-ZERO-DEVEL_PACKAGE_REPLACES "libze-dev")

# Canonical Ubuntu naming: libze1 (runtime) and libze-dev (development)
set(CPACK_DEBIAN_LIBZE1_PACKAGE_NAME "libze1")
set(CPACK_DEBIAN_LIBZE-DEV_PACKAGE_NAME "libze-dev")
set(CPACK_DEBIAN_LIBZE1_FILE_NAME "libze1_${PROJECT_VERSION}+${os_name}${os_version}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}.deb")
set(CPACK_DEBIAN_LIBZE-DEV_FILE_NAME "libze-dev_${PROJECT_VERSION}+${os_name}${os_version}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}.deb")
set(CPACK_DEBIAN_LIBZE-DEV_PACKAGE_DEPENDS "libze1 (= ${PROJECT_VERSION})")
# Mutual exclusion with the level-zero / level-zero-devel packages
set(CPACK_DEBIAN_LIBZE1_PACKAGE_CONFLICTS "level-zero")
set(CPACK_DEBIAN_LIBZE1_PACKAGE_PROVIDES "level-zero")
set(CPACK_DEBIAN_LIBZE1_PACKAGE_REPLACES "level-zero")
set(CPACK_DEBIAN_LIBZE-DEV_PACKAGE_CONFLICTS "level-zero-devel")
set(CPACK_DEBIAN_LIBZE-DEV_PACKAGE_PROVIDES "level-zero-devel")
set(CPACK_DEBIAN_LIBZE-DEV_PACKAGE_REPLACES "level-zero-devel")

set(CPACK_DEB_COMPONENT_INSTALL ON)
set(CPACK_ARCHIVE_COMPONENT_INSTALL ON)
endif()
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (C) 2019-2021 Intel Corporation
Copyright (C) 2019-2026 Intel Corporation

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
21 changes: 21 additions & 0 deletions source/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,19 @@ install(TARGETS ze_loader
NAMELINK_COMPONENT ${SDK_COMPONENT_STRING}
)

# EXCLUDE_FROM_ALL: canonical libze1/libze-dev components are for CPack .deb packaging only.
# 'make install' uses the level-zero/level-zero-devel components above to avoid duplicate
# entries in install_manifest.txt which would cause 'xargs rm' uninstall to fail.
if(CANONICAL_LIB_COMPONENT)
install(TARGETS ze_loader
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT ${CANONICAL_SDK_COMPONENT}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${CANONICAL_LIB_COMPONENT}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT ${CANONICAL_LIB_COMPONENT}
NAMELINK_COMPONENT ${CANONICAL_SDK_COMPONENT}
EXCLUDE_FROM_ALL
)
endif()

if(NOT BUILD_INSTALLER)
file(RELATIVE_PATH pkgconfig_prefix "${CMAKE_INSTALL_FULL_LIBDIR}/pkgconfig" "${CMAKE_INSTALL_PREFIX}")
file(RELATIVE_PATH pkgconfig_include_dir "${CMAKE_INSTALL_PREFIX}" "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
Expand All @@ -85,4 +98,12 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/level-zero.pc.in ${CMAKE_CURRENT_BINA
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libze_loader.pc"
"${CMAKE_CURRENT_BINARY_DIR}/level-zero.pc"
DESTINATION "${CMAKE_INSTALL_FULL_LIBDIR}/pkgconfig" COMPONENT ${SDK_COMPONENT_STRING})

if(CANONICAL_SDK_COMPONENT)
# EXCLUDE_FROM_ALL: CPack-only; avoids duplicate install_manifest.txt entries.
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libze_loader.pc"
"${CMAKE_CURRENT_BINARY_DIR}/level-zero.pc"
DESTINATION "${CMAKE_INSTALL_FULL_LIBDIR}/pkgconfig" COMPONENT ${CANONICAL_SDK_COMPONENT}
EXCLUDE_FROM_ALL)
endif()
endif()
12 changes: 12 additions & 0 deletions source/drivers/null/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,18 @@ if(INSTALL_NULL_DRIVER)
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT level-zero
NAMELINK_COMPONENT level-zero-devel
)
# EXCLUDE_FROM_ALL: canonical libze1/libze-dev components are for CPack .deb packaging only.
# 'make install' uses the level-zero/level-zero-devel components above to avoid duplicate
# entries in install_manifest.txt which would cause 'xargs rm' uninstall to fail.
if(CANONICAL_LIB_COMPONENT)
install(TARGETS ze_null
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT ${CANONICAL_SDK_COMPONENT}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${CANONICAL_LIB_COMPONENT}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT ${CANONICAL_LIB_COMPONENT}
NAMELINK_COMPONENT ${CANONICAL_SDK_COMPONENT}
EXCLUDE_FROM_ALL
)
endif()
endif()

if (BUILD_L0_LOADER_TESTS)
Expand Down
13 changes: 13 additions & 0 deletions source/layers/tracing/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -69,3 +69,16 @@ install(TARGETS ze_tracing_layer
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT ${LIB_COMPONENT_STRING}
NAMELINK_COMPONENT ${SDK_COMPONENT_STRING}
)

# EXCLUDE_FROM_ALL: canonical libze1/libze-dev components are for CPack .deb packaging only.
# 'make install' uses the level-zero/level-zero-devel components above to avoid duplicate
# entries in install_manifest.txt which would cause 'xargs rm' uninstall to fail.
if(CANONICAL_LIB_COMPONENT)
install(TARGETS ze_tracing_layer
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT ${CANONICAL_SDK_COMPONENT}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${CANONICAL_LIB_COMPONENT}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT ${CANONICAL_LIB_COMPONENT}
NAMELINK_COMPONENT ${CANONICAL_SDK_COMPONENT}
EXCLUDE_FROM_ALL
)
endif()
13 changes: 13 additions & 0 deletions source/layers/validation/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -59,5 +59,18 @@ install(TARGETS ze_validation_layer
NAMELINK_COMPONENT ${SDK_COMPONENT_STRING}
)

# EXCLUDE_FROM_ALL: canonical libze1/libze-dev components are for CPack .deb packaging only.
# 'make install' uses the level-zero/level-zero-devel components above to avoid duplicate
# entries in install_manifest.txt which would cause 'xargs rm' uninstall to fail.
if(CANONICAL_LIB_COMPONENT)
install(TARGETS ze_validation_layer
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT ${CANONICAL_SDK_COMPONENT}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${CANONICAL_LIB_COMPONENT}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT ${CANONICAL_LIB_COMPONENT}
NAMELINK_COMPONENT ${CANONICAL_SDK_COMPONENT}
EXCLUDE_FROM_ALL
)
endif()

add_subdirectory(handle_lifetime_tracking)
add_subdirectory(checkers)
Loading