CMAKE 如何让引用的工程外的文件导入工程内文件

我对Cmake不是很了解,现在工程中出现了这么一个需求:

一个工程需要工程外的文件作为库,这很常见。但同时这个工程外的文件也需要这个工程内部头文件。

下面是一个简单的demo:

.
├── CMakeLists.txt
├── include
│   └── mul_lib.h
├── mul_lib.c
└── my_project
    ├── CMakeLists.txt
    ├── include
    │   ├── fun.c
    │   └── fun.h
    └── src
        ├── CMakeLists.txt
        └── main.c

在上面的文件中,我的工程目录是my_project,而工程外面有一个我需要的头文件mul_lib.h文件,在这个头文件中有这么一句:

#include <fun.h>

本来呢,这句是要导入其他文件夹下的文件的,但是我现在想让它导入我工程下面的include文件下的fun.h文件。这就出现了上面描述的问题,请问大家有什么办法吗

出现互相引用的问题
你可以把你的fun.h移出你的项目,加到库中去
然后你的项目在引用库和头文件

  1. my_project下的CMkeLists.txt文件中使用add_subdirectory(.. parent.out)语句来将其设为子目录
  2. my_project下的CMkeLists.txt文件中使用include_directories()选项导入两个include文件夹
  3. my_project下的CMakeLists.txt文件中使用add_library()选项将父文件夹下的源文件设为库
  4. src文件夹下的CMakeLists.txt文件中同样导入两个include文件夹

编译通过了,但是我不知道这样做会不会有多余的步骤