web-dev-qa-db-ja.com

プロジェクトでcmakeするために両方のvcxprojをサポートする方法は?

クロスプラットフォームのC++プロジェクトを開発しています。元のアイデアは、msvc2010で動作し、後でCMakeとHudsonの助けを借りて他のシステム用にコンパイルすることです。スタジオの設定を変更した後、CMakeファイルを手動で変更するのは便利ではないようです。

それで、最も簡単な方法は何ですか:vcxprojとvcxproj.filtersのパーサーを書くか、別の良い解決策がありますか?

46
tikkerey

移植などのために、この種の変換を行うと、時々役立つ場合があります。旅行中に、次の項目を順不同で見つけました。

VS to CMake/ [〜#〜] gyp [〜#〜]

  • vcproj2cmake
  • vcxproj2cmake (タイプミスではありません!)
  • gypify.py は.sln/solution-readingです Gyp ファイルジェネレーターです。 GypはCmakeの代替であり、現在Chromiumプロジェクトで使用されています(GoogleのChromeブラウザのベース)。GypはMakefile、Visual Studio、またはXCodeビルドファイルを出力します(Gypの '-f [make | scons | msvc | xcode] 'switch)。Pythonスクリプトは非常に有望です。すぐに修正して、gccの' -I 'includeパラメーターのヘッダーを含むフォルダーを正しく指定したいと考えています。

その他のCmake/Make関連の変換ツール:

  • Make It So Visual StudioソリューションをLinux gcc makefileに変換します
  • sln2mak C#プロジェクト
  • sln2mak Perlスクリプト
  • GUCEF Project Cmake用のProjectGeneratorツールが含まれています
  • gencmake (Ruby)– KDEプロジェクト
  • ' pbtomake 'は、XCode xcodeproj/pbprojファイルをMakefileに変換できることを示します(古い可能性があります)

乾杯

リッチ

49
Big Rich

あなたはそれを逆戻りします-すべてのCMakeLists.txtを設定し、thenからMSVCプロジェクトを生成します。

難しいことや時間がかかることはありません。基本的には、調べるディレクトリを指定し、インクルードパスを宣言し、グロブ式で各ライブラリの* .cppsを収集し、依存関係を宣言するだけです。

他に何かを設定する必要がある場合、あなたのプロジェクトはおそらくあまり移植性がありません:-/

13
spraff