なんとなく
QCAD3.4をビルドしてみました。
community editionをビルドしてみます。
何度か
Mingwでやってみましたが、Qtのビルド途中でエラーが出てしまい、あきらめました。
そこでVisual Studio 2010 Expressを使用します。
1.環境の構築
1-1)何はともあれ、Visual C++ 2010 Express。
1-2)続いてPerl。
1-3)作業ディレクトリの作成。
今回、作業ディレクトリとして、Cドライブの直下にsrcディレクトリを作りました。
C:\src
1-4)そしてJOM。
1-5)Qtのソース一式。
1-6)QCADのソース一式。
2.Qtのビルド
コマンドプロンプトからビルドしますが、Visual Studioのコマンドプロンプトを立ち上げないとビルドできません。
スタートメニュー
⇒すべてのプログラム
⇒Microsoft Visual Studio 2010 Express
⇒Visual Studio コマンド プロンプト (2010)
下記のコマンドをすべてコピーし、コマンドプロンプト上で右クリック、「貼り付け」を選べば一気に実行していきます。
使用しないtests、demos、examplesをビルドしても時間がかかるだけなので、configureでは-nomakeでビルドしないように設定してます。
set QTDIR=C:\src\qt-everywhere-opensource-src-4.7.4
cd %QTDIR%
set PATH=%QTDIR%\bin;%PATH%
set QMAKESPEC=win32-msvc2010
configure -opensource -platform win32-msvc2010 -release -nomake tests -nomake demos -nomake examples
y
..\jom_1_0_13\jom.exe -j5
下記のサイトを参考にJOMの-jスイッチを設定しました。
http://gom.skr.jp/tdiary/20090120.html#p02
当方のCPUは4coreなので、jom.exe -j5としました。
ただ、JOMがコケることがありました。
JOMでのビルドは不安定かもしれませんが、猛烈に早いので目を瞑ります。
もう一度JOMを実行したところ、ビルドは終わりました。
QCADのビルドが終わってもコマンドプロンプトは閉じないでください。
3.QCADのビルド
続けて下記のコマンドを実行します。
cd ..\qcad-3.4.6.0
qmake -r
..\jom_1_0_13\jom.exe -j5
Qtのビルドが終わってもコマンドプロンプトは閉じないでください。
4.QCADの実行環境の設定
これは実際には試していないのですが、たぶん下記のコマンドを実行していけばC:\src\qcad-3.4.6.0\releaseに実行環境が構築されると思います。
当方はエクスプローラ上で丸ごとコピーした後、del /F /S /Q *.expなどと、手動でコマンドを実行したので・・・
やっていることはreleaseフォルダに、QCADのexamples、fonts、libraries、patterns、plugins、scripts、tsフォルダを丸ごとコピーしています。
ただし、ビルドする際に生成された中間ファイルなど(.exp、.lib、.ts)はいらないので除外しています。
最後にmsvcp100.dllとmsvcr100.dllをrelaseフォルダにコピーします。
echo .exp >> delfile.txt
echo .lib >> delfile.txt
echo .ts >> delfile.txt
xcopy examples release /EXCLUDE:delfile.txt
xcopy fonts release /EXCLUDE:delfile.txt
xcopy libraries release /EXCLUDE:delfile.txt
xcopy patterns release /EXCLUDE:delfile.txt
xcopy plugins release /EXCLUDE:delfile.txt
xcopy scripts release /EXCLUDE:delfile.txt
xcopy ts release /EXCLUDE:delfile.txt
del delfile.txt
cd release
copy C:\Windows\System32\msvcp100.dll .
copy C:\Windows\System32\msvcr100.dll .
del *.exp
del *.lib
たぶん、このreleaseフォルダごと別のPCにもっていっても動作するはず。