1

我有一个结构如下的项目:

─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的外部 git 存储库。CMakeLists.txt

主要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我就可以编写类似的东西#include <log/log.h>,但我不明白如何。我想避免编辑CMakeLists.txt记录器项目的。

4

1 回答 1

2

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

file(MAKE_DIRECTORY "${APP_ROOT}/inc/log")
file(COPY "log/include/" DESTINATION "${APP_ROOT}/inc/log")
于 2013-07-21T12:25:20.913 回答