Современные CMake target_include_directories включают псевдоним для - PullRequest
0 голосов
/ 23 января 2020

Вот пример структуры проекта:

CMakeLists.txt
  A/
    includes/a.h
    src/a.cpp
    CMakeLists.txt
  B/
    includes/b.h
    src/b.cpp
    CMakeLists.txt

А вот сумма моей конфигурации CMake

cmake_minimum_required(VERSION 3.16)

project("WeedEngine")

# add_subdirectory(A)
add_library(A src/a.cpp)

target_include_directories(A PUBLIC includes)

# add_subdirectory(B)
add_library(B src/b.cpp)

target_link_libraries(B PRIVATE A)

Я хотел бы добавить ссылку в моем b. cpp заголовки из моей библиотеки A вроде этого

// b.cpp
#include "A/a.h"

Но я не могу правильно дать псевдоним моим заголовкам. Должен ли я использовать что-то вроде этого:

target_include_directories(A
    PUBLIC
    $<TARGET_NAME:${CMAKE_CURRENT_SOURCE_DIR}/includes>
)

С уважением,

...