私は私のCMakeLists.txtファイルに以下の行を持っています。私は、Windows 7上でCMakeの3.5.2を実行し、GUIで確認し、「デフォルトを使用ネイティブ・コンパイラ」と発電機としてのVisual Studio 12の2013を使用しています。CMake execute_processコマンドはどのように実行されますか?
find_path(FORTRAN_DIR NAMES cdll.cpp fdll.f90 Makefile PATHS ../source)
execute_process(COMMAND make
WORKING_DIRECTORY ${FORTRAN_DIR})
これはうまく動作します。
しかし、正確にどのようにそれが実行されています?それはWindows上です!
は私が前にWindows上でMSYS2(MinGWの)を経由してMakefileをコンパイルしたが、それはCMakeのを使用しているものだと、私はそれはそれを行うために知っているかどうかはわかりません。
編集:execute_process(COMMAND uname -a)
をCMakeLists.txtファイルに入れ、MSYS_NT-6.1 MYCOMPUTERNAMEHERE 2.5.2(0.297/5/3) 2016-07-15 08:31 x86_64 Msys
を得ました。だから私はそれがMSYSを介して実行されている答えを推測する...しかし、CMakeはこれを行う方法を知っていますか?
The documentationは言う:。
は「CMakeの直接のすべての引数は子プロセスにVERBATIM渡され、オペレーティング・システムAPIを使用して子プロセスを実行>ノーマルとして扱われるように中間シェルは、そのシェルの演算子を使用されていません。引数。
しかし、私は特に、私は次の行を使用している場合、私は出力として/usr/bin/make
を得ることを考慮すると、どのようなことを意味理解していない:何が起こっている
execute_process(COMMAND which make)
、および/またはどのように私は把握することができますどんな環境/シェル/これらのコマンドが実行されているのですか?
あなたはMinGWのまたは類似の下でcmakeの実行のように見えます。それは私が(実際にMSYS2、と)以前にコンパイルするには、このの断片を得ている方法なので、理にかなっているが、どのようにCMakeのは、それを使用するために知っている – Tsyvarev
? –
おそらく、MSKE2の下でcmakeを実行するか、それをその環境の下にインストールします。 – Tsyvarev