CPack не включает скомпилированный код зависимости и заголовки - PullRequest
0 голосов
/ 18 марта 2019

Я пишу библиотеку C с двумя подпроектами и одной зависимостью. Зависимость является подмодулем Git и имеет собственный файл CMakeLists.txt. foo и bar - мои проекты, а baz - зависимость. Когда я запускаю make package в моем проекте, foo и bar преобразуют его в файлы TGZ, а baz - нет.

my_project
|-foo
| |-CMakeLists.txt
|-bar
| |-CMakeLists.txt
|-external
| |-CMakeLists.txt
| |-baz
| | |-CMakeLists.txt
cmake_minimum_required(VERSION 3.0 FATAL_ERROR)
project(my_project LANGUAGES C VERSION 0.0.1)

add_subdirectory(foo)
add_subdirectory(bar)

add_subdirectory(external)

set(CPACK_INSTALL_CMAKE_PROJECTS
    "foo;foo;ALL;/"
    "bar;bar;ALL;/"
    "external/baz;baz;ALL;/"
)
include(CPack)
$ make package
$ tar tvf my_project-0.0.1-Linux.tar.gz
my_project-0.0.1-Linux/include
my_project-0.0.1-Linux/include/foo.h
my_project-0.0.1-Linux/include/bar.h
my_project-0.0.1-Linux/lib
my_project-0.0.1-Linux/lib/libfoo.a
my_project-0.0.1-Linux/lib/libbar.a

Выходные данные make package показывают, что baz обрабатывается при переносе (Run preinstall target for: baz и Install project: baz), и процесс завершается ошибкой, сообщая, что не может найти папку, если я изменяю строку external/baz в CMakeLists .txt.

Я понимаю, что это не лучший способ организовать мой проект, и я открыт для предложений по его улучшению, но моя непосредственная проблема заключается в том, что код, необходимый для ссылки на мою библиотеку, не упаковывается. Что еще я должен пытаться?

Заранее спасибо!

...