使用cmake环境安装Mac应用程序,我希望在安装过程中设置并安装图标。
因此,我试图设置
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
<key>CFBundleIconFile</key>
<string>myAppImage.icns</string>
手工创建参考资料目录,将icns文件放入其中,
无论如何,这个图标都会出现在应用程序中。
我该如何解决这个问题?一开始可能是手工做的,但也是在cmake上下文中做的?
发布于 2014-03-31 18:52:24
要将icns文件复制到参考资料文件夹,您需要在它上设置一个源属性。
set_source_files_properties(myAppImage.icns PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
另外,我在某个地方读到,plist中的字符串不需要.icns,所以
<string>myAppImage</string>
应该没事的。
发布于 2014-06-19 17:42:06
有两部分可以将.icns文件与CMake捆绑在一起:添加源文件本身,并在.plist中配置它。如果您希望指定.icns文件的路径(例如,因为它位于子目录中),那么这两个属性对.icns文件的引用会略有不同:
# 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})
https://stackoverflow.com/questions/22745728
复制相似问题