使用cmake环境安装Mac OS X应用程序,我想设置并安装图标 在安装过程中。
因此,我尝试设置
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, 并且什么都不安装到Resources目录中(资源目录甚至没有得到 在安装的app文件夹中创建)
无论如何,即使我手工将信息放入Info.plist中
<key>CFBundleIconFile</key>
<string>myAppImage.icns</string>
并手动创建Resources目录,将icns文件放入
该图标无论如何都会出现。
我该如何解决这个问题?首先可以手工完成,但也可以在cmake上下文中进行?
答案 0 :(得分:9)
从CMake中捆绑.icns文件有两个部分:添加源文件本身,并在.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})
答案 1 :(得分:5)
要将icns文件复制到Resources文件夹,您需要在其上设置source属性。
set_source_files_properties(myAppImage.icns PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
另外,我在某处读到plist中的字符串不需要.icns,所以
<string>myAppImage</string>
应该没问题。