Eyescale / Cmake
Licence: other
Common CMake modules
Stars: ✭ 137
Labels
Projects that are alternatives of or similar to Cmake
Gemm hls
Scalable systolic array-based matrix-matrix multiplication implemented in Vivado HLS for Xilinx FPGAs.
Stars: ✭ 134 (-2.19%)
Mutual labels: cmake
Ros Travis Integration
ROS package continuous integration using travis-CI
Stars: ✭ 125 (-8.76%)
Mutual labels: cmake
More Modern Cmake
Contains the slides and examples for my "More Modern CMake" and "Oh No! More Modern CMake" talks from "Meeting C++" 2018 and 2019
Stars: ✭ 123 (-10.22%)
Mutual labels: cmake
Sdl2 Examples
Examples for getting started with SDL2, for over 12 different programming languages
Stars: ✭ 136 (-0.73%)
Mutual labels: cmake
Warzone2100
Command the forces of The Project in a battle to rebuild the world after mankind has been nearly destroyed by nuclear missiles. A 100% free and open source real-time strategy game for Windows, macOS, Linux, BSD+
Stars: ✭ 2,094 (+1428.47%)
Mutual labels: cmake
Hlslib
A collection of extensions for Vivado HLS and Intel FPGA OpenCL to improve developer quality of life.
Stars: ✭ 131 (-4.38%)
Mutual labels: cmake
Openage
Free (as in freedom) open source clone of the Age of Empires II engine 🚀
Stars: ✭ 10,712 (+7718.98%)
Mutual labels: cmake
Racecar gazebo
A gazebo-based simulator of the MIT Racecar.
Stars: ✭ 130 (-5.11%)
Mutual labels: cmake
Notepanda
📃 A simple cross-platform notepad. Based on Qt and C++.
Stars: ✭ 134 (-2.19%)
Mutual labels: cmake
Arduino Cmake Ng
CMake-Based framework for Arduino platforms
Stars: ✭ 123 (-10.22%)
Mutual labels: cmake
Blt
A streamlined CMake build system foundation for developing HPC software
Stars: ✭ 135 (-1.46%)
Mutual labels: cmake
Cmake Example
Example project which demonstrates various CMake features.
Stars: ✭ 131 (-4.38%)
Mutual labels: cmake
CMake Modules
This repository contains common CMake modules and a collection of find scripts to locate non-CMake dependencies. The recommended way to use it is:
As a git submodule
In your project source dir, do:
git submodule add https://github.com/Eyescale/CMake CMake/common
And include it in the top-level CMakeLists.txt as follows:
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/CMake/common)
include(Common)
Documentation
The following CMake modules can be included in your project:
-
Common does a common CMake setup, and also includes:
- CommonLibrary common_library function to build a (shared) library using a standard recipe and generates header files for the library (api.h, version.h).
- CommonApplication common_application function to build an application using a standard recipe.
- CommonFindPackage common_find_package for more convenience over find_package and common_find_package_post (must be last after all common_find_package calls) to generate defines.h and options.cmake for feature checking.
- CommonCompiler: Default compiler flags (including C++14) and useful default warnings can be set on given target to common_compile_options(); automatically applied for targets created with common_application() and common_library()
- CommonHelp common_help function to create a documentation page from an application's --help output.
- GitInfo sets variables with information about the git source tree.
- GitTargets branch, cut, tag, erase, retag, tarball targets.
-
CommonCTest should be included from a tests subfolder.
Does a common CTest setup, automatically adding all .cpp files in the
current folder as unit tests to a tests target. It also includes:
- CommonCoverage coverage target to generate a code coverage report as html, if COMMON_ENABLE_COVERAGE option is set. Additional compiler flags are set in that case, so it should be enabled only for debug builds.
- CommonCheckTargets adds test targets for various static code checkers if the COMMON_ENABLE_STATIC_TESTS option is set.
- CommonCPPCheck: cppcheck target for static code analysis. Also adds all cppcheck targets to tests target.
- CommonClangCheck: clangcheck target for clang-check code analysis. Adds all clangcheck targets to tests if COMMON_ENABLE_CLANGCHECK_TESTS is set.
- CommonPackageConfig generates cmake package information files for the project. These files let other CMake-based projects locate it through find_package (in config mode, without the need for a finder script). Must be included at the end of the CMakeLists.txt, after all targets have been added via common_library() and common_application().
- CommonCPack Configures the CPack package generator to redistribute the project as an installable package. Also includes CommonPackageConfig.
- DoxygenRule: doxygen target to build documentation into PROJECT_BINARY_DIR/doc. Optional doxycopy target to copy the results to ../GITHUB_ORGANIZATION/Project-M.m/. Must be included after all other targets.
- SubProject: This module is automatically included in Common.cmake to build several CMake subprojects (which may depend on each other), which are declared in a .gitsubprojects file. To be compatible with the SubProject feature, (sub)projects might need to adapt their CMake scripts. Generally, CMAKE_BINARY_DIR should be changed to PROJECT_BINARY_DIR and CMAKE_SOURCE_DIR should be changed to PROJECT_SOURCE_DIR. See SubProject documentation for more details. A simple example project can be found at https://github.com/Eyescale/Collage.git, and a more complex one at https://github.com/BlueBrain/Brayns.git.
Additional features:
- InstallDependencies lets users install known system packages during the initial configuration by doing "cmake -DINSTALL_PACKAGES=1". This is only implemented for Linux distributions using apt-get and yum package managers and MacPorts in OS X. The actual support depends on the project declaring its dependencies for each particular case.
- CommonGraph adds graphs target to generate .png tree view of dependencies, gathered by CommonFindPackage and SubProject.
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].