Зависимость CMAKE от вышестоящей библиотеки только для заголовков C

#c #cmake #dependencies #header-only

#c #cmake #зависимости #только для заголовков

Вопрос:

У меня есть относительно простая библиотека C только для заголовков со следующей структурой

 - apps
  - app
    - CMakeLists.txt
    - app.cpp
- include
CMakeLists.txt

 

Сама библиотека находится в корне проекта и app1 добавляется впоследствии. Мое намерение здесь состоит в том, чтобы использовать библиотеку только для заголовков в качестве целевой ссылки, включающей каталоги и зависимости ссылок.

Вот корневой CMakeLists.txt файл:

 project(myLib)

find_package( OpenGL REQUIRED )
find_package( GLEW REQUIRED )
find_package( Eigen3 REQUIRED )

# add the target
add_library( ${PROJECT_NAME} INTERFACE )
target_include_directories( ${PROJECT_NAME} INTERFACE . )
target_link_directories( ${PROJECT_NAME} INTERFACE OpenGL::OpenGL GLEW::glew Eigen3::Eigen )

# add apps
add_subdirectory(apps)

 

И CMakeLists.txt файл приложения:

 project(app)

# find Qt5
find_package(Qt5 COMPONENTS Gui Widgets OpenGL REQUIRED)

# add the exec
add_executable( ${PROJECT_NAME} app.cpp )
target_include_directories( ${PROJECT_NAME} PRIVATE . )
target_link_libraries( ${PROJECT_NAME} myLib Qt5::Gui Qt5::Widgets Qt5::OpenGL )
 

Поскольку app1 находится ниже по myLib течению, я подумал, что могу просто добавить myLib в библиотеки ссылок приложения, и оно настроит все автоматически. Это не сработало и app не смогло увидеть включенные каталоги myLib .

Есть идеи, как это исправить, или объяснение, если подход изначально неверен?

Спасибо

Комментарии:

1. Вы забыли сказать нам, в чем проблема.

2. действительно, я сделал, спасибо