2016-09-14 9 views
1

CMakeを使用してUWPアプリケーションを構築するプロジェクトを正常にセットアップしました。しかし、リソースを扱うときは、add_executableコマンドのソースとして追加する必要があり、ターゲットプロパティにRESOURCEと設定する必要があるようです。CMake + 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

あなたのリソースファイルをリソースフォルダに追加するつもりですか?これを使ってみてください:ファイル(コピー "[あなたのソースファイル/フォルダ]" DESTINATION "[あなたの行き先フォルダ]") – Jackie

+1

いいえ、私はあなたがその質問を誤解したと思います。私はそれがプロジェクトの構造であり、私が修正しようとしているディスク上の場所ではないことを明確にするように更新しました。 – MuertoExcobito

+0

私は自分の答えを更新しました。 – Jackie

答えて

-1

あなたはすべてのことを正しく行っていると思います。

しかし、あなたのコード内の1つの小さな問題は、それが動作するように失敗します

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

お知らせあなたはRESOURCE_FILESの周りに持っている「」する必要があります代わりに

source_group("Resource Files" 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