2016-09-14 53 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