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 に答える