conan/fast-lzma2/README.md
This is a Conan package for Fast LZMA2 Library v1.0.1, an optimized LZMA2 compression algorithm.
| Option | Default | Description |
|---|---|---|
| shared | False | Build as shared library |
| fPIC | True | Position independent code (non-Windows) |
# Create the package locally
conan create . --build=missing
# Create with specific options
conan create . --build=missing -o fast-lzma2/*:shared=True
# Test the package
conan create . --build=missing
# The test_package will automatically run
Add to your conanfile.txt:
[requires]
fast-lzma2/1.0.1
[generators]
CMakeDeps
CMakeToolchain
Or in your conanfile.py:
def requirements(self):
self.requires("fast-lzma2/1.0.1")
cmake_minimum_required(VERSION 3.15)
project(MyProject C)
find_package(fast-lzma2 REQUIRED CONFIG)
add_executable(myapp main.c)
target_link_libraries(myapp fast-lzma2::fast-lzma2)
#include <stdio.h>
#include <string.h>
#include "fast-lzma2.h"
int main() {
const char* data = "Hello, Fast LZMA2!";
size_t src_size = strlen(data);
// Get compression bound
size_t max_size = FL2_compressBound(src_size);
char* compressed = malloc(max_size);
// Compress
size_t compressed_size = FL2_compress(compressed, max_size,
data, src_size, 6);
if (FL2_isError(compressed_size)) {
fprintf(stderr, "Compression error: %s\n",
FL2_getErrorName(compressed_size));
return 1;
}
// Decompress
char* decompressed = malloc(src_size);
size_t decompressed_size = FL2_decompress(decompressed, src_size,
compressed, compressed_size);
if (FL2_isError(decompressed_size)) {
fprintf(stderr, "Decompression error: %s\n",
FL2_getErrorName(decompressed_size));
return 1;
}
printf("Success!\n");
free(compressed);
free(decompressed);
return 0;
}
The package uses the original Makefile build system from the fast-lzma2 repository:
fast-lzma2/ directorymake with appropriate flagsfast-lzma2.h, fl2_errors.hlibfast-lzma2.a (static) or libfast-lzma2.so* (shared)-O2 optimization by default-O0 -g insteadThis Conan package follows the dual-license of the original fast-lzma2 library:
See LICENSE and COPYING files for details.