8

我正在使用UseLATEX.cmake来编译我的项目文档文件夹。

我的项目组织如下——

.
├── 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现在我在文件夹中编译我的项目。有什么办法可以将文件夹Doc.pdf中创建的文件复制build/doc回我原来的构建文件夹?

4

1 回答 1

7

由于ADD_LATEX_DOCUMENT添加了此处命名的 CMake 目标pdf,您应该能够使用add_custom_command. 尝试在通话/doc/CMakeLists.txt 后添加以下内容:ADD_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)

每次构建目标时,此自定义命令都会调用 cmake 可执行文件(保存在变量中${CMAKE_COMMAND})以及-E copy参数。pdf

于 2013-01-09T23:07:52.803 回答