2013-06-03 3 views
1

다음과 같은 CMake의 파일 만들기 코드가 무엇입니까?CMake : 대상을 만든 후 파일에 쓰는 방법?

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 

답변

1

cmake 구성 파일을 바이너리 디렉토리에 복사하고 정의 된 매개 변수를 적용합니다.

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

config.hpp.cmake 파일이 포함되어

복사 cmake 동안
#ifndef GUARD 
#define GUARD 

#cmakedefine _CONFIG_HEADER_H_ 

#endif //GUARD 

는 다음 파일을 생성합니다

#ifndef GUARD 
#define GUARD 

#define _CONFIG_HEADER_H_ 

#endif //GUARD 
+0

Insteda 내가 사용하는'#cmakedefine의 _CONFIG_HEADER_H_'의를'#DEFINE MAJOR_VERSION "$ {MAJOR}" "그것은 효과가있었습니다. – Meysam