CGAL-5.0.2のインストール記録(windows10,visual studio 2019)


この記事は

私がCGALライブラリを使用できる環境を整えるにあたって苦戦したため、同じ轍を踏まないように行ったことを記録したものである。(そもそも環境構築は全くやったことがなかったので)

環境

  • windows 10 64bit Home(Macではありません。Macの場合、これこれが参考になりそう)
  • Visual Studio 2019 (コンポーネントは「C++によるデスクトップ開発」)
  • Git インストール済み(細かい設定は何もしていません)
  • RAM 8GB
  • intel Core-i5

CGALとは

CGAL is a software project that provides easy access to efficient and reliable geometric algorithms in the form of a C++ library. CGAL is used in various areas needing geometric computation, such as geographic information systems, computer aided design, molecular biology, medical imaging, computer graphics, and robotics.

(適当な訳) CGALは効率が良く、かつロバストな計算幾何アルゴリズムが簡単に扱えるC++ライブラリのソフトウェアプロジェクトである。CGALは地理情報システム、CAD、分子化学、医療用画像処理、コンピュータグラフィックス、そしてロボティクスなど、幾何計算が必要とされる様々な分野で使われている。
(CGAL公式サイトから引用)

計算幾何に興味があったので、使ってみようと思いました(適当)。

最も参考にした資料(URL)

公式サイトのインストール(for windows)説明サイトはこちらです。たくさん方法があって迷います。
Download CGAL for Windows

まず、公式マニュアルを参照しましょう。
Using CGAL on Windows (with Visual C++)

私は英語を読むのに一苦労して、「実は文中にちょろっと書かれていたのに見逃してしまう」ということが多くあって、とても時間が解けました。

次に参考にしたのは、日本語で書かれたサイトです。
2017年09月25日の記事
[CGAL01] CGAL Set up for Visual studio 2017 (Windows 10 64 bit)

2016-09-17の記事
Visual studio 2013 + Qt + CGAL の環境設定

複数あるインストール方法について

vcpkgでダウンロードする方法

vcpkgとは、C++のコマンドラインパッケージマネージャーで、Windows、Linux、および MacOS といった複数環境に対応しています。コマンド入力するだけでライブラリのソースをダウンロード、コンパイルをしてくれます。必要なツール(7zip, cmake, pythonなど)は自動でダウンロードして使ってくれますし、すごい便利です。ただし、欠点として、いちいちコンパイルするので、インストールにとても時間がかかるのと、また容量を非常に消費します。なので、インストール後に一番容量を消費するvcpkg/buildtreesディレクトリを削除して容量を解放するなどの方法をとる人もいるでしょう(一度インストールしたらもうインストールしなおさないと考えたので自分は消しました。消しても問題ないようです1)

CGALのインストーラを用いてインストールする方法

日本語で書かれた資料があるので心強いです2,3
環境変数の設定が必要になりますが、日本語資料2,3にも書かれている上に、公式マニュアル4にも書いてあるので大丈夫かと思われます。

目標

CGAL公式マニュアルに明記されているサンプルプログラムが含まれたCGAL-5.0.2-examplesのTriangulation_2/draw_triangulation_2.cppプログラムを動かすことができること

Vcpkgを用いたインストール方法

Vcpkgのインストール

Cドライブにdevディレクトリを作成して、そこにGitを使ってvcpkgのレポジトリを複製(クローン)します。そして、できたdev/vcpkgディレクトリの中のバッチファイルを動かしてインストールします。

C:\dev> git clone https://github.com/microsoft/vcpkg
C:\dev> cd vcpkg
C:\dev\vcpkg> .\bootstrap-vcpkg.bat

ここで、Warning: The following VS instances are excluded because the English language pack is unavailable.といったエラーが発生し、インストールできなかった場合は、Visual Studio Installerを開いて、英語の言語パックを追加してからインストールしなおしてください(参考資料1参考資料2)。
環境変数PATHにvcpkg.exeのディレクトリを設定しておきます。

PATH += C:\dev\vcpkg

CGALとQtのインストール

64bitの場合

C:\dev\vcpkg> vcpkg install cgal:x64-windows

で、32bitの場合、

C:\dev\vcpkg> vcpkg install cgal:x86-windows

でインストールします。
CGALだけならこれで十分ですが、サンプルプログラムにはCGALのほかにもQtが必要であるため、私は

C:\dev\vcpkg> vcpkg install cgal[qt]:x64-windows

と入力しました(コンパイルに3~4時間かかります)。

インストールが完了したら、ユーザーごとにすべての vcpkg ヘッダーファイルとバイナリを検索するように Visual Studio を構成するため、以下のコマンドを実行します5

C:\dev\vcpkg> vcpkg integrate install

なお、インストールできるライブラリはvcpkg search (検索ワード)で調べられ、インストールしたライブラリはvcpkg listで列挙できます。

vcpkgのライブラリを消さずに無効にしたい場合は、vcpkg integrate removeで無効にできます。アクティベートしたい場合はまたvcpkg integrate installを実行するだけです。

cmakeのインストール

https://cmake.org/download/
上記URLより、cmake-3.17.0-rc3-win64-x64.msiをダウンロードしました。
インストーラ起動後、Install Optionで、「Add Cmake to the system PATH for all users」にチェックをつけてインストールしました。ほぼこちらに準拠。

サンプルプログラムのダウンロード

公式マニュアルの「1.3 Compiling an Example」にあるURLでCGAL-5.0.2-examples.zipをダウンロードし、C:/Users/(ユーザ名)に展開。C:/Users/(ユーザ名)/CGAL-5.0.2というディレクトリができる。

サンプルプログラムのコンパイル

C:/Users/(ユーザ名)/CGAL-5.0.2/examples/Triangulation_2ディレクトリで、buildフォルダを作成し、そのフォルダでcmake-guiを起動

C:/Users/(ユーザ名)/CGAL-5.0.2/examples/Triangulation_2 > mkdir build
C:/Users/(ユーザ名)/CGAL-5.0.2/examples/Triangulation_2 > cd build
C:/Users/(ユーザ名)/CGAL-5.0.2/examples/Triangulation_2/build > cmake-gui ..

下の「Configure」ボタンを押す

上の画面が出てこない場合は、左上の「File」→「Delete Cache」を押してから、「Configure」を押しなおしてください。
公式マニュアルの「1.3.1 Configuring of an Example」に書かれている

The command cmake-gui launches the graphical interface for cmake. When you hit the Configure button, you must:

  • specify the Generator (e.g., Visual Studio 16 2019),
  • specify the Optional Platform (e.g., x64 in case you want to create 64 bit binaries),
  • select Specify toolchain file for cross compilation (the file vcpkg.cmake within the directory where you have installed vcpkg, e.g. C:/dev/vcpkg/scripts/buildsystems/vcpkg.cmake).

とあるように、設定する。

「Next」を押して、toolchain(?何かよくわからない)を設定する。

「Finish」を押す。

いろいろ設定が完了する。
最後に「Configure」の隣の「Generate」ボタンを押して、「Open Project」を押して、Visual Studio 2019を開く。

とりあえずすべてビルドしてみる。「ビルド」を押し、「ソリューションのビルド(B)」を押す。

その後、ソリューションエクスプローラの「Draw_Triangulation_2」を右クリック、出てきたメニューから「デバッグ」→「新しいインスタンスを開始」をクリック。

以下のような画面がでてきたら成功。

インストーラを用いたインストール方法

執筆中
先人たちの記事2,3とやっていることはほとんど同じです。ただ、CGALライブラリ本体のコンパイルについては、公式マニュアルの「Building CGAL libraries (non header-only mode)
」を一番に参考にするべきだと思います。


  1. Build tree files of vcpkg occupies over 10 GiB disk space. #2352 にて、"We have the flag in place to cleanup the buildtress (and it is used by the ci command), but doing that has some disadvantages like preventing F12'ing in the files and having to re-extract/re-patch every time. "と記されている。 

  2. [CGAL01] CGAL Set up for Visual studio 2017 (Windows 10 64 bit) 

  3. Visual studio 2013 + Qt + CGAL の環境設定 

  4. Using CGAL on Windows (with Visual C++) 

  5. vcpkg: Windows、Linux、および MacOS 用の C++ パッケージ マネージャー