How to do it

Let us look in detail at the various files needed by CMake:

  1. The top-level CMakeLists.txt contains the following:
cmake_minimum_required(VERSION 3.5 FATAL_ERROR)  project(recipe-08 LANGUAGES CXX)set(CMAKE_CXX_STANDARD 11)set(CMAKE_CXX_EXTENSIONS OFF)set(CMAKE_CXX_STANDARD_REQUIRED ON)
include(GNUInstallDirs)set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY  ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})set(CMAKE_LIBRARY_OUTPUT_DIRECTORY  ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})set(CMAKE_RUNTIME_OUTPUT_DIRECTORY  ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_BINDIR})# defines targets and sourcesinclude(src/CMakeLists.txt)include(external/CMakeLists.txt)enable_testing()add_subdirectory(tests)
  1. The external/CMakeLists.txt file is unchanged compared to the ...

Get CMake Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.