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
46 changes: 46 additions & 0 deletions packaging/cmake/SnakeDrvConfigVersion.cmake.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
#
# SnakeDrvConfigVersion.cmake — version compatibility check for find_package().
#
# Compatibility policy:
# - Same major: COMPATIBLE (libsnakedrv keeps source compat across minors)
# - Different major: NOT COMPATIBLE (breaking change of the public C API)
#

set(PACKAGE_VERSION "@SNAKEDRV_VERSION@")
set(PACKAGE_VERSION_MAJOR @SNAKEDRV_VERSION_MAJOR@)

if(PACKAGE_FIND_VERSION_RANGE)
# CMake ≥ 3.19 explicit range query.
if(PACKAGE_FIND_VERSION_RANGE_MIN STREQUAL "INCLUDE")
set(_min_op VERSION_GREATER_EQUAL)
else()
set(_min_op VERSION_GREATER)
endif()
if(PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "INCLUDE")
set(_max_op VERSION_LESS_EQUAL)
else()
set(_max_op VERSION_LESS)
endif()
if(PACKAGE_VERSION ${_min_op} PACKAGE_FIND_VERSION_MIN
AND PACKAGE_VERSION ${_max_op} PACKAGE_FIND_VERSION_MAX)
set(PACKAGE_VERSION_COMPATIBLE TRUE)
else()
set(PACKAGE_VERSION_COMPATIBLE FALSE)
endif()
else()
if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}")
set(PACKAGE_VERSION_COMPATIBLE FALSE)
elseif(NOT PACKAGE_VERSION_MAJOR EQUAL PACKAGE_FIND_VERSION_MAJOR)
set(PACKAGE_VERSION_COMPATIBLE FALSE)
else()
set(PACKAGE_VERSION_COMPATIBLE TRUE)
if("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}")
set(PACKAGE_VERSION_EXACT TRUE)
endif()
endif()
endif()

# x86_64 only at the moment.
if(NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
set(PACKAGE_VERSION_UNSUITABLE TRUE)
endif()
22 changes: 22 additions & 0 deletions packaging/dkms/dkms.conf.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# DKMS configuration for snakeengine-driver.
# Rendered from dkms.conf.in by the build (deploy.sh and the release
# workflow) so PACKAGE_VERSION always matches the directory name under
# /usr/src/.

PACKAGE_NAME="snakedrv"
PACKAGE_VERSION="@SNAKEDRV_VERSION@"

CLEAN="make -C kernel clean"
MAKE[0]="make -C kernel KDIR=/lib/modules/${kernelver}/build CC=${CC:-gcc}"

BUILT_MODULE_NAME[0]="snakedrv"
BUILT_MODULE_LOCATION[0]="kernel"
DEST_MODULE_LOCATION[0]="/updates"

AUTOINSTALL="yes"
REMAKE_INITRD="no"

# Module parameters can be tuned via /etc/modprobe.d/snakedrv.conf.
# max_attached_processes Maximum attached processes (default: 16)
# event_queue_size Maximum pending debug events (default: 256)
# debug_level Logging verbosity 0-3 (default: 1)
12 changes: 12 additions & 0 deletions packaging/pkgconfig/snakedrv.pc.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
prefix=@PREFIX@
exec_prefix=${prefix}
libdir=@LIBDIR@
includedir=@INCLUDEDIR@

Name: snakedrv
Description: SnakeEngine kernel driver — userland C/C++ library
URL: https://github.com/CyberSnakeH/snakeengine-driver
Version: @SNAKEDRV_VERSION@

Libs: -L${libdir} -lsnakedrv
Cflags: -I${includedir}
Loading