![]() Simply put, we have the below possibilities here. Optional if parent build is enabled – Feature Set 1.Mandatory if parent build is enabled – Feature Set 0.Say, we want to build a simple calculator library that provides functions as below. Let us work with such a source tree and see how CMake makes life simple for such cases. Also, often the act of including components is governed by a global configuration file. Working with a typical source-treeĪ typical source tree consists of components that have to be built mandatorily, some are optional and may have dependencies on other components. You should now see a Hello, World! printed on your terminal.Ĭongratulations! You have successfully created and built your first CMake package! Let us now move on to something that reflects the most common use-cases of CMake. You should now see the hello binary as the output as indicated above. Building C object CMakeFiles/hello.dir/hello.c.o The Makefile is the one that we will use the make tool on to build our hello application. $ lsĬMakeCache.txt CMakeFiles Makefile cmake_install.cmake Now, it has content that looks like this. NOTE: The output will look different depending on the OS you are on and/or the compiler version you have installed on your OS. Build files have been written to: /path/to/hello/build Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc - skipped The CXX compiler identification is AppleClang 12.0032 You should now see output messages that look like the below: - The C compiler identification is AppleClang 12.0032 Since, we are now in the build/ folder, the argument shall be the previous folder i.e. Remember – you have to provide the path to the source tree that contains the CMakeLists.txt. $ mkdir buildĪll that is remaining now is to do your first ever CMake build! So, create a new folder called build (or anything you want!) inside the hello/ folder and navigate into it. It is considered a good practice to have the CMake output in a separate directory from the source tree. NOTE: Source trees that have multiple directories can make use of CMake by either having just a top-level CMakeLists.txt or multiple such files inside each sub-directory. We want an executable named hello which is built using the file hello.c.We have simply specified that the minimum version of CMake that should be used is 2.8.12.This minimal CMakeLists.txt file does three things as below. The CMake looks for a file named CMakeLists.txt to do its thing – always make sure that a file with this name is present in your source tree on which you run CMake. In the same folder, create a file named CMakeLists.txt and add the below content inside it. Now, create a simple hello.c as below in this folder. Let us now create an absolutely minimal but working CMake project called hello.Īnywhere on your PC, create a folder called hello and navigate into it. $ brew install cmake make Creating your first CMake project Similarly on a Mac, you can install CMake using HomeBrew. ![]() For example, you can do the below on an Ubuntu machine. If you are on Linux, you can also install CMake using a package manager like apt. It is a good idea to install that as well if not already installed! Also, one of the outputs of CMake is a Makefile that we will use the make tool on. This is especially true if you are interested in installing a particular release version. The best place to grab CMake and install it is the CMake download page. The suite of CMake tools were created by Kitware in response to the need for a powerful, cross-platform build environment for open-source projects such as ITK and VTK. CMake is used to control the software compilation process using simple platform and compiler independent configuration files, and generate native makefiles and workspaces that can be used in the compiler environment of your choice. It currently supports GNU Autotools, CMake, Qmake, and Plain makefile.ĬMake is an open-source, cross-platform family of tools designed to build, test and package software. Yocto contains a tool called devtool that allows you to generate a recipe on the source tree that is provided to it. Previously in this blog, we have talked about Yocto and how it is an extremely popular linux build system that allows you to generate a linux distribution of your choice.
0 Comments
Leave a Reply. |