# cmake-examples **Repository Path**: arkins-wong/cmake-examples ## Basic Information - **Project Name**: cmake-examples - **Description**: source:https://github.com/ttroy50/cmake-examples.git - **Primary Language**: C++ - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-08-02 - **Last Updated**: 2021-10-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README = CMake Examples :toc: :toc-placement!: toc::[] # Introduction https://cmake.org/[CMake] 是一个跨平台的开源元构建系统,能够构建、测试和打包软件。它可用于支持多个本机生成环境,包括 make、Apple XCode和 Microsoft visual studio。 这个仓库包括一些我已经学习过的现代CMake配置示例,在探索它在各种项目中的用途时。示例以类似于教程的格式列出。 第一个示例非常基本,后边的示例在前面的示例的基础上慢慢增加复杂性更复杂的用例。 这些示例已经在Ubuntu 16.04上测试过,但应该可以在任何支持CMake v3.5+的Linux系统下运行。 此分支适用于CMake 3.5版及以后的版本。 * For examples that use CMake version 2.x see the branch link:https://github.com/ttroy50/cmake-examples/tree/v2-style-includes[v2-style-includes]. * For examples that use CMake version 3.0 see the branch link:https://github.com/ttroy50/cmake-examples/tree/v3.0-minimum[v3.0-minimum] image:https://travis-ci.org/ttroy50/cmake-examples.svg?branch=master["Build Status", link="https://travis-ci.org/ttroy50/cmake-examples"] # Requirements The basic requirements for most examples are: * CMake v3.5+ * A c++ compiler (defaults to gcc) * make ## Installation on Ubuntu The easiest way to install the above on Ubuntu is as follows [source,bash] ---- $ sudo apt-get install build-essential $ sudo apt-get install cmake ---- Some specific examples may require other tools including: * http://www.boost.org/[boost] $ sudo apt-get install libboost-all-dev * https://github.com/google/protobuf[protobuf] $ sudo apt-get install libprotobuf-dev $ sudo apt-get install protobuf-compiler * http://cppcheck.sourceforge.net/[cppcheck] $ sudo apt-get install cppcheck * http://clang.llvm.org/[clang] $ sudo apt-get install clang-3.6 * https://ninja-build.org/[ninja] $ sudo apt-get install ninja-build * link:https://conan.io[conan] $ sudo apt-get install python3 python3-pip $ sudo pip3 install conan ## Docker Docker containers with all requirements and various versions of CMake are generated to help make testing the examples easier. These are available from the docker hub repository link:https://hub.docker.com/r/matrim/cmake-examples/[matrim/cmake-examples]. To build the full set of cmake-examples test cases you can run: [source,bash] ---- docker run -it matrim/cmake-examples:3.5.1 cd ~ git clone https://github.com/ttroy50/cmake-examples.git code cd code ./test.sh ---- For more details on build and running the docker containers link:here[dockerfiles]. # Other Links There are many CMake tutorials and examples online. The list below includes links to some of these which I have found helpful in my CMake journey. * https://web.archive.org/web/20160314094326/https://www.kdab.com/~stephen/moderncmake.pdf[Modern CMake Slides] * https://rix0r.nl/blog/2015/08/13/cmake-guide/[rix0r Modern CMake Blog] * https://cmake.org/cmake-tutorial/[Official CMake Tutorial] * https://gitlab.kitware.com/cmake/community/wikis/home[Official CMake Wiki] * https://gitlab.kitware.com/cmake/community/wikis/doc/cmake/Useful-Variables[CMake Useful Variables] * http://derekmolloy.ie/hello-world-introductions-to-cmake/[Derek Molloy - Intro to CMake] * http://techminded.net/blog/modular-c-projects-with-cmake.html[Modular C++ Projects] * https://web.archive.org/web/20190320121339/http://voices.canonical.com/jussi.pakkanen/2013/03/26/a-list-of-common-cmake-antipatterns/[Common CMake Anti-Patterns] * http://baptiste-wicht.com/posts/2014/04/install-use-clang-static-analyzer-cmake.html[Using clang static analyser with CMake] * https://cmake.org/pipermail/cmake/2011-April/043709.html[Static Analysis with CDash] - Includes some info about using CppCheck with CMake * https://samthursfield.wordpress.com/2015/10/20/some-cmake-tips/[CMake Tips] * https://www.johnlamp.net/cmake-tutorial.html[John Lamp - CMake Tutorial] * link:https://docs.conan.io[Conan Documentation]