An open API service indexing awesome lists of open source software.

https://github.com/pcolby/qtfit

Native Qt library for Garmin FIT
https://github.com/pcolby/qtfit

cmake garmin garmin-fit lib qt

Last synced: 3 months ago
JSON representation

Native Qt library for Garmin FIT

Awesome Lists containing this project

README

        

# QtFit

[![Build Status](https://github.com/pcolby/qtfit/actions/workflows/build.yaml/badge.svg)](https://github.com/pcolby/qtfit/actions/workflows/build.yaml)
[![Static Analysis](https://github.com/pcolby/qtfit/actions/workflows/static.yaml/badge.svg)](https://github.com/pcolby/qtfit/actions/workflows/static.yaml)
[![Coverage Status](https://img.shields.io/coveralls/github/pcolby/qtfit?label=Coverage)](https://coveralls.io/github/pcolby/qtfit)
[![GitHub Release](https://img.shields.io/github/v/release/pcolby/qtfit?include_prereleases&label=Release)](https://github.com/pcolby/qtfit/releases/latest)
[![LGPLv3 License](https://img.shields.io/badge/License-LGPLv3-informational.svg)](https://www.gnu.org/licenses/lgpl-3.0.html)

## Requirements

* Qt5 or Qt6

## Building from Source

~~~{.sh}
cmake -E make_directory
cmake -D CMAKE_BUILD_TYPE=Release -S -B
cmake --build
ctest --test-dir --verbose
~~~

### Test Coverage

Similar to above, but specify `ENABLE_COVERAGE=YES` for `cmake`, which will add dependencies on [gcov] and [LCOV].

~~~{.sh}
cmake -E make_directory
cmake -D CMAKE_BUILD_TYPE=Release -D ENABLE_COVERAGE=YES -S -B
cmake --build
ctest --test-dir --verbose
cmake --build --target coverage coverage-html
# ls /test/coverage.info # Coverage summary data.
# ls /test/coverage/ # HTML view.
~~~

The first target (`coverage`) uses `lcov` to generate `coverage.info` summary. And the second target (`coverage-html`)
used LCOV's `genhtml` to generate an HTML view of `coverage.info`.

Also available via [Coveralls](https://coveralls.io/github/pcolby/qtfit) (or [Codecov](https://app.codecov.io/gh/pcolby/qtfit)).

### Documentation

Configure the same as above, but build the `doc` and (optionally) `doc-internal` targets.

~~~{.sh}
cmake -E make_directory
cmake -S -B
cmake --build --target doc doc-internal
# ls /doc/public # Library end-user documentation
# ls /doc/internal # Internal library developer documentation
~~~

These are regularly published to Github Pages via Github Actions:

* [public end-user docs](https://pcolby.github.io/qtfit/main/doc/index.html)
* [internal dev docs](https://pcolby.github.io/qtfit/main/int/index.html)

[gcov]: https://gcc.gnu.org/onlinedocs/gcc/Gcov.html "gcov — a Test Coverage Program"
[LCOV]: http://ltp.sourceforge.net/coverage/lcov.php "LCOV — the LTP GCOV extension"