2016-06-29 2 views
1

私は、デバッグオプションとリリースオプション(MSVCとGCCでは異なる)のための特定の設定をしています。 cmake ..でデフォルトプロジェクトを生成するとします。 CMakeは常にすべての可能なプロジェクト構成(デバッグとリリース)の構成を生成するのですか、常に1つの構成オプションのみを取得しますか?CMakeは常にすべてのプロジェクト構成の構成を生成しますか?

+0

私はそれがあなたの発電に依存だと思います。それは確かにVisual Studioのすべての設定を行います。私は他の発電機についてはあまりよく分かりません。 – cplusplusrat

答えて

3

@cplusplusratはコメントしているように、これは/環境構築発電に依存します:はい、MSVCまたはXCodeのようなマルチコンフィギュレーション環境では

  • を。
  • GCCのような単一構成環境の場合、

とシングル構成の環境のデフォルト(hereまたはhereを参照)DebugReleaseでもありません。

したがって、私はいつもシングルコンフィグレーション環境のためにデフォルトで1つを定義しています(CMAKE_BUILD_TYPE)。あなたもこれを行うことができます。 CMakeのを呼び出してビルドスクリプトで:

mingw_build.cmd

@ECHO off 
SETLOCAL ENABLEDELAYEDEXPANSION 
:: usage: 
::   mingw_build.cmd <target> <config> 
::     <target> - target to be built (default: all) 
::     <config> - configuration to be used for build (default: Debug) 

if NOT "%1" == "" (set CMAKE_TARGET=%1) else (set CMAKE_TARGET=all) 
if NOT "%2" == "" (set CMAKE_BUILD_TYPE=%2) else (set CMAKE_BUILD_TYPE=Debug) 
SET CMAKE_BINARY_DIR=%CMAKE_BUILD_TYPE% 

IF NOT EXIST "%CMAKE_BINARY_DIR%\Makefile" (
    cmake -H"." -B"%CMAKE_BINARY_DIR%" -DCMAKE_BUILD_TYPE=%CMAKE_BUILD_TYPE% -G"MinGW Makefiles" 
) 
cmake --build %CMAKE_BINARY_DIR% --target %CMAKE_TARGET% 

ENDLOCAL 

vs_x64_build.cmd

@ECHO off 
SETLOCAL ENABLEDELAYEDEXPANSION 
:: usage: 
::   vs_x64_build.cmd <target> <config> 
::     <target> - target to be built (default: ALL_BUILD) 
::     <config> - configuration to be used for build (default: Debug) 

if NOT "%1" == "" (SET CMAKE_TARGET=%1) else (SET CMAKE_TARGET=ALL_BUILD) 
if NOT "%2" == "" (set CMAKE_BUILD_TYPE=%2) else (set CMAKE_BUILD_TYPE=Debug) 
SET CMAKE_BINARY_DIR=x64 

IF NOT EXIST "%CMAKE_BINARY_DIR%\*.sln" (
    cmake -H"." -B"%CMAKE_BINARY_DIR%" -G"Visual Studio 14 2015 Win64" 
) 
cmake --build "%CMAKE_BINARY_DIR%" --target "%CMAKE_TARGET%" --config "%CMAKE_BUILD_TYPE%" 

ENDLOCAL 
関連する問題