2013-01-09 39 views
8

Tôi đang sử dụng UseLATEX.cmake để biên soạn thư mục tài liệu dự án của mình.CMake và Latex

Dự án của tôi được tổ chức như sau -

. 
├── 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 

gốc tập tin mức cmake của tôi là như thế này ...

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) 

Và file CMakeList trong file tài liệu là -

include(UseLATEX) 

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

Bây giờ tôi biên dịch dự án của tôi trong thư mục build. Có cách nào tôi có thể sao chép lại tệp Doc.pdf được tạo trong thư mục build/doc quay lại thư mục bản dựng ban đầu của tôi không?

Trả lời

7

ADD_LATEX_DOCUMENT thêm mục tiêu CMake có tên pdf vào đây, bạn sẽ có thể sử dụng add_custom_command. Hãy thử thêm những điều sau đây để bạn /doc/CMakeLists.txtsau các ADD_LATEX_DOCUMENT gọi:

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

lệnh tùy chỉnh này sẽ khởi chạy cmake thực thi (tổ chức tại biến ${CMAKE_COMMAND}) cùng với -E copy arguments mỗi khi mục tiêu pdf được xây dựng.

+1

cảm ơn rất nhiều !! :) – subzero