Ecosyste.ms: Awesome

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

https://github.com/benthevining/Oranges

CMake modules, scripts, and utilities
https://github.com/benthevining/Oranges

build cmake cmake-modules

Last synced: about 2 months ago
JSON representation

CMake modules, scripts, and utilities

Lists

README

        

```
____ _____ _ _ _____ ______ _____
/ __ \| __ \ /\ | \ | |/ ____| ____|/ ____|
| | | | |__) | / \ | \| | | __| |__ | (___
| | | | _ / / /\ \ | . ` | | |_ | __| \___ \
| |__| | | \ \ / ____ \| |\ | |__| | |____ ____) |
\____/|_| \_\/_/ \_\_| \_|\_____|______|_____/
```

![GitHub top language](https://img.shields.io/github/languages/top/benthevining/Oranges)
[![Create release](https://github.com/benthevining/Oranges/actions/workflows/release.yml/badge.svg)](https://github.com/benthevining/Oranges/actions/workflows/release.yml)
[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/benthevining/Oranges/main.svg)](https://results.pre-commit.ci/latest/github/benthevining/Oranges/main)
[![Documentation](https://readthedocs.org/projects/oranges/badge/?version=latest)](https://oranges.readthedocs.io/en/latest/?badge=latest)
[![semantic-release: conventionalcommits](https://img.shields.io/badge/semantic--release-conventionalcommits-e10079?logo=semantic-release)](https://github.com/semantic-release/semantic-release)
![License](https://img.shields.io/github/license/benthevining/Oranges)
![GitHub repo size](https://img.shields.io/github/repo-size/benthevining/Oranges)
![GitHub commit activity](https://img.shields.io/github/commit-activity/m/benthevining/Oranges)
![GitHub Release Date](https://img.shields.io/github/release-date/benthevining/Oranges)
![GitHub release](https://img.shields.io/github/v/release/benthevining/Oranges)
![GitHub Sponsors](https://img.shields.io/github/sponsors/benthevining?style=social)
![GitHub Repo stars](https://img.shields.io/github/stars/benthevining/Oranges?style=social)
![GitHub followers](https://img.shields.io/github/followers/benthevining?style=social)

A library of CMake modules.

## What's here

### Oranges provides the following CMake modules:

* [OrangesBuildConfigs](modules/general/OrangesBuildConfigs.cmake)
* [OrangesBuildTypeMacros](modules/general/OrangesBuildTypeMacros.cmake)
* [OrangesCcache](modules/general/OrangesCcache.cmake)
* [OrangesClangFormat](modules/general/OrangesClangFormat.cmake)
* [OrangesClangTidy](modules/static_analysis/OrangesClangTidy.cmake)
* [OrangesCppcheck](modules/static_analysis/OrangesCppcheck.cmake)
* [OrangesCpplint](modules/static_analysis/OrangesCpplint.cmake)
* [OrangesDoxygen](modules/documentation/OrangesDoxygen.cmake)
* [OrangesFindPackageHelpers](modules/finders/OrangesFindPackageHelpers.cmake)
* [OrangesFunctionArgumentHelpers](modules/general/OrangesFunctionArgumentHelpers.cmake)
* [OrangesGenerateExportHeader](modules/code_generation/OrangesGenerateExportHeader.cmake)
* [OrangesGeneratePkgConfig](modules/installing/OrangesGeneratePkgConfig.cmake)
* [OrangesGeneratePlatformHeader](modules/code_generation/OrangesGeneratePlatformHeader.cmake)
* [OrangesGenerateStandardHeaders](modules/code_generation/OrangesGenerateStandardHeaders.cmake)
* [OrangesGeneratorExpressions](modules/general/OrangesGeneratorExpressions.cmake)
* [OrangesGraphviz](modules/documentation/OrangesGraphviz.cmake)
* [OrangesIPO](modules/general/OrangesIPO.cmake)
* [OrangesIWYU](modules/static_analysis/OrangesIWYU.cmake)
* [OrangesInstallFunctions](modules/installing/OrangesInstallFunctions.cmake)
* [OrangesSphinx](modules/documentation/OrangesSphinx.cmake)
* [OrangesStaticAnalysis](modules/static_analysis/OrangesStaticAnalysis.cmake)
* [OrangesUninstallTarget](modules/installing/OrangesUninstallTarget.cmake)
* [OrangesVersionHeader](modules/code_generation/OrangesVersionHeader.cmake)

### Oranges provides the following find modules:

* [FindAccelerate](modules/finders/FindAccelerate.cmake)
* [FindFFTW](modules/finders/FindFFTW.cmake)
* [FindLink](modules/finders/FindLink.cmake)
* [FindMIPP](modules/finders/FindMIPP.cmake)
* [FindMTS-ESP](modules/finders/FindMTS-ESP.cmake)
* [FindNE10](modules/finders/FindNE10.cmake)
* [FindSampleRate](modules/finders/FindSampleRate.cmake)
* [Findavir](modules/finders/Findavir.cmake)
* [Findchoc](modules/finders/Findchoc.cmake)
* [Findfftw3](modules/finders/Findfftw3.cmake)
* [Findfftw3f](modules/finders/Findfftw3f.cmake)
* [Findharu](modules/finders/Findharu.cmake)
* [Findpffft](modules/finders/Findpffft.cmake)
* [Findusb](modules/finders/Findusb.cmake)

## Using Oranges

When you bring Oranges into your build (either through ``add_subdirectory()`` or ``find_package()``), it does not include every module Oranges ships. You should manually ``include()`` each module you want to use.

Even though Oranges is a library of CMake modules, it is fully usable as an installable package.
You can run ``cmake --install``, and then call ``find_package (Oranges)`` from any consuming CMake project.

If your project depends on Oranges, I recommend using FetchContent to declare your dependency on Oranges.

### CMake options

Oranges modules define options of their own, which are only relevant if you include those modules. See each module for details on its options and cache variables.

These options are defined by the top-level Oranges project itself:

* ``ORANGES_BUILD_DOCS``

Builds the Oranges documentation. Defaults to OFF if the Oranges project is not the top-level directory CMake was invoked in. Building the docs requires Python 3.9 and Sphinx.

* ``ORANGES_BUILD_TESTS``

Builds the Oranges test suite and registers test cases with CTest.

## CMake install components
* oranges_modules
* oranges_doc_html
* oranges_doc_singlehtml
* oranges_doc_man
* oranges_doc_info
* oranges_doc_pdf
* oranges_docs - installs all Oranges documentation
* oranges - installs all Oranges components

## Dependency graph


Oranges dependency graph