Windows で非インタラクティブなビルドに CMake を使用する方法?

StackOverflow https://stackoverflow.com/questions/1459482

  •  12-09-2019
  •  | 
  •  

質問

Windows 上で CMake を使用して自動ビルドを設定したいと考えています。Visual Studio 2005 を使用しています。

アップデート:私が使用しているものは次のとおりです。

devenv.exe を PATH に設定します。次に、ビルドするには以下のコマンドを実行します。Hudsonを使用してビルドしています。

devenv Crackpot.sln /build デバッグ /project ALL_BUILD

とおり http://blogs.msdn.com/aaronhallberg/archive/2007/06/29/building-from-the-command-line-with-devenv.aspx 「denenv.exe」ではなく「devenv」を使用することをお勧めします。後者は GUI を生成してビルドをハングさせる可能性があるためです。

役に立ちましたか?

解決

質問が理解できたかどうかわかりません。他のビルド システムとまったく同じように使用できます。「Visual Studio 8 2005」と指定するだけで (少し奇妙ですが、パラメーターなしで cmake を呼び出すと、サポートされているすべてのシステムのリストを取得できます)、次のいずれかのコマンド ラインでビルドできるソリューションが得られます。 devenv.exe /build または MSBuild を使用します。

唯一少し複雑なのは、ビルド サーバー上など、Visual Studio がインストールされていないときにソリューションを生成する場合です。もちろん、単にインストールすることもできますが、必要のないものはインストールしないことをお勧めします。その場合は、MSBuild をビルド コマンド ラインとして受け入れるように偽装する必要があります (コマンド ラインでビルド ツールとしてバッチ ファイルを指定することで、MSBuild が受け入れられるように引数を並べ替えるだけです)。 Visual Studio がどのように欠けているかについて (CMake の人々はコマンドラインの世界の出身なので、これは非常におかしなことです...)

ああ、実際にコマンド ラインで既存の Visual Studio ソリューションを構築したいだけの場合は、CMake は必要ありません。MSBuild を呼び出すか、 devenv /build.

他のヒント

これを行うために私が見つけた最も簡単な方法は次のとおりです。
% cmake --build "buildDir"
追加することもできます --target そして --config 'Debug|Release|...'

コマンド ラインから CMake を実行できます。走ってもいいよ。

cmake.exe -G"Visual Studio 8 2005" -H<source_dir> -B<build_dir>

以下は、元のコマンド ライン使用法の出力の抜粋です。ここでは、-H および -B オプションが文書化されていないことに注意してください。ただし、これらを使用してソースを明示的に定義し、コマンド ラインでディレクトリを構築することはできます。

C:\Program Files (x86)\CMake 2.6\bin>cmake
  cmake version 2.6-patch 4
  Usage

  cmake [options] <path-to-source>
  cmake [options] <path-to-existing-build>

  Options
  -C <initial-cache>          = Pre-load a script to populate the cache.
  -D <var>:<type>=<value>     = Create a cmake cache entry.
  -U <globbing_expr>          = Remove matching entries from CMake cache.
  -G <generator-name>         = Specify a makefile generator.
  -Wno-dev                    = Suppress developer warnings.
  -Wdev                       = Enable developer warnings.
  -E                          = CMake command mode.
  -i                          = Run in wizard mode.
  -L[A][H]                    = List non-advanced cached variables.
  -N                          = View mode only.
  -P <file>                   = Process script mode.

利用可能なジェネレーターは次のとおりです。

Generators

The following generators are available on this platform:
  Borland Makefiles           = Generates Borland makefiles.
  MSYS Makefiles              = Generates MSYS makefiles.
  MinGW Makefiles             = Generates a make file for use with
                                mingw32-make.
  NMake Makefiles             = Generates NMake makefiles.
  Unix Makefiles              = Generates standard UNIX makefiles.
  Visual Studio 6             = Generates Visual Studio 6 project files.
  Visual Studio 7             = Generates Visual Studio .NET 2002 project
                                files.
  Visual Studio 7 .NET 2003   = Generates Visual Studio .NET 2003 project
                                files.
  Visual Studio 8 2005        = Generates Visual Studio .NET 2005 project
                                files.
  Visual Studio 8 2005 Win64  = Generates Visual Studio .NET 2005 Win64
                                project files.
  Visual Studio 9 2008        = Generates Visual Studio 9 2008 project files.
  Visual Studio 9 2008 Win64  = Generates Visual Studio 9 2008 Win64 project
                                files.
  Watcom WMake                = Generates Watcom WMake makefiles.
  CodeBlocks - MinGW Makefiles= Generates CodeBlocks project files.
  CodeBlocks - Unix Makefiles = Generates CodeBlocks project files.
  Eclipse CDT4 - MinGW Makefiles
                              = Generates Eclipse CDT 4.0 project files.
  Eclipse CDT4 - NMake Makefiles
                              = Generates Eclipse CDT 4.0 project files.
  Eclipse CDT4 - Unix Makefiles
                              = Generates Eclipse CDT 4.0 project files.  

これが私が作成したbatファイルです。削除して新しいビルド フォルダーを作成するたびに、指定したビルド フォルダーにソリューションが自動的に作成されます。

RMDIR C:\Users\abc /s /q

if EXIST C:\Users\abc GOTO FALIURE

MKDIR C:\Users\abc\build
CD C:\Users\abc\build
cmake -G "Visual Studio 12" "C:\Users\abc\src"
EXIT

:FALIURE
CLS
echo "Failed to delete BUILD directory, Close all related files and programs and try again."
pause
EXIT
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top