使用 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"