簡體   English   中英

cmake:設置Mac OS X應用程序的圖標

[英]cmake: set icon for a Mac OS X app

使用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上下文中?

從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})

要將icns文件復制到Resources文件夾,需要在其上設置source屬性。

set_source_files_properties(myAppImage.icns PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")

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

<string>myAppImage</string> 

應該沒事。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM