2017-02-08 7 views
13

私は、使用されるコンパイラを記述するC++ヘッダファイルを生成する必要があります。Visual Studioは構成ファイルを生成できますか?

は伝統的に、私たちはCMakeのコマンドを使用:

configure(${PROJECT_SOURCE_DIR}/configure.h.in ${PROJECT_BINARY_DIR}/configure.h) 

cmakeのビルドシステムでその変数の値を持つ(cxx_compiler_nameの@ @たとえば)「@」に挟まれたすべての文字列に置き換えられています。

私たちはCMakeと対峙する必要があるので、Visual Studioには同等のものがあります。ヘッダーファイルにVisual Studioマクロの値の一部を入力したいと思います。

+2

このコード生成目的で同じソリューションにC#projetを追加するには、configure.h.tt( "T4 template"、これに.hや.cppのようなファイル拡張子を出力できます)を追加しますプロジェクトを作成し、他のC#コードを使用せずに、C#プロジェクトがC#1に依存するようにソリューションを構成してください。 vcxprojにmsbuildタスクを追加して、生成されたファイルをC++にコピーするか、またはC++プロジェクトに直接組み込むことができます。 T4の詳細はこちら:http://www.hanselman.com/blog/T4TextTemplateTransformationToolkitCodeGenerationBestKeptVisualStudioSecret.aspx –

答えて

2

configure.h.inファイルをプロジェクトに追加し、perlまたはsedを実行し、必要なものを置き換えるカスタムビルドを設定することができます。 configure.hを出力ファイルのプロパティに追加することを忘れないでください。Visual Studioは、configure.hを使用する他のソースの前に、依存関係を見つけてconfigure.h.inをビルドすることができます。

+0

Cmakeを使用すると、コンパイラの名前とバージョンを直接取得できます。 sedは機能しますが、それは私が持っているすべての置換えのための長いコマンドの1つになります。 Perlも動作しますが、私は別のツールを持ってくるつもりならば、CMakeを使ってスクリプトを作成します。 – KlingonJoe

+0

@ KlingonJoeそのMSBuildをhttp://stackoverflow.com/a/7888659/70930で試してみることはできますが、もっと簡単なことはわかりません。 – Paul

関連する問題