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 に答える