CMake递归包含库目录

时间:2018-06-25 22:27:55

标签: c++ cmake

我是rsync的新手。我有一个具有以下结构的项目。为了更清楚的说明,我将为--rsync-path=PROGRAM文件使用一些别名:

CMake

我的CMakeLists.txt文件的内容如下:

cmake_root

- lib
    |-- sub
         |-- example_lib.cpp
         |-- example_lib.hpp
    |-- CMakeLists.txt (alias: cmake_lib)
- src
    |-- main.cpp
    |-- CMakeLists.txt (alias: cmake_src)
- CMakeLists.txt (alias: cmake_root)

cmake_lib

CMakeLists.txt

cmake_src

cmake_minimum_required(VERSION 3.10)

set(CMAKE_CXX_STANDARD 17)

set(EXE_NAME example)
set(LIB_MODULE lib)

project(${EXE_NAME})

add_subdirectory (lib)
add_subdirectory (src)

不需要库源文件的内容。

我想使用将标题set(LIB_SOURCES sub/example_lib.hpp sub/example_lib.cpp) add_library(${LIB_MODULE} ${LIB_SOURCES}) 包含在set(SOURCES main.cpp) include_directories ("${PROJECT_SOURCE_DIR}/lib") add_executable(${EXE_NAME} ${SOURCES}) target_link_libraries(${EXE_NAME} ${LIB_MODULE}) 中:

example_lib.hpp

使用上面编写的配置,我只能使用:

main.cpp

我可以将以下行添加到#include "example_lib.hpp" 中,以使其正常运行,但是我不想列出#include "sub/example_lib.hpp" 下的每个目录:

cmake_src

我也尝试过:

lib

但是它也不起作用。

如何获得所需的行为?

0 个答案:

没有答案