Asakusa on M3BPのWindowsでのコンパイル方法のメモ。
|
|
Asakusa on M3BPと言っても、Asakusaアプリケーションの開発自体はWindows上で実施できる。
ただ、実行環境はLinuxなので、Windows上でLinux向けのコンパイルを行うにはクロスコンパイルの環境を整える必要がある。
CygwinのLinux用のgcc/g++を使うと、Linux向け バイナリーを生成することが出来る。
WindowsでのM3BP用コンパイル環境には以下のものが必要になる。
(必要なバージョンは、Asakusa on M3BPユーザーガイドの開発環境の構築を参照)
Cygwinのコンソール(bash)上で、開発しているAsakusaアプリケーションのgradlewを使ってコンパイルできる。
$ cd Asakusaアプリケーションの場所 $ ./gradlew m3bpCompileBatchapps --compiler-properties "m3bp.native.cmake=cmake.exe,m3bp.native.make=make.exe,m3bp.native.cmake.CMAKE_SYSTEM_NAME=Linux,m3bp.native.cmake.CMAKE_GENERATOR=Unix Makefiles,m3bp.native.cmake.CMAKE_C_COMPILER=x86_64-pc-linux-gnu-gcc.exe,m3bp.native.cmake.CMAKE_CXX_COMPILER=x86_64-pc-linux-gnu-g++.exe"
--compiler-propertiesでM3BPコンパイル用のプロパティーを指定する。カンマ区切りで複数のm3bp.nativeを指定できるが、カンマの前後に空白を入れてはいけない。
指定しているオプションは以下の通り。
プロパティー名 | 値 | 説明 | 備考 |
---|---|---|---|
m3bp.native.cmake |
cmake.exe |
CMakeのコマンドファイル名。 | |
m3bp.native.make |
make.exe |
makeのコマンドファイル名。 | |
m3bp.native.cmake.CMAKE_SYSTEM_NAME |
Linux |
コンパイルターゲットのOS。 | |
m3bp.native.cmake.CMAKE_GENERATOR |
Unix Makefiles |
CMakeが生成するMakefileの形式。 | 省略するとNMake形式のMakefileが生成され、GNU Makeではエラーになる。 cmakeコマンドを直接使う場合の「 -G "Linux Makefiles" 」オプションと同等。 |
m3bp.native.cmake.CMAKE_C_COMPILER |
x86_64-pc-linux-gnu-gcc.exe |
Cコンパイラーのコマンドファイル名。 | AsakusaFW 0.9.1では不要になった。[2017-04-30] |
m3bp.native.cmake.CMAKE_CXX_COMPILER |
x86_64-pc-linux-gnu-g++.exe |
C++コンパイラーのコマンドファイル名。 |
コマンドファイル名はフルパスでなくてもよい。PATHが通っていれば具体的な場所は探してくれる為。
(フルパスで指定してもよいが、gcc/g++が動作するのに必要なライブラリー(DLL)はPATHから探されるので、いずれにしてもPATHが通っている必要はある)
なお、「m3bp.native.cmake.HOGE=zzz
」は、コンパイル時呼び出されるcmakeコマンドに「-DHOGE=zzz
」として指定される。
Asakusa on M3BPリファレンスの『コンパイラプロパティ』を参照。
ちなみに、コンパイル時の各コマンドの呼び出しは以下のようになっていると思われる。
Gradle→CMake(Makefile生成)→make→gcc/g++
CMakeにはツールチェインファイルという仕組みがある。
ツールチェインファイル(ファイル名は自由)にCMake用の設定を記述しておき、読み込ませることが出来る。
$ cd Asakusaアプリケーションの場所 $ cat toolchain.cmake SET(CMAKE_SYSTEM_NAME Linux) SET(CMAKE_C_COMPILER x86_64-pc-linux-gnu-gcc.exe) SET(CMAKE_CXX_COMPILER x86_64-pc-linux-gnu-g++.exe) $ ./gradlew m3bpCompileBatchapps --compiler-properties "m3bp.native.cmake=cmake.exe,m3bp.native.make=make.exe,m3bp.native.cmake.CMAKE_GENERATOR=Unix Makefiles,m3bp.native.cmake.CMAKE_TOOLCHAIN_FILE=$(cygpath -ma toolchain.cmake)"
※AsakusaFW 0.9.1では、CMAKE_C_COMPILER(gcc)の指定は不要。[2017-04-30]
ツールチェインファイルをgradlewの引数で指定する。
ただし、CMAKE_GENERATORはコマンドラインの引数で指定しなければならない。
ツールチェインファイル内で指定しても無視される。
CMakeは、実行の度にコンパイラーが正しく動作するかのチェックを行う(単純なサンプルソースをコンパイルする)。
デバッグモードにしてコンパイルしてみると、以下のようなログが出ている。
23:20:36 DEBUG cmake.exe: -- The C compiler identification is GNU 4.8.2
23:20:37 DEBUG cmake.exe: -- The CXX compiler identification is GNU 4.8.2
23:20:37 DEBUG cmake.exe: -- Check for working C compiler: D:/cygwin64/bin/x86_64-pc-linux-gnu-gcc.exe
23:20:40 DEBUG cmake.exe: -- Check for working C compiler: D:/cygwin64/bin/x86_64-pc-linux-gnu-gcc.exe -- works
23:20:40 DEBUG cmake.exe: -- Detecting C compiler ABI info
23:20:42 DEBUG cmake.exe: -- Detecting C compiler ABI info - done
23:20:43 DEBUG cmake.exe: -- Detecting C compile features
23:20:50 DEBUG cmake.exe: -- Detecting C compile features - done
23:20:50 DEBUG cmake.exe: -- Check for working CXX compiler: D:/cygwin64/bin/x86_64-pc-linux-gnu-g++.exe
23:20:52 DEBUG cmake.exe: -- Check for working CXX compiler: D:/cygwin64/bin/x86_64-pc-linux-gnu-g++.exe -- works
23:20:52 DEBUG cmake.exe: -- Detecting CXX compiler ABI info
23:20:54 DEBUG cmake.exe: -- Detecting CXX compiler ABI info - done
23:20:54 DEBUG cmake.exe: -- Detecting CXX compile features
23:21:02 DEBUG cmake.exe: -- Detecting CXX compile features - done
23:21:02 DEBUG cmake.exe: -- Configuring done
23:21:02 DEBUG cmake.exe: -- Generating done
コンパイル環境(マシンスペック)にもよるが、1バッチ当たり5〜25秒くらいかかる。
ツールチェインファイルにフォースコンパイラーを記述すると、この検証作業が無くなるので、コンパイル時間が少し短くなる。
$ cd Asakusaアプリケーションの場所 $ cat force.cmake SET(CMAKE_SYSTEM_NAME Linux) INCLUDE(CMakeForceCompiler) CMAKE_FORCE_C_COMPILER( x86_64-pc-linux-gnu-gcc.exe GNU) CMAKE_FORCE_CXX_COMPILER(x86_64-pc-linux-gnu-g++.exe GNU) SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) $ ./gradlew m3bpCompileBatchapps --compiler-properties "m3bp.native.cmake=cmake.exe,m3bp.native.make=make.exe,m3bp.native.cmake.CMAKE_GENERATOR=Unix Makefiles,m3bp.native.cmake.CMAKE_TOOLCHAIN_FILE=$(cygpath -ma force.cmake)"
ツールチェインファイルを使わずにフォースコンパイラーを指定することも出来る。
が、ドキュメントに記載されていないプロパティーを使っているので、正式な方法ではない(将来変わる可能性あり)。
$ cd Asakusaアプリケーションの場所 $ ./gradlew m3bpCompileBatchapps --compiler-properties "m3bp.native.cmake=cmake.exe,m3bp.native.make=make.exe,m3bp.native.cmake.CMAKE_SYSTEM_NAME=Linux,m3bp.native.cmake.CMAKE_GENERATOR=Unix Makefiles,m3bp.native.cmake.CMAKE_C_COMPILER=x86_64-pc-linux-gnu-gcc.exe,m3bp.native.cmake.CMAKE_CXX_COMPILER=x86_64-pc-linux-gnu-g++.exe,m3bp.native.cmake.CMAKE_C_COMPILER_FORCED=TRUE,m3bp.native.cmake.CMAKE_CXX_COMPILER_FORCED=TRUE"
(Cygwinコンソール(bash)からではなく)コマンドプロンプトからgradlewを実行する場合は、環境変数PATHにmakeやコンパイラーへのパスを指定しておく必要がある。
> cd /d Asakusaアプリケーションの場所 > path %PATH%;D:/cygwin64/bin > gradlew m3bpCompileBatchapps --compiler-properties "m3bp.native.cmake=cmake.exe,m3bp.native.make=make.exe,m3bp.native.cmake.CMAKE_SYSTEM_NAME=Linux,m3bp.native.cmake.CMAKE_GENERATOR=Unix Makefiles,m3bp.native.cmake.CMAKE_C_COMPILER=x86_64-pc-linux-gnu-gcc.exe,m3bp.native.cmake.CMAKE_CXX_COMPILER=x86_64-pc-linux-gnu-g++.exe"
AsakusaFW 0.9.1ではCMAKE_C_COMPILERの指定は不要 [2017-04-30]
> gradlew m3bpCompileBatchapps --compiler-properties "m3bp.native.cmake=cmake.exe,m3bp.native.make=make.exe,m3bp.native.cmake.CMAKE_SYSTEM_NAME=Linux,m3bp.native.cmake.CMAKE_GENERATOR=Unix Makefiles,m3bp.native.cmake.CMAKE_CXX_COMPILER=x86_64-pc-linux-gnu-g++.exe"
Windowsシステムの環境変数PATHに指定しておけば、コマンドプロンプト上でパスを指定し直す必要は無い。
※環境変数PATHを書き換えずにコマンドを全てフルパスで記述すれば大丈夫そうな気もするが、コンパイル中に使用するライブラリー(DLL)が見つけられず、エラーになってしまう。
Windows上でのM3BP用コンパイルでよく見かけるエラー。
CMakeが無いというエラー。
$ ./gradlew m3bpCompileBatchapps
〜
:m3bpCompileBatchapps
00:06:56 INFO compiling batch class: com.example.batch.ExampleBatch
00:06:57 ERROR failed to detect command: cmake
コンパイルプロパティーでCMakeのファイル名を指定する必要がある。
また、cmake.exeにパスが通っている必要がある。
$ ./gradlew m3bpCompileBatchapps --compiler-properties m3bp.native.cmake=cmake.exe
makeが無いというエラー。
$ ./gradlew m3bpCompileBatchapps --compiler-properties m3bp.native.cmake=cmake.exe
〜
:m3bpCompileBatchapps
00:10:03 INFO compiling batch class: com.example.batch.ExampleBatch
00:10:04 ERROR failed to detect command: make
コンパイルプロパティーでmakeのファイル名を指定する必要がある。
また、make.exeにパスが通っている必要がある。(Cygwinコンソール(bash)から実行しているなら、パスは通っているはず)
$ ./gradlew m3bpCompileBatchapps --compiler-properties m3bp.native.cmake=cmake.exe,m3bp.native.make=make.exe
CMakeにおいて、コンパイラーが見つからないというエラー。
(cl
という名前のファイルを探しにいって見つからないと言っているようだ)
$ ./gradlew m3bpCompileBatchapps --compiler-properties m3bp.native.cmake=cmake.exe,m3bp.native.make=make.exe 〜 :m3bpCompileBatchapps 00:13:51 INFO compiling batch class: com.example.batch.ExampleBatch 00:13:52 WARN cmake.exe: CMake Error at CMakeLists.txt:2 (project): 00:13:52 WARN cmake.exe: The CMAKE_C_COMPILER: 00:13:52 WARN cmake.exe: 00:13:52 WARN cmake.exe: cl 00:13:52 WARN cmake.exe: 00:13:52 WARN cmake.exe: is not a full path and was not found in the PATH. 00:13:52 WARN cmake.exe: 00:13:52 WARN cmake.exe: To use the NMake generator with Visual C++, cmake must be run from a shell 00:13:52 WARN cmake.exe: that can use the compiler cl from the command line. This environment is 00:13:52 WARN cmake.exe: unable to invoke the cl compiler. To fix this problem, run cmake from the 00:13:52 WARN cmake.exe: Visual Studio Command Prompt (vcvarsall.bat). 00:13:52 WARN cmake.exe: 00:13:52 WARN cmake.exe: Tell CMake where to find the compiler by setting either the environment 00:13:52 WARN cmake.exe: variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to 00:13:52 WARN cmake.exe: the compiler, or to the compiler name if it is in the PATH. 00:13:52 WARN cmake.exe: 00:13:52 WARN cmake.exe: 00:13:52 WARN cmake.exe: CMake Error at CMakeLists.txt:2 (project): 00:13:52 WARN cmake.exe: The CMAKE_CXX_COMPILER: 00:13:52 WARN cmake.exe: 00:13:52 WARN cmake.exe: cl 00:13:52 WARN cmake.exe: 00:13:52 WARN cmake.exe: is not a full path and was not found in the PATH. 00:13:52 WARN cmake.exe: 00:13:52 WARN cmake.exe: To use the NMake generator with Visual C++, cmake must be run from a shell 00:13:52 WARN cmake.exe: that can use the compiler cl from the command line. This environment is 00:13:52 WARN cmake.exe: unable to invoke the cl compiler. To fix this problem, run cmake from the 00:13:52 WARN cmake.exe: Visual Studio Command Prompt (vcvarsall.bat). 00:13:52 WARN cmake.exe: 00:13:52 WARN cmake.exe: Tell CMake where to find the compiler by setting either the environment 00:13:52 WARN cmake.exe: variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path 00:13:52 WARN cmake.exe: to the compiler, or to the compiler name if it is in the PATH. 00:13:52 WARN cmake.exe: 00:13:52 WARN cmake.exe: 00:13:52 ERROR command returns non-zero exit status: C:\Program Files (x86)\CMake\bin\cmake.exe (status=1)
コンパイルプロパティーでコンパイラーのファイル名を指定する必要がある。
また、コンパイラーにパスが通っている必要がある。(Cygwinコンソール(bash)から実行しているなら、パスは通っているはず)
$ ./gradlew m3bpCompileBatchapps --compiler-properties m3bp.native.cmake=cmake.exe,m3bp.native.make=make.exe,m3bp.native.cmake.CMAKE_C_COMPILER=x86_64-pc-linux-gnu-gcc.exe,m3bp.native.cmake.CMAKE_CXX_COMPILER=x86_64-pc-linux-gnu-g++.exe
CMakeにおいて、コンパイラーが使用できないというエラー。
$ ./gradlew m3bpCompileBatchapps --compiler-properties m3bp.native.cmake=cmake.exe,m3bp.native.make=make.exe,m3bp.native.cmake.CMAKE_C_COMPILER=x86_64-pc-linux-gnu-gcc.exe,m3bp.native.cmake.CMAKE_CXX_COMPILER=x86_64-pc-linux-gnu-g++.exe 〜 :m3bpCompileBatchapps 00:18:32 INFO compiling batch class: com.example.batch.ExampleBatch 00:18:35 WARN cmake.exe: CMake Error: Generator: execution of make failed. Make command was: "nmake" "/NOLOGO" "cmTC_f695f\fast" 00:18:35 WARN cmake.exe: CMake Error at C:/Program Files (x86)/CMake/share/cmake-3.5/Modules/CMakeTestCCompiler.cmake:61 (message): 00:18:35 WARN cmake.exe: The C compiler "D:/cygwin64/bin/x86_64-pc-linux-gnu-gcc.exe" is not able to 00:18:35 WARN cmake.exe: compile a simple test program. 00:18:35 WARN cmake.exe: 00:18:35 WARN cmake.exe: It fails with the following output: 00:18:35 WARN cmake.exe: 00:18:35 WARN cmake.exe: Change Dir: D:/cygwin64/tmp/asakusa160230084594616670.tmp/m3bp-ExampleJob-e25a10e1/build/CMakeFiles/CMakeTmp 00:18:35 WARN cmake.exe: 00:18:35 WARN cmake.exe: 00:18:35 WARN cmake.exe: 00:18:35 WARN cmake.exe: Run Build Command:"nmake" "/NOLOGO" "cmTC_f695f\fast" 00:18:35 WARN cmake.exe: 00:18:35 WARN cmake.exe: 00:18:35 WARN cmake.exe: 00:18:35 WARN cmake.exe: Generator: execution of make failed. Make command was: "nmake" "/NOLOGO" 00:18:35 WARN cmake.exe: "cmTC_f695f\fast" 00:18:35 WARN cmake.exe: 00:18:35 WARN cmake.exe: 00:18:35 WARN cmake.exe: 00:18:35 WARN cmake.exe: 00:18:35 WARN cmake.exe: 00:18:35 WARN cmake.exe: CMake will not be able to correctly generate this project. 00:18:35 WARN cmake.exe: Call Stack (most recent call first): 00:18:35 WARN cmake.exe: CMakeLists.txt:2 (project) 00:18:35 WARN cmake.exe: 00:18:35 WARN cmake.exe: 00:18:35 ERROR command returns non-zero exit status: C:\Program Files (x86)\CMake\bin\cmake.exe (status=1)
makeコマンドとしてnmakeを実行しようとしているが、使いたいのはGNU make。
CMakeが生成するMakefileをGNU makeのものにする必要がある。(Windows上で実行しているので、デフォルトではWindowsのnmake用のMakefileを生成している)
$ ./gradlew m3bpCompileBatchapps --compiler-properties m3bp.native.cmake=cmake.exe,m3bp.native.make=make.exe,m3bp.native.cmake.CMAKE_C_COMPILER=x86_64-pc-linux-gnu-gcc.exe,m3bp.native.cmake.CMAKE_CXX_COMPILER=x86_64-pc-linux-gnu-g++.exe,m3bp.native.cmake.CMAKE_GENERATOR=Unix\ Makefiles
なお、「Unix Makefiles」というスペース入りの文字列を指定しないといけないので、全体をダブルクォーテーションで囲むか、\マークでエスケープする必要がある。
AsakusaFW 0.9.1にて、CMAKE_C_COMPILERが使われていないという警告。[2017-04-30]
〜 :m3bpCompileBatchapps 21:09:21 INFO compiling batch class: com.example.batch.SummarizeBatch 21:09:30 WARN cmake.exe: CMake Warning: 21:09:30 WARN cmake.exe: Manually-specified variables were not used by the project: 21:09:30 WARN cmake.exe: 21:09:30 WARN cmake.exe: CMAKE_C_COMPILER 21:09:30 WARN cmake.exe: 21:09:30 WARN cmake.exe:
AsakusaFW 0.9.1ではgccが使われなくなった為、CMAKE_C_COMPILERを指定する必要がなくなった(指定しても使われない)。
単なる警告なので無視しても問題は無いが、気になるならCMAKE_C_COMPILERの指定を外せばよい。
なんかレシピで失敗とかいうエラー。
$ ./gradlew m3bpCompileBatchapps --compiler-properties m3bp.native.cmake=cmake.exe,m3bp.native.make=make.exe,m3bp.native.cmake.CMAKE_C_COMPILER=x86_64-pc-linux-gnu-gcc.exe,m3bp.native.cmake.CMAKE_CXX_COMPILER=x86_64-pc-linux-gnu-g++.exe,m3bp.native.cmake.CMAKE_GENERATOR=Unix\ Makefiles 〜 :m3bpCompileBatchapps 00:32:01 INFO compiling batch class: com.example.batch.ExampleBatch 00:32:06 WARN cmake.exe: CMake Error at C:/Program Files (x86)/CMake/share/cmake-3.5/Modules/CMakeTestCCompiler.cmake:61 (message): 00:32:06 WARN cmake.exe: The C compiler "D:/cygwin64/bin/x86_64-pc-linux-gnu-gcc.exe" is not able to 00:32:06 WARN cmake.exe: compile a simple test program. 00:32:06 WARN cmake.exe: 00:32:06 WARN cmake.exe: It fails with the following output: 00:32:06 WARN cmake.exe: 00:32:06 WARN cmake.exe: Change Dir: D:/cygwin64/tmp/asakusa5298078949587321952.tmp/m3bp-ExampleJob-6cd44631/build/CMakeFiles/CMakeTmp 00:32:06 WARN cmake.exe: 00:32:06 WARN cmake.exe: 00:32:06 WARN cmake.exe: 00:32:06 WARN cmake.exe: Run Build Command:"D:/cygwin64/bin/make.exe" "cmTC_8aee1/fast" 00:32:06 WARN cmake.exe: 00:32:06 WARN cmake.exe: /usr/bin/make -f CMakeFiles/cmTC_8aee1.dir/build.make 00:32:06 WARN cmake.exe: CMakeFiles/cmTC_8aee1.dir/build 00:32:06 WARN cmake.exe: 00:32:06 WARN cmake.exe: make[1]: ▒?ィレクトリ 00:32:06 WARN cmake.exe: '/tmp/asakusa5298078949587321952.tmp/m3bp-ExampleJob-6cd44631/build/CMakeFiles/CMakeTmp' 00:32:06 WARN cmake.exe: に入りま▒? 00:32:06 WARN cmake.exe: 00:32:06 WARN cmake.exe: Building C object CMakeFiles/cmTC_8aee1.dir/testCCompiler.c.obj 00:32:06 WARN cmake.exe: 00:32:06 WARN cmake.exe: 00:32:06 WARN cmake.exe: D:/cygwin64/bin/x86_64-pc-linux-gnu-gcc.exe -o 00:32:06 WARN cmake.exe: CMakeFiles/cmTC_8aee1.dir/testCCompiler.c.obj -c 00:32:06 WARN cmake.exe: D:/cygwin64/tmp/asakusa5298078949587321952.tmp/m3bp-ExampleJob-6cd44631/build/CMakeFiles/CMakeTmp/testCCompiler.c 00:32:06 WARN cmake.exe: 00:32:06 WARN cmake.exe: 00:32:06 WARN cmake.exe: Linking C executable cmTC_8aee1.exe 00:32:06 WARN cmake.exe: 00:32:06 WARN cmake.exe: 00:32:06 WARN cmake.exe: "C:/Program Files (x86)/CMake/bin/cmake.exe" -E remove -f 00:32:06 WARN cmake.exe: CMakeFiles/cmTC_8aee1.dir/objects.a 00:32:06 WARN cmake.exe: 00:32:06 WARN cmake.exe: D:/cygwin64/bin/ar.exe cr CMakeFiles/cmTC_8aee1.dir/objects.a 00:32:06 WARN cmake.exe: @CMakeFiles/cmTC_8aee1.dir/objects1.rsp 00:32:06 WARN cmake.exe: 00:32:06 WARN cmake.exe: D:/cygwin64/bin/x86_64-pc-linux-gnu-gcc.exe -Wl,--whole-archive 00:32:06 WARN cmake.exe: CMakeFiles/cmTC_8aee1.dir/objects.a -Wl,--no-whole-archive -o 00:32:06 WARN cmake.exe: cmTC_8aee1.exe -Wl,--out-implib,libcmTC_8aee1.dll.a 00:32:06 WARN cmake.exe: -Wl,--major-image-version,0,--minor-image-version,0 00:32:06 WARN cmake.exe: 00:32:06 WARN cmake.exe: 00:32:06 WARN cmake.exe: /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/../../../../x86_64-pc-linux-gnu/bin/ld: 00:32:06 WARN cmake.exe: 認識できな▒?オプション '--out-implib' で▒? 00:32:06 WARN cmake.exe: 00:32:06 WARN cmake.exe: 00:32:06 WARN cmake.exe: /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/../../../../x86_64-pc-linux-gnu/bin/ld: 00:32:06 WARN cmake.exe: 使用法に関する▒?報につ▒?ては --help 00:32:06 WARN cmake.exe: オプションを使用してください 00:32:06 WARN cmake.exe: 00:32:06 WARN cmake.exe: collect2: エラー: ld はス▒?ータス 1 で終▒?しました 00:32:06 WARN cmake.exe: 00:32:06 WARN cmake.exe: CMakeFiles/cmTC_8aee1.dir/build.make:97: ターゲ▒?▒? 'cmTC_8aee1.exe' 00:32:06 WARN cmake.exe: のレシピで失敗しました 00:32:06 WARN cmake.exe: 00:32:06 WARN cmake.exe: make[1]: *** [cmTC_8aee1.exe] エラー 1 00:32:06 WARN cmake.exe: 00:32:06 WARN cmake.exe: make[1]: ▒?ィレクトリ 00:32:06 WARN cmake.exe: '/tmp/asakusa5298078949587321952.tmp/m3bp-ExampleJob-6cd44631/build/CMakeFiles/CMakeTmp' 00:32:06 WARN cmake.exe: から出ま▒? 00:32:06 WARN cmake.exe: 00:32:06 WARN cmake.exe: Makefile:126: ターゲ▒?▒? 'cmTC_8aee1/fast' 00:32:06 WARN cmake.exe: のレシピで失敗しました 00:32:06 WARN cmake.exe: 00:32:06 WARN cmake.exe: make: *** [cmTC_8aee1/fast] エラー 2 00:32:06 WARN cmake.exe: 00:32:06 WARN cmake.exe: 00:32:06 WARN cmake.exe: 00:32:06 WARN cmake.exe: 00:32:06 WARN cmake.exe: 00:32:06 WARN cmake.exe: CMake will not be able to correctly generate this project. 00:32:06 WARN cmake.exe: Call Stack (most recent call first): 00:32:06 WARN cmake.exe: CMakeLists.txt:2 (project) 00:32:06 WARN cmake.exe: 00:32:06 WARN cmake.exe: 00:32:06 ERROR command returns non-zero exit status: C:\Program Files (x86)\CMake\bin\cmake.exe (status=1)
よく分からないが^^;、ターゲットOSにLinuxを指定していないとこのエラーになるようだ。
$ ./gradlew m3bpCompileBatchapps --compiler-properties m3bp.native.cmake=cmake.exe,m3bp.native.make=make.exe,m3bp.native.cmake.CMAKE_C_COMPILER=x86_64-pc-linux-gnu-gcc.exe,m3bp.native.cmake.CMAKE_CXX_COMPILER=x86_64-pc-linux-gnu-g++.exe,m3bp.native.cmake.CMAKE_GENERATOR=Unix\ Makefiles,m3bp.native.cmake.CMAKE_SYSTEM_NAME=Linux