2016-09-14 88 views
1

我已成功設置我的項目,使用CMake構建UWP應用程序。但是,在處理資源時,似乎需要將它們作爲源添加到add_executable命令中,並且在目標屬性中將其設置爲RESOURCECMake + UWP資源和source_group

所有資源文件已被複制到磁盤上的所需位置。但是,當我生成項目時,所有資源文件都會在項目結構的根文件夾中結束。我嘗試添加source_group命令,類似於我爲.cpp/.h源文件(位於「源文件」文件夾下)執行的操作,但這似乎不起作用。這裏是我的CMake(使用CMake 3.6.1)的相關部分:

set(ResourceFiles "Package.appxmanifest" "Logo.png" ... etc) 
    source_group("Resource Files" FILES "${ResourceFiles}") 
    add_executable(MyExe ${projectSources} ${ResourceFiles}) 
    set_target_properties(MyExe PROPERTIES RESOURCE "${ResourceFiles}") 

這是可能的,還是我在做一些不正確的事情?

+0

您的意圖是將資源文件添加到資源文件夾中嗎?嘗試使用這個:文件(COPY「[你的源文件/文件夾]」DESTINATION「[你的目標文件夾]」) – Jackie

+1

不,我想你已經誤解了這個問題。我已經更新它非常清楚,它是該項目的結構,而不是我正試圖修復的磁盤上的位置。 – MuertoExcobito

+0

我已經更新了我的答案。 – Jackie

回答

-1

我認爲你做的一切都是正確的。

然而,有一個在你的代碼的一個小問題,而不是

source_group("Resource Files" FILES "${RESOURCE_FILES}") 

應該

source_group("Resource Files" FILES ${RESOURCE_FILES}) 

通知的「」你身邊RESOURCE_FILES,使得它無法正常工作。

如果您的意圖是將資源文件放到某個資源文件夾中?

您可以嘗試使用下面的命令,

file(COPY "[your source file/folder]" DESTINATION "[your destination folder]" 
file(GLOB asset_files "[your destination folder]") 
source_group("assets" FILES ${asset_files}) 

讓我知道它是否適合你。

+0

您提出的更改不會解決問題。 CMake將字符串解釋爲列表,只要它們是分號分隔的,所以將它作爲列表或字符串傳遞沒有區別。 – MuertoExcobito

+0

@MuertoExcobito,我指的是這個文件https://github.com/wpbest/cmake-win-store-app/blob/master/CMakeLists.txt,第99行,並且我看到使用分號或不使用會產生影響。 – Jackie

+0

爲了給你帶來懷疑的好處,我試了一下,正如預測的那樣沒有任何區別。 – MuertoExcobito