纠正cmake设置以包含标头

时间:2013-07-21 08:34:35

标签: cmake

我的项目结构如下:

─root
  ├──src
  │   ├──main.cpp
  │   └──CMakeLists.txt[2]
  ├──build
  ├──out
  ├──inc
  ├──dep
  │   ├──log
  │   │   ├──include
  │   │   │     └──log.h
  │   │   ├──src
  │   │   │   └──log.cpp
  │   │   └──CMakeLists.txt[4]
  │   └──CMakeLists.txt[3]
  └──CMakeLists.txt[1]

dep下我有一个日志库,它是一个带有自己的CMakeLists.txt文件的外部git存储库。

CMakeLists.txt(标记为[1])是:

cmake_minimum_required(VERSION 2.6)
set(APP_ROOT ${PROJECT_SOURCE_DIR})
add_subdirectory(dep)
add_subdirectory(src)

当前项目代码的CMakeLists.txt(标记为[2])为:

add_executable(app main.cpp)
target_link_libraries(app log)
include_directories("${APP_ROOT}/inc")

依赖项的CMakeLists.txt(标记为[3])是:

add_subdirectory(log)

我要做的是将dep/log/include文件夹的内容复制到名为inc/log的新文件夹中,以便在main.cpp中我可以编写类似{{{ 1}},但我不明白怎么做。我想避免编辑记录器项目的#include <log/log.h>

1 个答案:

答案 0 :(得分:2)

我的解决方案:在/dep/CMakeLists.txt我添加了

file(MAKE_DIRECTORY "${APP_ROOT}/inc/log")
file(COPY "log/include/" DESTINATION "${APP_ROOT}/inc/log")