2014-03-30 116 views
5

使用cmake環境安裝Mac OSX應用程序,我想在安裝過程中設置並安裝圖標 。cmake:爲mac osx app設置圖標

因此,我嘗試設置

set(MACOSX_BUNDLE_ICON_FILE ${CMAKE_CURRENT_SOURCE_DIR}/images/myAopImage.icns) 
    ADD_EXECUTABLE(MYAPP MACOSX_BUNDLE ${MACOSX_BUNDLE_ICON_FILE} ${allSources}) 

#(我可以在源目錄設置爲任何其他路徑)

然而,這是不行的,它寫的完整路徑進入Info.plist中, 和安裝什麼到資源目錄(DIR資源甚至沒有得到 在被安裝的應用程序文件夾中創建)

總之,就算我把用手把Info.plist中的Informa公司重刑

<key>CFBundleIconFile</key> 
    <string>myAppImage.icns</string> 

和手動創建資源目錄,投入在那裏的ICNS文件,

圖標無論如何出現的應用程序。

我該如何解決這個問題?起初可能是手工做的,但也可以在cmake上下文中使用嗎?

謝謝您的回答.....

回答

3

要將ICNS文件複製到你的資源文件夾,您需要設置它的來源屬性。

set_source_files_properties(myAppImage.icns PROPERTIES MACOSX_PACKAGE_LOCATION "Resources") 

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

<string>myAppImage</string> 

應該罰款。

+0

再次感謝我的回答答案出現在你的之前,所以也許你不會閱讀它..... cf以上請 – user3478292

+0

至於你的迴應,你能詳細說明你的意思是圖標的位置? – Mark

+0

現在它應該被刪除,只是一個評論,希望現在一切都很好,我在這個論壇是新的.... – user3478292

6

從CMake中捆綁出來的文件有兩個部分:添加源文件本身,並將其配置到.plist中。如果你想指定一個路徑到你的圖標文件(例如,因爲它在一個子目錄中),那麼這兩個屬性將會指向圖標略有不同:

# 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}) 
+0

我發現第二個答案比第一個更好,因爲第二個答案解決了資源的創建問題。 –