Build cmake:如何包含/编译项目目录之外的文件?

Build cmake:如何包含/编译项目目录之外的文件?,build,cmake,project,external-project,Build,Cmake,Project,External Project,我有以下目录结构: projects/ project1/ src/ main.cpp CMakeLists.txt project2/ src/ file1.h file1.cpp test1.cpp 顶级项目目录不能被视为顶级项目,而只是无关项目的集合,因此我不会将CMakeLists.txt文件放在该级别 我希望proje

我有以下目录结构:

projects/
    project1/
        src/
            main.cpp
            CMakeLists.txt
    project2/
        src/
            file1.h
            file1.cpp
            test1.cpp
顶级项目目录不能被视为顶级项目,而只是无关项目的集合,因此我不会将
CMakeLists.txt
文件放在该级别

我希望project1包含project2中的文件,而不指定完整路径,例如:

// main.cpp
#include "file1.h"
我还想在project1中构建project2的实现文件

我需要project2不是一个库,而是像使用project1一样使用它的文件

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

即使指定项目2的完整路径也不起作用:
${CMAKE\u CURRENT\u SOURCE\u DIR)/../../../project2/src


我从
make

中获得“致命错误:file1.h:没有这样的文件或目录”以使用外部包含文件,这可以:

include_directories
include_directories