# ptprnt This is a rewrite of [ptouch-print](https://git.familie-radermacher.ch/linux/ptouch-print.git) as a toy project for my personal amusement. The currently available solutions are good enough for generating labels, but i wanted to explore libusb and maybe improve the functionality of my label printer. All credits for reverse engineering the USB commands to Dominic Rademacher. ## Dependencies This project requires: - spdlog - libusb - pango - cairo - meson - gtest (optional, for testing, will be installed by meson) - gcov (optional, for coverage reports) Install dependencies on Arch Linux ``` bash pacman -S libusb spdlog pango cairo meson gcovr ``` Install dependencies on Debian/Ubuntu ``` bash apt-get install libusb-1.0-0-dev libspdlog-dev libfmt-dev libpango1.0-dev libcairo2-dev meson gcovr ``` ## Build Clone the repository and simply let meson do the heavy lifting. ```bash meson setup builddir ``` If you want to generate coverage reports, enable them via the command line switch ```bash meson setup builddir -Db_coverage=true ``` Rebuild by simply invoking ninja ```bash ninja -C builddir ``` ## Run Run the binary from your builddir ```bash builddir/ptprnt ``` ## Test Testing is done via gtest. To run your test simply invoke ninja with the "test" target. ```bash ninja -C builddir test ``` Coverage reports can be generated via gcov if you enabled them (see Build section) by building the `coverage-text` target. ## License GPLv3, see [LICENSE](./LICENSE) ## Author Moritz Martinius