我有一个构建MACOSX_BUNDLE
可执行文件的CMakeLists.txt脚本,但我很难找到将图标文件放入bundle资源目录的“正确方法”。我使用以下内容设置图标包属性:
# set icon
set( ICON_NAME "MyApp.icns" )
set( ICON_PATH "${PROJECT_SOURCE_DIR}/../data/${ICON_NAME}" )
set_target_properties( MyApp PROPERTIES MACOSX_BUNDLE_ICON_FILE ${ICON_NAME} )
看来正确的方法(如this existing post中所示)应为:
set_source_files_properties( ${ICON_PATH} PROPERTIES MACOSX_PACKAGE_LOCATION Resources )
但是,没有MyApp.app/Contents/Resources,也没有复制MyApp.icns ..以下是(在我看来)一种解决方法:
file( COPY ${ICON_PATH} DESTINATION "MyApp.app/Contents/Resources/" )
由于我经常将事情复制到资源文件夹中,我宁愿以'正确的方式'来做,但是有人能说出为什么这不起作用,因为我已经在上面做了吗?
答案 0 :(得分:5)
您还必须将图标(带完整路径)作为资源添加到可执行文件中:
add_executable( MyApp MACOSX_BUNDLE main.cpp ${ICON_PATH})
然后它会自动复制到资源文件夹。