Как создать пакет приложений MacOS с помощью cmake - PullRequest
0 голосов
/ 30 ноября 2018

Это можно рассматривать как продолжение Пакета 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 или около того не может быть и речи.

...