ビルドタイプ(デバッグ/リリース)ごとに別々のフォルダを作成し、それぞれにcmakeを実行し、デバッグ/デバッグ/リリースの両方の設定を同時にサポートするcmakeを使用して、またmake(make)を実行して中間製品と最終製品(dll、exeなど)用に別々のフォルダを作成する単一のmakefileを作成することは可能ですか?Cmakeはデバッグとリリースの両方をサポートする単一のメイクファイルを生成することができます
10
A
答えて
8
私が知る限り、これは1組のビルドスクリプトを使用して達成することはできません。次に行う
build/
build/debug
build/release
:
$ cd build
$
$ cd build/debug
$ cmake -DCMAKE_BUILD_TYPE=Debug ../..
$ make
$
$ cd ../release
$ cmake -DCMAKE_BUILD_TYPE=Release ../..
$ make
必要に応じて、次のようなbuild
ディレクトリ内の別のビルドスクリプトを追加することができますしかし、あなたは何ができるかは、あなたの作業領域の二つのサブディレクトリがあります。
#!/bin/sh
cd debug && make && cd ..
cd release && make && cd ..
1
これはADD_CUSTOM_TARGET
コマンドを使用して達成できます。たとえば、あなたは両方のデバッグを追加し、メイクファイル内のターゲットを解放し、あなたのCMakeLists.txtファイルに以下を追加したい場合:
ADD_CUSTOM_TARGET(debug
COMMAND ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=Debug ${CMAKE_SOURCE_DIR}
COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target all
COMMENT "Creating the executable in the debug mode.")
ADD_CUSTOM_TARGET(release
COMMAND ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=Release ${CMAKE_SOURCE_DIR}
COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target all
COMMENT "Creating the executable in the release mode.")
次に、cmakeので構成した後、あなたはデバッグターゲットを作るためにmake debug
を実行することができますmake release
を実行して、同じディレクトリにリリース対象を作成します。
ビジュアルスタジオslnファイルはどうですか?また、デバッグのみを生成するか、設定のみをリリースするのですか?同じ.slnファイルで両方をサポートしていますか? – user243655
@ user243655: 'Debug'、' Release'、 'MinSizeRel'、' RelWithDebInfo'という複数の設定を生成しているようです。 –
情報に感謝します。 – user243655