Skip to content

A set of CMake modules that are used by the C++-based Ignition projects.

License

Notifications You must be signed in to change notification settings

scpeters/ign-cmake

 
 

Repository files navigation

Ignition CMake : CMake Modules for Ignition Projects

Maintainer: grey AT openrobotics.org

GitHub open issues GitHub open pull requests Discourse topics Hex.pm

Build Status
Test coverage codecov
Ubuntu Bionic Build Status
Homebrew Build Status
Windows Build Status

Table of Contents

Features

Install

Usage

Documentation

Testing

Folder Structure

Code of Conduct

Contributing

Versioning

License

Features

ignition-cmake provides a set of cmake modules that are used by the C++-based ignition projects. These modules help to control the quality and consistency of the ignition projects' build systems.

These modules are tailored to the ignition projects, so their use for non-ignition projects might be limited, but they may serve as a useful reference for setting up a modern cmake build system using good practices.

Install

We recommend following the Binary Install instructions to get up and running as quickly and painlessly as possible.

The Source Install instructions should be used if you need the very latest software improvements, you need to modify the code, or you plan to make a contribution.

Binary Install

On Ubuntu systems, apt-get can be used to install ignition-cmake:

$ sudo apt install libignition-cmake<#>-dev

Be sure to replace <#> with a number value, such as 1 or 2, depending on which version you need.

Source Install

Prerequisites

The only prerequisite of ignition-cmake is cmake. Ubuntu users can install cmake with the package manager:

$ sudo apt install cmake

Building from source

To build and install from source, you can clone the repo and use cmake to install the modules as though this is a regular cmake project:

$ git clone https://github.com/ignitionrobotics/ign-cmake
$ cd ign-cmake
$ mkdir build
$ cd build
$ cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/install/dir
$ make -j8
$ make install

Replace /path/to/install/dir to whatever directory you want to install this package to.

Usage

This library is used internally by the ignition projects. See other ignition projects for examples of how this gets used.

Documentation

Documentation for ignition-cmake can be found within the source code, and also in the MIGRATION.md guide.

Testing

A fuller suite of tests in the examples directory can be enabled by building with BUILDSYSTEM_TESTING enabled. Tests can be run by building the test target. From your build directory you can run:

$ cmake .. -DBUILDSYSTEM_TESTING=1
$ make test

Folder Structure

  • cmake: cmake modules that get installed by this package
  • codecheck: code linting and static analyzing utilities that get installed by this package
  • config: template files for producing the config-files of ignition-cmake; these are only used internally
  • doc: template files to help ignition projects generate their own documentation
  • examples: fake projects that are used to test ignition-cmake
  • include: C++ utility header files that get installed with ignition-cmake
  • test: a directory of tests for the C++ utility component of ignition-cmake
  • tools: scripts for continuous integration testing

Contributing

Please see CONTRIBUTING.md.

Code of Conduct

Please see CODE_OF_CONDUCT.md.

Versioning

This library uses Semantic Versioning. Additionally, this library is part of the Ignition Robotics project which periodically releases a versioned set of compatible and complementary libraries. See the Ignition Robotics website for version and release information.

License

This library is licensed under Apache 2.0. See also the LICENSE file.

About

A set of CMake modules that are used by the C++-based Ignition projects.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • CMake 93.0%
  • C++ 2.5%
  • Python 2.4%
  • Shell 1.9%
  • Batchfile 0.2%