我的项目结构如下:
─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>
。
答案 0 :(得分:2)
我的解决方案:在/dep/CMakeLists.txt
我添加了
file(MAKE_DIRECTORY "${APP_ROOT}/inc/log")
file(COPY "log/include/" DESTINATION "${APP_ROOT}/inc/log")