プロジェクトの長いコーディング セッションを終了するために、私の CPP プロジェクトが複数の OS でコンパイル可能かどうかをテストしたいと思いました。
私は常にWin10で作業しています。正常にコンパイルされます。
ラズベリーパイを使ってみました。正常にコンパイルされます。プロジェクトの別のコピーを Win10 クライアントに再ダウンロードし、cmake-gui を実行して、プロジェクトを開きます。ソリューション エクスプローラーのフォルダー構造がすべてなくなりました。
それで私は掘り下げ始めました、そしてどうやらこの構造はコマンドで CMakeLists.txt に保持されているようsource_group
です。そのため、cmake リストに source_groupings を追加し始めましたが、何らかの理由でグループ化が行われません。
例:
source_group("game\\entitysystem" FILES ${entitysystem_SRC}) // Existing grouping
source_group("game\\entitysystem\\components" FILES ${components_SRC}) // My new grouping
私のグロブはこれです:
file(GLOB components_SRC
"game/components/*.h"
"game/components/*.cpp"
)
file(GLOB entitysystem_SRC
"game/entitysystem/*.h"
"game/entitysystem/*.cpp"
)
新しいプロジェクトクローンは正常にコンパイルされるため、GLOB は正しいと思います。Visual Studio のソリューション エクスプローラーの新しい構造のすべての部分が失われているように見えるだけです。はい、Cmake のキャッシュをクリアし、プロジェクトを再生成しました。それを変更しません。
編集:
コンポーネントをエンティティ システムの下に配置しないように、source_group で間違いを犯しましたが、それでも、Visual Studio で作成されたフィルターがないのはなぜですか?