mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 05:18:07 -05:00
gnu: Add heatshrink.
* gnu/packages/compression.scm (heatshrink): New variable. * gnu/packages/patches/heatshrink-add-cmake.patch: New file. * gnu/local.mk (dist_patch_DATA): Add "heatshrink-add-cmake.patch". Change-Id: I0beccdcaed22e47ac6bfe522497e0759a315813d Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
This commit is contained in:
parent
393f4a1f58
commit
80ee348d10
3 changed files with 152 additions and 0 deletions
|
@ -1485,6 +1485,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/hdf-eos5-remove-gctp.patch \
|
||||
%D%/packages/patches/hdf-eos5-fix-szip.patch \
|
||||
%D%/packages/patches/hdf-eos5-fortrantests.patch \
|
||||
%D%/packages/patches/heatshrink-add-cmake.patch \
|
||||
%D%/packages/patches/heimdal-CVE-2022-45142.patch \
|
||||
%D%/packages/patches/helm-fix-gcc-9-build.patch \
|
||||
%D%/packages/patches/highlight-gui-data-dir.patch \
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
|
||||
;;; Copyright © 2024 Vinicius Monego <monego@posteo.net>
|
||||
;;; Copyright © 2024 David Elsing <david.elsing@posteo.net>
|
||||
;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -574,6 +575,45 @@ (define-public xz
|
|||
(license (list license:gpl2+ license:lgpl2.1+)) ; bits of both
|
||||
(home-page "https://tukaani.org/xz/")))
|
||||
|
||||
(define-public heatshrink
|
||||
(package
|
||||
(name "heatshrink")
|
||||
(version "0.4.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/atomicobject/heatshrink/")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0sdhvk27yz8kahw18j8pddbpkgl78v8rh8fx6wspc3acj7w7yvrn"))
|
||||
;; Add CMake build script, wanted by prusa-slicer and libbgcode, which are the
|
||||
;; only users of this library (see
|
||||
;; <https://github.com/NixOS/nixpkgs/pull/269758/commits/fa36136ceed0e2c58e0c9e21492a7e60c3a64470>.)
|
||||
(patches (search-patches "heatshrink-add-cmake.patch"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
(list
|
||||
;; XXX: No tests available with CMake (see
|
||||
;; <https://github.com/atomicobject/heatshrink/pull/77>.)
|
||||
#:tests? #f))
|
||||
(home-page "https://github.com/atomicobject/heatshrink/")
|
||||
(synopsis "Data compression library for embedded/real-time systems")
|
||||
(description
|
||||
"A data compression/decompression library for embedded/real-time systems.
|
||||
|
||||
Among its features are:
|
||||
@itemize
|
||||
@item Low memory usage (as low as 50 bytes.) It is useful for some cases with less
|
||||
than 50 bytes, and useful for many general cases with less than 300 bytes.
|
||||
@item Incremental, bounded CPU use. It can be used to chew on input data in
|
||||
arbitrarily tiny bites. This is a useful property in hard real-time environments.
|
||||
@item Can use either static or dynamic memory allocation.
|
||||
@end itemize
|
||||
")
|
||||
(license license:isc)))
|
||||
|
||||
(define-public lhasa
|
||||
(package
|
||||
(name "lhasa")
|
||||
|
|
111
gnu/packages/patches/heatshrink-add-cmake.patch
Normal file
111
gnu/packages/patches/heatshrink-add-cmake.patch
Normal file
|
@ -0,0 +1,111 @@
|
|||
From 0886e9ca76552b8e325841e2b820b4563e5d5aba Mon Sep 17 00:00:00 2001
|
||||
From: tamasmeszaros <meszaros.q@gmail.com>
|
||||
Date: Thu, 27 Jul 2023 23:11:25 +0200
|
||||
Subject: [PATCH] Add CMake build script
|
||||
|
||||
---
|
||||
CMakeLists.txt | 82 +++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
Config.cmake.in | 5 +++
|
||||
2 files changed, 87 insertions(+)
|
||||
create mode 100644 CMakeLists.txt
|
||||
create mode 100644 Config.cmake.in
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
new file mode 100644
|
||||
index 0000000..5b840eb
|
||||
--- /dev/null
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -0,0 +1,82 @@
|
||||
+cmake_minimum_required(VERSION 3.10)
|
||||
+
|
||||
+project(heatshrink C)
|
||||
+
|
||||
+add_library(${PROJECT_NAME} heatshrink_decoder.c heatshrink_encoder.c)
|
||||
+add_library(${PROJECT_NAME}_dynalloc heatshrink_decoder.c heatshrink_encoder.c)
|
||||
+
|
||||
+find_library(MATH_LIBRARY m) # Business as usual
|
||||
+if(MATH_LIBRARY)
|
||||
+ target_link_libraries(${PROJECT_NAME} PUBLIC ${MATH_LIBRARY})
|
||||
+endif()
|
||||
+
|
||||
+target_include_directories(${PROJECT_NAME} PUBLIC $<INSTALL_INTERFACE:include>)
|
||||
+target_include_directories(${PROJECT_NAME}_dynalloc PUBLIC $<INSTALL_INTERFACE:include>)
|
||||
+
|
||||
+target_compile_definitions(${PROJECT_NAME} PUBLIC HEATSHRINK_DYNAMIC_ALLOC=0)
|
||||
+target_compile_definitions(${PROJECT_NAME}_dynalloc PUBLIC HEATSHRINK_DYNAMIC_ALLOC=1)
|
||||
+
|
||||
+if (UNIX)
|
||||
+ add_executable(${PROJECT_NAME}_cmd heatshrink.c)
|
||||
+ target_link_libraries(${PROJECT_NAME}_cmd ${PROJECT_NAME}_dynalloc)
|
||||
+ set_target_properties(${PROJECT_NAME}_cmd PROPERTIES OUTPUT_NAME ${PROJECT_NAME})
|
||||
+endif ()
|
||||
+
|
||||
+# Installation and export:
|
||||
+
|
||||
+include(CMakePackageConfigHelpers)
|
||||
+
|
||||
+write_basic_package_version_file(
|
||||
+ "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
|
||||
+ VERSION 0.4.1
|
||||
+ COMPATIBILITY AnyNewerVersion
|
||||
+)
|
||||
+
|
||||
+set(_exported_targets ${PROJECT_NAME} ${PROJECT_NAME}_dynalloc)
|
||||
+if (UNIX)
|
||||
+ list(APPEND _exported_targets ${PROJECT_NAME}_cmd)
|
||||
+endif ()
|
||||
+
|
||||
+install(TARGETS ${_exported_targets}
|
||||
+ EXPORT ${PROJECT_NAME}Targets
|
||||
+)
|
||||
+
|
||||
+export(EXPORT ${PROJECT_NAME}Targets
|
||||
+ FILE "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Targets.cmake"
|
||||
+ NAMESPACE ${PROJECT_NAME}::
|
||||
+)
|
||||
+
|
||||
+include(GNUInstallDirs)
|
||||
+set(ConfigPackageLocation ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
|
||||
+
|
||||
+configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in
|
||||
+ "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
|
||||
+ INSTALL_DESTINATION ${ConfigPackageLocation}
|
||||
+)
|
||||
+
|
||||
+install(
|
||||
+ FILES
|
||||
+ heatshrink_common.h
|
||||
+ heatshrink_config.h
|
||||
+ heatshrink_encoder.h
|
||||
+ heatshrink_decoder.h
|
||||
+ DESTINATION
|
||||
+ include/${PROJECT_NAME}
|
||||
+ )
|
||||
+
|
||||
+install(EXPORT ${PROJECT_NAME}Targets
|
||||
+ FILE
|
||||
+ ${PROJECT_NAME}Targets.cmake
|
||||
+ NAMESPACE
|
||||
+ ${PROJECT_NAME}::
|
||||
+ DESTINATION
|
||||
+ ${ConfigPackageLocation}
|
||||
+)
|
||||
+
|
||||
+install(
|
||||
+ FILES
|
||||
+ "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
|
||||
+ "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
|
||||
+ DESTINATION
|
||||
+ ${ConfigPackageLocation}
|
||||
+)
|
||||
diff --git a/Config.cmake.in b/Config.cmake.in
|
||||
new file mode 100644
|
||||
index 0000000..0809ba9
|
||||
--- /dev/null
|
||||
+++ b/Config.cmake.in
|
||||
@@ -0,0 +1,5 @@
|
||||
+@PACKAGE_INIT@
|
||||
+
|
||||
+if (EXISTS ${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake)
|
||||
+ include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake")
|
||||
+endif ()
|
Loading…
Reference in a new issue