C++ 版をソースからビルドする
====================================

**HARK音響ライブラリ開発チーム向け資料**

ここでは、C++ 版HARK音響ライブラリをソースからビルドする方法について説明する。

前提環境
-------------

以下の環境においてビルド手順等を確認した。

* ubuntu20.04
* AWS instance t2.micro

  * Intel(R) Xeon(R) CPU E5-2676 v3 @ 2.40GHz
  * Memory 1GB
  * HDD 8GB

依存パッケージのインストール
-----------------------------

apt を用いて以下のパッケージをインストールする

.. code-block:: bash

    $ sudo apt-get update
    $ sudo apt-get upgrade -y
    $ sudo apt-get install -y g++ cmake libeigen3-dev libfmt-dev unzip

libtorch を、https://pytorch.org からダウンロードし、インストールする。
なお、下記においては、CPU 版の libtorch を用いている。GPU 版を利用する場合は適宜読み替えて用いること。

.. code-block:: bash

    $ wget 'https://download.pytorch.org/libtorch/lts/1.8/cpu/libtorch-cxx11-abi-shared-with-deps-1.8.2%2Bcpu.zip'
    $ unzip 'libtorch-cxx11-abi-shared-with-deps-1.8.2+cpu.zip'

ソースの展開とビルド
--------------------

以下の操作をコンソール等で実行する

.. code-block:: bash

    $ git clone https://harkdev.backlog.jp/git/LIBHARK/hark-lib.git
    $ cd hark-lib
    $ git checkout feature-harklib-1-0-master
    $ cd hark-lib
    $ mkdir build
    $ cd build
    $ cmake .. -DUSES_LIBTORCH=1 -DCMAKE_PREFIX_PATH=${HOME}/libtorch
    $ make
    $ sudo make install

なお、上記のうち ``${HOME}/libtorch`` は、 :ref:`依存パッケージのインストール` において、libtorch アーカイブを展開して生成されたディレクトリ（名前が ``libtorch`` のもの）の絶対パスに置き換える。

また、実行時には、 ``${HOME}/libtorch/lib`` にあるライブラリ類を参照するため、以下の方法等により、ディレクトリをライブラリ検索パスに登録しておくのが良い。

* ``$ sudo sh -c "echo ${HOME}/libtorch/lib > /etc/ld.so.conf.d/libtorch.conf && ldconfig"``