Мы работаем над мультиплатформенным проектом C ++ GUI. У нас есть зависимости от некоторых сторонних библиотек (например, boost
, fftw
и т. д.), и они также поставляются и устанавливаются, поэтому нашим пользователям не нужно загружать дополнительные компоненты.
Прямо сейчас для сборки MacOS создается пакет приложений (MyProject.app
). Мы используем PackageMaker
CPack
Генератор пакетов. Все необходимые сторонние зависимости устанавливаются в соответствии с MyProject.app/Contents/Frameworks
,
Недавно мы завершили набор инструментов командной строки, которые мы хотели бы включить в наш установщик. Итак, мы будем устанавливать наш комплект, MyProject.app
вдоль папки, скажем, Tools
, включая наши новые утилиты командной строки.
Чтобы сделать вещи более интересными, наш пакет приложений состоит из некоторых компонентов графического интерфейса и ядра, и мы представляем каждый компонент и наши инструменты как разные CMake
проекты (т. е. мы используем следующие CMake
команды: project(gui_components)
, project(core_components)
а также project(tools)
). Наши инструменты зависят от основных компонентов, но не от компонентов графического интерфейса.
По сути, мы хотели бы иметь следующую структуру папок:
<install folder>
|
|--MyProject.app
| |
| |--<all MacOS bundle needed folders/files>
|
|--Tools/
| |
| |--ToolA
| |--ToolB
|
|--lib/
|
|--libboost_regex
|--libfftw
|--libgui_components
|--libcore_components
Как я могу сказать CMake
/ CPack
установить сторонние зависимости (в этом примере: libboost_regex
а также libfftw
) в lib
папка? Они все еще устанавливаются под MyProject.app/Contents/Frameworks
, Нам уже удалось установить собственный libgui_components
а также libcore_components
в lib
папка.
Задача ещё не решена.
Других решений пока нет …