CMake:创建目标后如何写入文件

CMake: How to write into a file after making a target?

本文关键字:何写入 文件 目标 创建 CMake      更新时间:2023-10-16

在CMake中等价于下面的make文件代码是什么?

target: config_header $(OBJS)
    g++ -o $(APPNAME) $(OBJS) $(LIBDIR) $(LIBS)
config_header:
    echo "#ifndef _CONFIG_HEADER_H_" > Config.h
    echo "#define _CONFIG_HEADER_H_" >> Config.h
    echo "#define MAJOR_VERSION "$(MAJOR)"" >> Config.h
    echo "#define MINOR_VERSION "$(MINOR)"" >> Config.h
    echo "#define PATCH_VERSION "$(PATCH)"" >> Config.h
    echo "#define RELEASE_VERSION "$(RELEASE)"" >> Config.h
    echo "#endif" >> Config.h

这会将cmake配置文件复制到二进制目录中,并适应定义的参数。

#############################################################################
# Cmake generated header files
#############################################################################
CONFIGURE_FILE(
    ${CMAKE_CURRENT_SOURCE_DIR}/config.hpp.cmake
    ${CMAKE_CURRENT_BINARY_DIR}/config.hpp
)

config.hpp.cmake文件包含:

#ifndef GUARD
#define GUARD
#cmakedefine _CONFIG_HEADER_H_
#endif //GUARD

在复制过程中,cmake生成以下文件:

#ifndef GUARD
#define GUARD
#define _CONFIG_HEADER_H_
#endif //GUARD