From 638bf43d5a02b4827c15acb1ed7340bb59185d85 Mon Sep 17 00:00:00 2001 From: Dominik Loidolt <dominik.loidolt@univie.ac.at> Date: Fri, 30 Sep 2022 18:01:34 +0200 Subject: [PATCH] add some documentation --- CHANGELOG.md | 16 ++++++++++++ INSTALL.md | 55 +++++++++++++++++++++++---------------- meson.build | 3 +-- test/cmp_tool/meson.build | 2 +- 4 files changed, 50 insertions(+), 26 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 18386d4..57a3c6e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,19 @@ All notable changes to this project will be documented in this file. ## [Unreleased] + +## [0.09] - 30-09-2022 +### Added +- decompression/compression for non-imagette data +- functions to create and configure a compression configuration +- add max_used_bits feature +- add max used bit version field to the compression entity +###Changed +- Change the build system form make to meson +- Change DEFAULT_CFG_MODEL and DEFAULT_CFG_DIFF to CMP_DIF_XXX constats +### Fixed +- now the adaptive compression size (ap1_cmp_size, ap2_cmp_size) is calculate when the --rdcu_par option is used + ## [0.08] - 19-01-2021 ### Added - Relax the requirements on the input format @@ -16,6 +29,9 @@ E.g. "# comment\n ABCD 1 2\n34B 12\n" are interpreted as {0xAB, 0xCD, ### Changed - update the header definition according to PLATO-UVIE-PL-UM-0001 Draft 6 - changed version_id from 16 to 32 bit in the generic header. Add spare bits to the adaptive imagette header and the non-imagette header, so that the compressed data start address is 4 byte-aligned. +### Fixed +- Fix a bug in the definition in imagette header +### Changed - Rename cmp_tool_lib.c to cmp_io.c ## [0.07] - 13-12-2021 diff --git a/INSTALL.md b/INSTALL.md index 3653d0a..7665bcb 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,15 +1,15 @@ -## Installation Instructions +# Installation Instructions +## Getting started -### Install git and python 3.6+ +### Install git and python 3.7+ If you're on Linux, you probably already have these. On macOS and Windows, you can use the -[official Python installer](https://www.python.org/downloads/). +[official Python installer](https://www.python.org/downloads). ### Install meson and ninja -Meson 0.56 or newer is required. - -You can get meson through the Python package manager or using: +Meson 0.56 or newer is required. +You can get meson through your package manager or using: ```pip3 install meson``` @@ -21,58 +21,67 @@ binary in your PATH. ### Get the Source Code -We use the version control system git to get a copy of the source code. +We use the version control system [git](https://git-scm.com/downloads) to get a copy of the source code. ``` git clone https://gitlab.phaidra.org/loidoltd15/cmp_tool.git cd cmp_tool ``` +## Build the cmp\_tool +### Build the cmp\_tool for Debugging -### Build the cmp_tool for Debugging - -You can build the cmp_tool running: +First, we create the `builddir` directory. Everything we build will be inside this directory. ``` -meson builddir +meson setup builddir ``` -This will automatically create the `builddir` directory and build **everything** **inside** it. +We change to the build directory and build the cmp_tool: ``` cd builddir -meson compile +meson compile cmp_tool ``` -Now you should find the cmp_tool executable in the folder. +Now you should find the cmp\_tool executable in the folder. ### Release Build -If you want to build an optimized release build run: +If you want to create an optimized release version, we can create a build directory for it: ``` -meson build_relase_dir --buildtype=release +meson setup build_relase_dir --buildtype=release cd build_relase_dir -meson compile +meson compile cmp_tool ``` You find the build executable in the `build_relase_dir` directory -### Cross-compiling to native Windows +### Build for Windows -To build the cmp_tool you can use the [Mingw-w64](https://www.mingw-w64.org). -Unfortunately, the cmp_tool does not support the Microsoft MSVC compiler. But with the Mingw-w64 GCC compiler, we can compile the cmp_tool for Windows. For this, you need the [Mingw-w64 tool chain](https://www.mingw-w64.org/downloads/). This also works on Linux and macOS. To compile for Windows, do this: +Unfortunately, the cmp\_tool does not support the Microsoft MSVC compiler. To build the cmp\_tool for Windows you can use the Mingw-w64 GCC compiler. +For this, you need the [Mingw-w64 toolchain](https://www.mingw-w64.org/downloads/). To compile on Windows, do this in the Cygwin64 Terminal: ``` -meson setup buiddir_win --cross-file=mingw-w64-64.txt +meson setup buiddir_win --native-file=mingw-w64-64.txt cd buiddir_win meson compile ``` +### Cross-compile for Windows +Cross-compile for Windows is also possible with the [Mingw-w64 toolchain](https://www.mingw-w64.org/downloads/). To cross-compile for Windows use the following commands: + +``` +meson setup buiddir_cross_win --cross-file=mingw-w64-64.txt +cd buiddir_cross_win +meson compile +``` + ## Tests ### External dependencies -To run the unit tests you need the [c unit testing framework](https://sourceforge.net/projects/cunit/). -To run the integration tests you need the [pytest](https://docs.pytest.org/en/7.0.x/index.html) framework. The easiest way to install pytest is with `pip3`: +To run the unit tests you need the [ruby interpreter](https://www.ruby-lang.org/en/documentation/installation/). +To run the cmp\_tool interface test you need the [pytest](https://docs.pytest.org/en/7.0.x/index.html) framework. The easiest way to install pytest is with `pip3`: ``` pip3 install pytest diff --git a/meson.build b/meson.build index 9705be6..53603ee 100644 --- a/meson.build +++ b/meson.build @@ -7,8 +7,7 @@ project('cmp_tool', 'c', add_project_arguments('-DDEBUGLEVEL=1', language : 'c') -if (host_machine.system() == 'windows' or host_machine.system() == 'cygwin') - and meson.get_compiler('c').get_id() == 'gcc' +if (host_machine.system() == 'windows' or host_machine.system() == 'cygwin') and meson.get_compiler('c').get_id() == 'gcc' # by default, MinGW on win32 behaves as if it ignores __attribute__((packed)), # you need to add -mno-ms-bitfields to make it work as expected. # See: https://wintermade.it/blog/posts/__attribute__packed-on-windows-is-ignored-with-mingw.html diff --git a/test/cmp_tool/meson.build b/test/cmp_tool/meson.build index b53f4e0..065cc45 100644 --- a/test/cmp_tool/meson.build +++ b/test/cmp_tool/meson.build @@ -2,7 +2,7 @@ int_test_file = files('cmp_tool_integration_test.py') pytest = find_program('pytest', required : false) if pytest.found() - test('Integration Test', + test('cmp_tool Interface Test', pytest, args : ['--color=yes', '-vvv', int_test_file], depends : cmp_tool_exe, -- GitLab