Libswiftnav (LSN) is a platform independent library that implements GNSS utility functions for use by software-defined GNSS receivers or software requiring GNSS functionality. It is intended to be as portable as possible and is written in standards compliant C with no dependancies
LSN does not provide any functionality for communicating with Swift Navigation receivers. See libsbp to communicate with receivers using Swift Binary Protocol (SBP).
To checkout the library run the following commands in an appropriate directory
git clone git@github.com:swift-nav/libswiftnav.git
Which should checkout the source code
To build the library, run the following commands from the LSN root directory - LSN depends on the latest xcode for MacOSX and cmake
mkdir ./build
cd ./build
cmake ../
make -j4
The libswiftnav
docker image is using a ECR-hosted base image swift-build
that contains most swift build tools.
To be able to pull this base image from ECR, you need to log into AWS (select the SSO-Build-User role) and then into ECR:
aws-google-auth -S 115297745755 -I C02x4yyeb -p default -a -u <username>@swift-nav.com
$(aws ecr get-login --no-include-email --region us-west-2 --registry-ids 571934480752)
Alternatively to the AWS/ECR pull, you can build the base image yourself from the Dockerfile.base: (replace <tag> with the one used by Dockerfile's FROM statement, e.g. 2018-12-20)
docker build -t 571934480752.dkr.ecr.us-west-2.amazonaws.com/swift-build:<tag> modules/docker-recipes/swift-build
Now you can build and run the libswiftnav image with
docker-compose build libswiftnav
docker-compose run libswiftnav
make docker
- Starts a shell in a container, with the workspace mounted as /mnt/workspace.
make docker-build
make docker-lint