使用 CMake 生成 ac 配置檔案

如果我們有一個 c ++專案使用帶有一些自定義路徑或變數的 config.h 配置檔案,我們可以使用 CMake 和通用檔案 config.h.in 生成它。

config.h.in 可以是 git 儲存庫的一部分,而生成的檔案 config.h 將永遠不會被新增,因為它是從當前環境生成的。

#CMakeLists.txt
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.11)

SET(PROJ_NAME "myproject")
PROJECT(${PROJ_NAME})

SET(${PROJ_NAME}_DATA     ""     CACHE PATH "This directory contains all DATA and RESOURCES")
SET(THIRDPARTIES_PATH    ${CMAKE_CURRENT_SOURCE_DIR}/../thirdparties      CACHE PATH "This directory contains thirdparties")

configure_file ("${CMAKE_CURRENT_SOURCE_DIR}/common/config.h.in"
            "${CMAKE_CURRENT_SOURCE_DIR}/include/config.h" )

如果我們有這樣的 config.h.in:

cmakedefine PATH_DATA "@myproject_DATA@"
cmakedefine THIRDPARTIES_PATH "@THIRDPARTIES_PATH@"

以前的 CMakeLists 將生成一個 c ++標頭,如下所示:

#define PATH_DATA "/home/user/projects/myproject/data"
#define THIRDPARTIES_PATH "/home/user/projects/myproject/thirdparties"