私たちはVisual Studio 2008用のソリューションファイルを生成するためにCMakeを使用しています。ライブラリと実行可能ファイルをビルドする通常のソースプロジェクトに加えて、設定ファイルだけを含むプロジェクトを用意したいと思います。これらのファイルは、実行時にプロジェクトの動作を設定するために使用されます。プロジェクトをビルドする必要はありませんが、それらをソリューションに含めることで、それらのファイルを簡単に編集できます。私はそうのようなadd_custom_target
を使ってこれを実現することができました:CMakeはどのように構成ファイルのみを含むVisual Studioプロジェクトを作成する必要がありますか?
file(GLOB ini_files ${PROJECT_SOURCE_DIR}/../config/ini/*)
source_group(ini FILES ${ini_files})
file(GLOB xml_files ${PROJECT_SOURCE_DIR}/../config/xml/*)
source_group(xml FILES ${xml_files})
add_custom_target(config SOURCES ${ini_files} ${xml_files})
これは私のサブフォルダとして設定ファイルが含まれ、「設定」プロジェクトを提供します。しかし、存在しないファイルには "config"というリンクもあります。私はこれがこのルールで作成されたターゲットへのリンクであると考えています。ビルドするものはないので、これは死んだリンクのままです。今私の質問は次のとおりです:
- 私は欲しいものを達成する正しい方法ですか? そうでない場合、よりよい解決策は何でしょうか?
- 正しい場合は、どうすればターゲットの名前へのリンクを取り除くことができますか?また、 "CMake Rules"フォルダを削除して、configプロジェクトを可能な限りクリーンにしたいと思います。
この洞察的な答えをありがとう。既存のプロジェクトにファイルを追加する私は自分自身に留意しました。しかし、問題は、プロジェクトが実際にプロジェクトの外部のフレームワークによって使用されるモジュール(動的ライブラリ、DLLなど)を実際に構築することです。ですから、おそらくconfigファイルを所属するモジュールに置くでしょう。いくつかは複数で使用されます。モジュールを使用するようにフレームワークを構成するファイルもあり、したがって、どのモジュールでも読み取られません。私はUnix Makefilesにとってこれは役に立たないと知っていますが、このプロジェクトの唯一の目的はconfigファイルをVSに追加することです。 – ahans
@ahans複数のプロジェクトにもファイルを含めることはできません。ファイルが重複しないため、オーバーヘッドは最小限に抑えられます。 – SirDarius
興味深い点。これは、フレームワークを構成するファイルの問題を解決しません。私はそれを心に留めておくだろう、ある時点で便利になるかもしれない。今のところ私は 'add_library'を使ってこれを解決しました。これはまさに私が望んでいたことです。 – ahans