Home

Awesome

CMake Cookbook

<a href="https://www.packtpub.com/application-development/cmake-cookbook?utm_source=github&utm_medium=repository&utm_campaign=9781788470711 "><img src="https://d255esdrn735hr.cloudfront.net/sites/default/files/imagecache/ppv4_main_book_cover/B08515.png" alt="CMake Cookbook" height="256px" align="right"></a>

This is the code repository for CMake Cookbook, published by Packt.

Building, testing, and packaging modular software with modern CMake

What is this book about?

CMake is cross-platform, open-source software for managing the build process in a portable fashion. This book features a collection of recipes and building blocks with tips and techniques for working with CMake, CTest, CPack, and CDash.

This book covers the following exciting features:

If you feel this book is for you, get your copy today!

<a href="https://www.packtpub.com/?utm_source=github&utm_medium=banner&utm_campaign=GitHubBanner"><img src="https://raw.githubusercontent.com/PacktPublishing/GitHub/master/GitHub.png" alt="https://www.packtpub.com/" border="5" /></a>

Instructions and Navigations

All of the code is organized into folders. For example, Chapter02.

The code will look like the following:

cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
project(recipe-01 LANGUAGES CXX)
add_executable(hello-world hello-world.cpp)

Following is what you need for this book: If you are a software developer keen to manage build systems using CMake or would like to understand and modify CMake code written by others, this book is for you. A basic knowledge of C++, C, or Fortran is required to understand the topics covered in this book.

With the following software and hardware list you can run all code files present in the book (Chapter 1-15).

Software and Hardware List

ChapterSoftware requiredOS required
1-15CMake >= 3.5 g++ supporting C++11 gcc supporting C99 gfortran Windows: msys2 installer or Visual StudioWindows, Mac OS X, and Linux (Any)
2Eigen 3.3.4Windows, Mac OS X, and Linux (Any)
3Python interpreter Python development libraries: BLAS LAPACK MPI library Eigen 3.3.4 Boost 1.59 ZeroMQWindows, Mac OS X, and Linux (Any)
4Boost 1.54 Catch2 Google TestWindows, Mac OS X, and Linux (Any)
5Python interpreter Python development libraries BLAS LAPACKWindows, Mac OS X, and Linux (Any)
6Python interpreter gitWindows, Mac OS X, and Linux (Any)
8Boost 1.54 FFTW3 Eigen 3.3.4Windows, Mac OS X, and Linux (Any)
9LAPACKWindows, Mac OS X, and Linux (Any)
11CFFI Anaconda pybind11Windows, Mac OS X, and Linux (Any)
12Doxygen Sphinx BreatheWindows, Mac OS X, and Linux (Any)
13MXE Visual StudioWindows, Mac OS X, and Linux (Any)
14CDashWindows, Mac OS X, and Linux (Any)

We also provide a PDF file that has color images of the screenshots/diagrams used in this book. Click here to download it.

Get to Know the Author

Radovan Bast works at the High Performance Computing Group at UiT - The Arctic University of Norway in Tromsø and leads the CodeRefinery project. He has a PhD in theoretical chemistry and contributes to a number of quantum chemistry programs as a code developer. He enjoys learning new programming languages and techniques, and teaching programming to students and researchers. He got in touch with CMake in 2008 and has ported a number of research codes and migrated a number of communities to CMake since then.

Roberto Di Remigio is a postdoctoral fellow in theoretical chemistry at UiT - The Arctic University of Norway in Tromsø, Norway and Virginia Tech, USA. He is currently working on stochastic methods and solvation models. He is a developer of the PCMSolver library and the Psi4 open source quantum chemistry program. He contributes or has contributed to the development of popular quantum chemistry codes and libraries: DIRAC, MRCPP, DALTON, LSDALTON, XCFun, and ReSpect. He usually programs in C++ and Fortran.

Suggestions and Feedback

Click here if you have any feedback or suggestions.

Download a free PDF

<i>If you have already purchased a print or Kindle version of this book, you can get a DRM-free PDF version at no cost.<br>Simply click on the link to claim your free PDF.</i>

<p align="center"> <a href="https://packt.link/free-ebook/9781788470711">https://packt.link/free-ebook/9781788470711 </a> </p>