2013-01-09 1 views
8

UseLATEX.cmake을 사용하여 프로젝트 문서 폴더를 컴파일하고 있습니다. 내 프로젝트로 구성되어CMake and Latex

다음 -

. 
├── CMakeLists.txt 
├── bin 
├── build 
├── cmake 
│   ├── CMakeCompilerFlags.cmake 
│   ├── CMakeDefaults.cmake 
│   ├── MacroEnsureOutOfSourceBuilds.cmake 
│   └── UseLATEX.cmake 
├── doc 
│   ├── Doc.tex 
│   ├── CMakeLists.txt 
│   └── images 
│    ├── img1.png 
│    ├── img2.png 
│    ├── img3.png 
│    └── img4.jpeg 
............ 
└── src 
    ├── CMakeLists.txt 
    ├── file1.cpp 
    ├── file2.cpp 
    └── file3.cpp 

내 루트 레벨 cmake 파일

cmake_minimum_required(VERSION 2.8 FATAL_ERROR) 

# Set path for CMake 
set(CMAKE_MODULE_PATH 
    "${CMAKE_SOURCE_DIR}/cmake" 
    ${CMAKE_MODULE_PATH} 
) 

# Define project settings 
project(proj) 
set(APPLICATION_NAME ${PROJECT_NAME}) 
include(CMakeDefaults) 

# Compile Program and Docs 
include_directories(inc) 
add_subdirectory(src) 
add_subdirectory(doc) 

그리고 문서 파일의 CMakeList 파일입니다 ... 이런 식입니다 -

include(UseLATEX) 

ADD_LATEX_DOCUMENT(Doc.tex 
    #BIBFILES mybib.bib 
    IMAGE_DIRS images 
    DEFAULT_PDF 
) 

이제 프로젝트를 build 폴더로 컴파일합니다. build/doc 폴더에 생성 된 Doc.pdf 파일을 원래 빌드 폴더로 다시 복사 할 수 있습니까?

답변

7

여기 ADD_LATEX_DOCUMENTpdf이라는 CMake 타겟을 추가하므로 add_custom_command을 사용할 수 있어야합니다. 당신의 /doc/CMakeLists.txtADD_LATEX_DOCUMENT 호출에 다음과 같은 추가보십시오 :

add_custom_command(TARGET pdf POST_BUILD 
        COMMAND ${CMAKE_COMMAND} -E copy 
         ${CMAKE_CURRENT_BINARY_DIR}/Doc.pdf 
         ${CMAKE_BINARY_DIR}/Doc.pdf) 

이 사용자 정의 명령은 -E copy argumentspdf 대상이 구축 될 때마다 함께 (변수 ${CMAKE_COMMAND}에서 개최)에 cmake 실행 파일을 호출합니다.

+1

감사합니다. :) – subzero