Это можно рассматривать как продолжение Пакета CMake MacOS X с BundleUtiliies для приложения Qt
Я хочу создать пакет MACOS на CI, который может использоваться пользователями дляпроект с открытым исходным кодом.
Что у меня есть:
- Основной исполняемый файл
- Исполняемый файл программы обновления
- значок файла
- вспомогательный скриптвызов апдейтера, затем основные
- файлы данных в папке (переводы и т. д., некоторые сгенерированные во время сборки)
- плагин общих библиотек
Что я сделал до сих пор:
- добавить
MACOSX_BUNDLE
к исполняемому файлу - добавить значок к его источникам и к
RESOURCE
свойству - установить
MACOSX_BUNDLE_*
свойства - установить все кросс-платформенным способом (обычные
install(TARGETS
звонки и install(FILES
для ресурсов)
Но теперь я застрял на том, как получить их в комплекте безмного ручной работы.
Из связанного вопроса я получил что-то вроде этого:
set(APPS "\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${PROJECT_NAME}.app")
set(LIBS )
set(DIRS "${CMAKE_BINARY_DIR}")
# Path used for searching by FIND_XXX(), with appropriate suffixes added
if(CMAKE_PREFIX_PATH)
foreach(dir ${CMAKE_PREFIX_PATH})
list(APPEND DIRS "${dir}/bin" "${dir}/lib")
endforeach()
endif()
install(CODE "include(BundleUtilities)
fixup_bundle(\"${APPS}\" \"${LIBS}\" \"${DIRS}\")")
Но:
- Почему мне нужно передать путь
*.app
вручную?CMake уже знает это, не так ли? LIBS
должны содержать мои плагины, не так ли?Но что?Дорожки?Целевые имена? DIRS
тоже для меня загадка.Нет документации даже в CMake 3.12 (я все еще использую 2.8.12, хотя :() - Как добавить мои сгенерированные и обычные файлы данных? Вероятно, такие же или похожие на значок? Но как насчет сгенерированных?
Помощь, указатели на примеры, полные списки CMakeList, делающие это и т. Д. Очень приветствуются.
Примечание: я кросс-компилирую из linux на CI и НЕ использую Qt, например, macdeployqt
или около того не может быть и речи.