CMake Cookbook: Building,testing,and packaging modular software with modern CMake
Authors: Radovan Bast – Roberto Di Remigio
ISBN-10: 1788470710
ISBN-13: 9781788470711
Publication Date 出版日期: 2018-09-26
Publisher finelybook 出版社: Packt
Print Length 页数: 606 pages
Book Description
By finelybook
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.
CMake Cookbook includes real-world examples in the form of recipes that cover different ways to structure,configure,build,and test small- to large-scale code projects. You will learn to use CMake’s command-line tools and master modern CMake practices for configuring,building,and testing binaries and libraries. With this book,you will be able to work with external libraries and structure your own projects in a modular and reusable way. You will be well-equipped to generate native build scripts for Linux,MacOS,and Windows,simplify and refactor projects using CMake,and port projects to CMake.
Contents
1: FROM A SIMPLE EXECUTABLE TO LIBRARIES
2: DETECTING THE ENVIRONMENT
3: DETECTING EXTERNAL LIBRARIES AND PROGRAMS
4: CREATING AND RUNNING TESTS
5: CONFIGURE-TIME AND BUILD-TIME OPERATIONS
6: GENERATING SOURCE CODE
7: STRUCTURING PROJECTS
8: THE SUPERBUILD PATTERN
9: MIXED-LANGUAGE PROJECTS
10: WRITING AN INSTALLER
11: PACKAGING PROJECTS
12: BUILDING DOCUMENTATION
13: ALTERNATIVE GENERATORS AND CROSS-COMPILATION
14: TESTING DASHBOARDS
15: PORTING A PROJECT TO CMAKE
What You Will Learn
Configure,build,test,and install code projects using CMake
Detect operating systems,processors,libraries,files,and programs for conditional compilation
Increase the portability of your code
Refactor a large codebase into modules with the help of CMake
Build multi-language projects
Know where and how to tweak CMake configuration files written by somebody else
Package projects for distribution
Port projects to CMake
Authors
Radovan Bast
Radovan is working 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 as code developer is contributing to a number of quantum chemistry programs. He enjoys learning new programming languages and techniques,and to teach 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.
Roberto Di Remigio
Roberto is a postdoctoral fellow in theoretical chemistry at the 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.