============
ライセンスファイルによるプロテクション
============

.. important:: 
    ここでは，CodeMeterを使用しない， **独自のライセンスファイル** を使用したプロテクション方法について説明します。CodeMeterを使用したプロテクション方法については、 :doc:`/handbook/install/license_protection` を参照してください。
    
    Windowsでは再配布可能なライブラリを同封しますので，正しい場所に置いてご使用ください。Linuxでも同様に外部ライブラリが必要ですが，もしインストールされていないようでしたらこの後に示す手順でインストールしてください。
    
    ライセンスファイルは暗号化されています。Linuxでご使用になる際は，バイナリ形式で使用マシンに転送してください。

---------------
Windowsでの利用方法
---------------
Windowsでは、専用のインストーラを使用すれば，EMSolutionの実行モジュールと同じフォルダに同封する外部ライブラリが配置されます。

# EMSolutionの場合
    - ¥EMSolution
        - 標準インストールされる項目
            - EMSI.chm
            - EMSI_64.exe
            - EMSolBatch_x64.exe
            - EMSolution_x64.exe
            - libiomp5md.dll
            - LICENSE_AGREEMENT.txt
            - THIRD-PARTY-NOTICES.txt
            - unins000.dat
            - unins000.exe

# pyemsolの場合
    - ¥Anaconda3¥envs¥(your_env)¥Lib¥site-packages¥pyemsol_(version)
        - 標準インストールされる項目
            - __init__.py
            - core.py
            - emsol.py
            - emsol_(version).pyd
            - ...

.. note:: 
    2025.05 現在，Windowsユーザ様のライセンスファイルプロテクションは、CodeMeterを使用したプロテクションのみを提供しています。

    試用版ライセンスの場合のみ，本ライセンスファイルプロテクションを使用することがあります。

    :ref:`Release 2025.11 <rls2025_11>`

    外部ライブラリは同封しない方法に変更。

---------------
Linuxでの利用方法
---------------

.. important::
    `pyemsol` のLinux版 ではIntel oneAPI ランタイム（``libimf.so`` / ``libsvml.so`` / ``libirng.so`` / ``libintlc.so.5``）が必要となるため，別途 oneAPI の導入が必要です。
    Intel oneAPIをダウンロードしてインストールしてください。
    
    以下のコマンドを実行することで，emsol_(version) の実行モジュールや `pyemsol.so` で使用しているライブラリを確認できます。

    .. code-block:: console
        :caption: Linuxでのライブラリ確認コマンド

        # EMSolutionの場合
        ldd /usr/local/bin/emsol_(version) 

        # pyemsolの場合
        ldd (your_python_env)¥Lib¥site-packages¥pyemsol_(version)/pyemsol.so

    もし，上記ライセンスファイルで使用する外部ライブラリ以外が見つからないようでしたら， :doc:`/handbook/install/Linux` を参照して，必要なライブラリをインストールしてください。


---------------
ライセンスファイルの配置
---------------

ライセンスファイルは，以下の方法で配置してください。上から順に優先度が高くなります。

1. 環境変数に `EMSOL_LICENSE_FILE` を設定し，ライセンスファイルのパスを指定します。ライセンスファイル名まで含めます。

    - Windows 例: `set EMSOL_LICENSE_FILE=C:\\path\\to\\EMS_license.dat`
    - Linux 例: `export EMSOL_LICENSE_FILE=/path/to/EMS_license.dat`

2. 実行モジュールと同じフォルダに `EMS_license.dat` という名前で配置します。ファイル名は固定になります。

3. デフォルトのフォルダにライセンスファイルを `EMS_license.dat` という名前で配置します。

    - Windows: `C:\\ProgramData\\SSIL\\EMSolution\\`
    - Linux: `/usr/local/emsol/`

環境変数で設定する場合のみ，任意のファイル名にすることができます。そのため，PCクラスタや複数のマシンで異なるライセンスファイルを使用する場合は、ライセンスごとに配布されたライセンスファイルを使用ユーザ毎に環境変数を設定しておくことをお勧めします。

もしくは，実行モジュールを複製し別々のフォルダに配置し，それぞれのフォルダにライセンスごとに配布されたライセンスファイルを配置する方法もあります。

正しく設定できた確認するには， :doc:`/handbook/install/Linux` の「3. テスト」を実行してください。もしライセンスファイルが正しく配置されていれば、EMSolutionのバージョン情報が表示されます。