../

Windows7でのbuild環境構築

CueMol2のバージョンに合った環境を用いる必要がある。 ここでは、

  • CueMol 2.2.3.X (git branch master)
  • Windows7 (VS2013)
  • boost 1_57/CGAL 4.6.1

を用いた32/64bit versionのbuild環境構築方法を説明する。

Directory構成

基本、以下のようなdirectory構成を使用する。CueMol自体のsource codeはPROJ64のほうだけでOK

  • D:
    • proj (32bit環境用)
      • boost (この下さらに32bit用boost_1_57以下にBoostをinstall)
      • xulrunner/xulrunner-39.0-sdk (以下に32bit用xulrunner-sdkを展開)
      • CGAL-4.6.1 (以下に32bit用CGALをinstall)
      • ...
    • proj64 (64bit環境用)
      • cuemol2 (CueMolのsource treeを展開)
      • boost (この下さらに64bit用boost_1_57以下にBoostをinstall)
      • xulrunner/xulrunner-39.0b7-sdk (以下に64bit用xulrunner-sdkを展開)
      • CGAL-4.6.1 (以下に64bit用CGALをinstall)
      • ...

環境変数の定義

Control panelからシステムのプロパティを開き,詳細設定の環境変数から変更する. ユーザーの環境変数に以下を追加する.

  • PROJ_DIR D:\proj (上記のdirectory構成に合わせて変更)
  • PROJ64_DIR D:\proj64 (上記のdirectory構成に合わせて変更)

今のvcxprojファイルでは、デバッグ起動前にPATHが適切なアーキテクチャのbinに通されるようになっているので、PATH変数は設定しなくてもOK

VisualStudio2013などのインストール

ここでは製品版を用いているが,フリー版でもできるかもしれない(ただし試していないが...)

さらに,以下のソフトウェアをインストールする.

  • ActivePerl ページ
  • ActivePython (GeckoSDKのIDL compilerで必要.Python2.7が動けば他のdistributionでも良いが、PATHが通ったところに入れておく必要がある。)
  • Inno Setup ページ
    Inno Setupだけではなく、preprocessorというのも入れる必要がある。全てがセットになったQuickStart Pack(ispack-5.X.XX.exe等)をinstallする。下記の環境変数変更の方法と同様にしてPATHをInnoSetupをインストールしたdirectoryに通しておく必要がある.
  • Windows SDK v7.0というのもinstallしておく必要がある.
  • cygwin (command lineでgit等を使うが,他でinstallするのなら,あるいはgui版を入れるのなら不要かも)
  • ZIP/UNZIP (jarファイルを作成する際に必要。PATHが通っているところに入れておく必要がある)

build toolsのinstall

cuemol1.1のbuildset (32bit用)を、以下からダウンロード

http://prdownloads.sourceforge.net/cuemol/cuemol-buildsetwin-1.1.0.187.zip?download

D:\proj以下に展開すると,

  • D:\proj\bin
  • D:\proj\lib
  • D:\proj\include

にいくつかファイルが展開される.ただし実際必要なのは一部で,他のCueMol1.1用のファイルで不要.

xulrunner

64bit版

xulrunner-39.0b7 SDKをここから取ってくる

proj64\xulrunner以下に展開すると、xulrunner-sdk以下に展開されるので、xulrunner-39.0b7-sdkとrenameする。

32bit版

xulrunner-39.0 SDKをここから取ってくる

proj\xulrunner以下に展開すると、xulrunner-sdk以下に展開されるので、xulrunner-39.0-sdkとrenameする。

ちなみに,32bit版も39.0b7でもよいが、いまのVisual Studioの設定が以上のようになっているので、b7を使用する場合はwinbuild\common.propsを編集する必要がある。

BOOSTのinstall

32bit版

boost_1_57_0をここからmsvc12 32bit版を取ってきて、 D:\proj\boostで展開。

D:\proj\boost\boost_1_57_0 以下にファイルができる. 特にlibraryはlib32-msvc12.0にあることを確認.ここにあるDLLファイルを,D:\proj\binにもコピーしておく. (すべてコピーする必要はないが,選ぶのも面倒なのですべてコピーしている)

64bit版

同様に。ただ、msvc12 64bit版をとってくる点と、D:\proj64\boost以下に展開する点が違う。

CGAL

32bit版

Installer版CGAL-4.6.1.exeをダウンロード、D:\PROJ\CGAL-4.6.1以下にinstall。途中で32bitを選択。環境変数は設定しないでOK。

CMakeをインストールし,GUIを起動(これは64でも32でもOK). where is source codeと,where to build the binariesのところに sourceをinstallしたD:\PROJ\CGAL-4.6.1を指定する.

GUIのdialogが現れる。以下のmacroを定義する。

  • BOOST_ROOT D:\proj\boost\boost_1_57_0
  • BOOST_LIBRARYDIR D:\proj\boost\boost_1_57_0\lib32-msvc-12.0
  • CGAL_DISABLE_GMP true
    (GMP/MPRFを使用しないように指定)
  • (CMAKE_INSTALL_PREFIXは指定しなくてもOK)

一旦Configureを実行→いろいろ出てくる 不要な物(CGAL_ImageIO, CGAL_Qt4, CGAL_Qt3)はbuildしないようにcheckを外す

native compiler用のVS2013 solution fileを生成

GUIを終了させ、出来たslnファイルをVS2013から開き,Debug, Release版をbuildする.

D:\PROJ\CGAL-4.6.1\binに,DLLファイルが出来るので,これをD:\PROJ\BINにもコピーしておく.

64bit版

大体上記同様に32を64に読み替えてインストール&build。

FFTW

上記のcuemol1.1のbuildsetに含まれているものを使用.

GLEW

本家からWin32 binary版をとってきて,D:\proj\glew-1.12.0以下に展開する

glew32.dllをD:\proj\binにコピー

LittleCMS

liblzma

CueMol2のbuild方法

以上でbuild環境は整ったはず。

プロジェクトの設定とビルド

  1. VS.NETでc:\proj\cuemol2\winbuild\cuemol.slnを開く

VisualStudio2013のIDEからの実行

  • Build完了後に、xuldeployプロジェクトのみ再ビルドしたほうが良い。
  • stubプロジェクトを、スタートアッププロジェクトに設定する。
  • stubプロジェクトのプロパティーの、デバッグ項目で、コマンド引数に以下を追加する。
     -greapp <xulrunnerのbinディレクトリ> $(XULDeployDir)

以上で、xulrunnerのbinディレクトリは、xulrunner SDKのものを用いるなら、

 -greapp $(XULRunnerDir)\bin $(XULDeployDir)

を指定すればよい。xulrunnerやmozilla内部もdebugしたい場合は、debug buildのxulrunnerがあるbin directoryを指定する。

★注意

実行してもwindowも何も表示されずに停止してしまう場合がある(実際何度か遭遇して困ったこと有り).その場合は,大概cuemol2.jarが出来ていなくて,main windowのxulがloadできないのが原因.jarが出来ないのは,pathが通ったところにzip.exeがない場合(新規システムでbuildする場合に陥ることが多いケース)で,jarを作るperl scriptがzip.exeを呼び出しているから.zip.exeをpathが通っているところに持って来ればjarが正常に作られるはず.

Version番号を増加

srcディレクトリ下で,

 > perl perl/incr_version.pl version.hpp xul_gui/application.ini

以上を実行.(Linux, Macでも同様)

  • master以外のbranchではやらないこと.(不要にconflictが起こる)

Python3.6の同梱

2017/7/6
Python3.6はVS2015移行でないと正しくbuildできない.とくにconsoleがない状況でPyInitialize()を呼ぶとclashする.ただ,pylifecycle.cの1256行目付近(以下の行の手前から)初期化時にstdioをallocateする部分を無効化すれば今のところ動くので,その部分をコメントアウトしてbuildしている.
 fd = fileno(stdin);

Last-modified: Wed, 26 Jul 2017 11:58:11 JST (143d)