cmake:如何在项目目录中包含/编译文件?

问题描述:

我有这样的目录结构:cmake:如何在项目目录中包含/编译文件?

projects/ 
    project1/ 
     src/ 
      main.cpp 
      CMakeLists.txt 
    project2/ 
     src/ 
      file1.h 
      file1.cpp 
      test1.cpp 

顶级项目目录不能算是一个顶级项目,而只是一个无关的项目的集合,所以我不会把一个CMakeLists.txt文件在这一水平。

我想PROJECT1包括从项目2文件没有指定的完整路径,例如:

// main.cpp 
#include "file1.h" 

而且我也希望项目2的实现文件要建在PROJECT1。

我需要project2不是一个库,但只是使用它的文件,如果他们是project1的一部分。

我使用cmake,这是CMakeLists.txt文件我写的(它不工作):

cmake_minimum_required(VERSION 2.8) 
project(project1) 
add_subdirectory(src) 
add_subdirectory(../../project2/src) 

即使指定的完整路径项目2不工作:${CMAKE_CURRENT_SOURCE_DIR)/../../project2/src

我得到“致命错误:file1.h:没有这样的文件或目录“从make

使用外部包括文件,这个工程:

include_directories 
+0

这是否解决您所有的构建问题? – ronkot 2013-02-25 05:50:51