首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >cmake:为Mac应用程序设置图标

cmake:为Mac应用程序设置图标
EN

Stack Overflow用户
提问于 2014-03-30 15:17:32
回答 2查看 7.6K关注 0票数 10

使用cmake环境安装Mac应用程序,我希望在安装过程中设置并安装图标。

因此,我试图设置

代码语言:javascript
运行
复制
set( MACOSX_BUNDLE_ICON_FILE ${CMAKE_CURRENT_SOURCE_DIR}/images/myAopImage.icns )
ADD_EXECUTABLE(MYAPP MACOSX_BUNDLE ${MACOSX_BUNDLE_ICON_FILE} ${allSources})
#(I could set it in the source directory to any other path)

但是,这样做不起作用,它将完整的路径写入Info.plist,并且没有将任何内容安装到参考资料目录中(资源dir甚至没有在安装的app文件夹中创建)

无论如何,即使我用手把这些信息放入Info.plist

代码语言:javascript
运行
复制
<key>CFBundleIconFile</key>
<string>myAppImage.icns</string>

手工创建参考资料目录,将icns文件放入其中,

无论如何,这个图标都会出现在应用程序中。

我该如何解决这个问题?一开始可能是手工做的,但也是在cmake上下文中做的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-31 18:52:24

要将icns文件复制到参考资料文件夹,您需要在它上设置一个源属性。

代码语言:javascript
运行
复制
set_source_files_properties(myAppImage.icns PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")

另外,我在某个地方读到,plist中的字符串不需要.icns,所以

代码语言:javascript
运行
复制
<string>myAppImage</string> 

应该没事的。

票数 5
EN

Stack Overflow用户

发布于 2014-06-19 17:42:06

有两部分可以将.icns文件与CMake捆绑在一起:添加源文件本身,并在.plist中配置它。如果您希望指定.icns文件的路径(例如,因为它位于子目录中),那么这两个属性对.icns文件的引用会略有不同:

代码语言:javascript
运行
复制
# NOTE: Don't include the path in MACOSX_BUNDLE_ICON_FILE -- this is
# the property added to Info.plist
set(MACOSX_BUNDLE_ICON_FILE myAppImage.icns)

# And this part tells CMake where to find and install the file itself
set(myApp_ICON ${CMAKE_CURRENT_SOURCE_DIR}/images/myAppImage.icns)
set_source_files_properties(${myApp_ICON} PROPERTIES
       MACOSX_PACKAGE_LOCATION "Resources")

add_executable(myApp MACOSX_BUNDLE ${myApp_ICON} ${allSources})
票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22745728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档