gpt4 book ai didi

macos - 如何使用 cmake 创建 MacOS 应用程序包

转载 作者:行者123 更新时间:2023-12-03 15:48:32 32 4
gpt4 key购买 nike

这可以被认为是对 CMake MacOS X bundle with BundleUtiliies for Qt application 的跟进。

我想在 CI 上创建一个 MACOS 包,用户可以将其用于开源项目。

我拥有的:

  • 主要可执行文件
  • 更新程序可执行文件
  • 图标文件
  • 辅助脚本调用更新程序然后调用主程序
  • 文件夹中的数据文件(翻译等,一些在构建时生成)
  • 插件共享库

  • 到目前为止我所做的:
  • 添加 MACOSX_BUNDLE到可执行文件
  • 将图标添加到其来源和 RESOURCE属性(property)
  • 套装MACOSX_BUNDLE_*属性(property)
  • 以跨平台方式安装所有内容(常规 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 :()
  • 如何添加我生成的和常规的数据文件?可能与图标相同或相似?但是生成的呢?

  • 帮助,指向示例的指针,完整的 CMakeLists 这样做等等。非常欢迎。

    注意:我在 CI 上从 linux 交叉编译,而不是使用 Qt 所以例如 macdeployqt左右是不可能的。

    最佳答案

    刚遇到同样的问题,谷歌把我带到了这里。
    这对我有用:

    set(CUR_TARGET myappname)
    add_executable(${CUR_TARGET} MACOSX_BUNDLE ${MY_SRC})
    set_target_properties(${CUR_TARGET} PROPERTIES
    BUNDLE True
    MACOSX_BUNDLE_GUI_IDENTIFIER my.domain.style.identifier.${CUR_TARGET}
    MACOSX_BUNDLE_BUNDLE_NAME ${CUR_TARGET}
    MACOSX_BUNDLE_BUNDLE_VERSION "0.1"
    MACOSX_BUNDLE_SHORT_VERSION_STRING "0.1"
    MACOSX_BUNDLE_INFO_PLIST ${CMAKE_SOURCE_DIR}/cmake/customtemplate.plist.in
    )
    文件 customtemplate.plist.in 基于来自 your_cmake_install_dir/share/cmake/Modules/MacOSXBundleInfo.plist.in 的 cmake dir 子文件夹中的 cmake 模板

    关于macos - 如何使用 cmake 创建 MacOS 应用程序包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53560288/

    32 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com