1

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
4

1 回答 1

1

这会将您的 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
于 2013-06-03T11:08:53.330 回答