[解決済み] CMakeでポータブルパラレルビルドを設定するには?
2022-02-26 06:38:48
質問
どのビルドツールを使っても、並行してビルドできるようになりませんか?
Unixでは
make -jN
ここでNはスレッド数、Windowsでは
CXX_FLAG "/MP"
が、Visual Studioで並列ビルドに使われる...(?) どうしたら、このようなバージョンになるのでしょうか?
CMAKE_MAKE_PROGRAM
はCMakeを実行したときに常に拡張されないのですか?
一般的な解決策を教えてください。
こんなことを思いつきました。
# Add some multithreaded build support
MARK_AS_ADVANCED(MULTITHREADED_BUILD)
set(MULTITHREADED_BUILD 12 CACHE STRING "How many threads are used to build the project")
if(MULTITHREADED_BUILD)
if(${CMAKE_GENERATOR} MATCHES "Unix Makefiles")
message(STATUS ${CMAKE_BUILD_TOOL})
set(CMAKE_MAKE_PROGRAM "${CMAKE_MAKE_PROGRAM} -j${MULTITHREADED_BUILD}")
message(STATUS "Added arguments to CMAKE_BUILD_TOOL: ${CMAKE_MAKE_PROGRAM}")
elseif(MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
message(STATUS "Added parallel build arguments to CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}")
endif()
endif()
解決方法は?
CMake 3.12では可能です。からの リリースノート :
は
cmake(1)
プロジェクトをビルドする (cmake --build
を得た。--parallel [<jobs>]
と-j [<jobs>]
オプションを使用して、並列ビルドレベルを指定します。これらは、ネイティブビルドツールの対応するオプションに対応します。
dkg が言っていたように
という環境変数を設定することもできます。
CMAKE_BUILD_PARALLEL_LEVEL
.
CMake のドキュメントへのリンクです。
関連
-
[解決済み] プロジェクトでCMAKE_CXX_FLAGSを変更する
-
[解決済み] CMakeでポータブルパラレルビルドを設定するには?
-
[解決済み] CMAKE_SOURCE_DIRはどこですか?
-
[解決済み] CMakeのオプション()をコマンドラインで設定する方法
-
[解決済み] cmake --verbose=1` は冗長なcmake出力をしますが、`cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON` はそうならないのはなぜですか?
-
[解決済み] CMakeにおけるデバッグとリリースの比較
-
[解決済み] CMakeの出力をクリアするための'cmake clean'コマンドを探しています。
-
[解決済み] configure --prefix=DIR && make all install ' と同等のCMakeは何ですか?
-
[解決済み】CMakeでC++ 11を有効にするには?
-
[解決済み】CMake:スクリプト内のアクセス可能なすべての変数を出力する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】CMakeでソースディレクトリからバイナリディレクトリにファイルをコピーする
-
[解決済み] CMake の add_definitions が動作しないようです。
-
[解決済み] CMakeでポータブルパラレルビルドを設定するには?
-
[解決済み] CMAKE_SOURCE_DIRはどこですか?
-
[解決済み] cmakeのincludeコマンドにおいて、ファイルとモジュールの違いは何ですか?
-
[解決済み] CMakeのオプション()をコマンドラインで設定する方法
-
[解決済み] cmake --verbose=1` は冗長なcmake出力をしますが、`cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON` はそうならないのはなぜですか?
-
[解決済み] .cmakeファイルの目的は何ですか?
-
[解決済み】CMakeをGNU Makeと一緒に使う:正確なコマンドを見るにはどうすればいい?
-
[解決済み】CMake:スクリプト内のアクセス可能なすべての変数を出力する