44# LibPLATEAU
55
66- クロスプラットフォーム(iOS, android, windows, ubuntu)
7- - C++, C#, python向けapiの提供
7+ - C++, C# 向けapiの提供
88
99## 開発環境
1010- CMake 3.8以降
1919git clone https://github.com/Synesthesias/libplateau
2020cd libplateau
2121git lfs install
22- ```
23- その後、社内の方は
24- ```
2522git submodule update --init --recursive
26- ```
27- 社外の方は
2823```
29- git -c submodule.3rdparty/fbx_sdk.update=none submodule update --init --recursive
30- ```
31- を実行します。
32- 両者の違いは、社外の方は submodule の ` fbx_sdk ` を無視する設定となっています。
33- これについて下のセクションにある「社外の方へ」をご覧ください。
3424
3525## ビルド
3626ビルドの方法について、全OSで共通の留意点を記したあと、
37- OSごとのビルド方法を記載する 。
27+ OSごとのビルド方法を記載します 。
3828
3929### 共通
40- ** 社外の方へ**
41- 社外の方が libplateau をビルドするには、追加の手順が必要です。
42- 下のセクションにある「社外の方へ」をご覧ください。
43-
44- - C++ の libplateau_c をビルドすると DLL ができる。
45- - その後 C# の LibPLATEAU.NET をビルドすると自動で上述のDLLがコピーされ、C#側で利用可能になる。
46- - C++とC#のビルド設定を合わせる必要がある。(C++でRelease 設定でビルドしたなら C# も Release、Debug なら C# も Debug。これを間違うと古いDLLがコピーされてしまう。)
30+
31+ #### 1. fbx_sdkを用意する
32+ お手数をおかけして申し訳ございませんが、libplateau をビルドするには別途 fbx_sdk が必要です。
33+ fbx_sdk は Autodesk社が公開するSDKです。これは自由に製品に組み込んで良いものの、オープンソースではなく、再配布は禁止となっております。
34+ そのため、libplateau 自体はオープンソースですが、例外的に fbx_sdk のみ別途ご用意頂く形になっております。
35+ ビルドするためには、Autodesk社が配布しているSDKを指定のディレクトリに配置する必要があります。
36+ - [ Autodesk社のWebサイト] ( https://www.autodesk.com/developer-network/platform-technologies/fbx-sdk-2020-3 ) から、各OS向けのFBXSDKをダウンロードしてインストールします。
37+ - インストールして得られるファイルを、次のディレクトリ構成に合うように配置します。
38+ - ` 3rdparty/fbx_sdk/2020.3.1 ` 以下に配置します。
39+ - ` 2020.3.1 ` 以下のディレクトリ構成は、別添のテキストファイル ` file_tree_of_fbxsdk.txt ` を参照してください。
40+
41+ #### 2. C++, C# のビルド手順(各OS共通)
42+ - C++ の libplateau をビルドすると DLL ができます。
43+ - 詳しくは下記の、各OS向けのビルド手順を参照してください。
44+ - その後 C# の LibPLATEAU.NET をビルドすると自動で上述のDLLがコピーされ、C#側で利用可能になります。
45+ - C++とC#のビルド設定を合わせる必要があります。(C++でRelease 設定でビルドしたなら C# も Release、Debug なら C# も Debug。これを間違うと古いDLLがコピーされます。)
4746- ユニットテストの実行時、dllがないという旨のエラーが出る場合、C++ビルド結果の out/build/x64-Debug or x64-Release にある
4847 libplateau が C#のバイナリのディレクトリにコピーされているか確認してください。
4948 コピーコマンドは CSharpPLATEAU.Test.csproj に記載されており、C#のリビルド時に実行されるはずです。
5049 このコマンドが正しく動作するか確認してください。
5150
5251### 3つのOS向けにまとめてビルド
5352- Github Actions で``` Upload Dlls ``` というワークフローを手動実行すると、
54- CIの成果として3つのOS向けにビルドしたライブラリをまとめてダウンロードできる 。
53+ CIの成果として3つのOS向けにビルドしたライブラリをまとめてダウンロードできます 。
5554
5655### Windowsでの手動ビルド
5756#### C++のビルド
58- * Visual Studioのローカルフォルダーを開くからcloneしたリポジトリを開く 。
59- * 一度cmakeこけるので再度cmakeする 。(CMakeLists.txt開いてCtrl+S)
60- * ビルド実行する 。(Ctrl+Shift+B)
61- * ` plateau_test ` を実行することでユニットテストを実行可能
57+ * Visual Studioのローカルフォルダーを開くからcloneしたリポジトリを開きます 。
58+ * 一度cmakeこけるので再度cmakeします 。(CMakeLists.txt開いてCtrl+S)
59+ * ビルド実行します 。(Ctrl+Shift+B)
60+ * ` plateau_test ` を実行することでユニットテストを実行可能です
6261#### C#のビルド
63- * ``` wrappers/csharp/LibPLATEAU.NET.sln ``` を開く 。
62+ * ``` wrappers/csharp/LibPLATEAU.NET.sln ``` を開きます 。
6463* ビルドする。ただしC++側に変更があった場合、
65- 最新のDLLをC#側にコピーするため「ビルド」ではなく「リビルド」を選択する 。
66- * C#ユニットテストも合わせて実行可能 。
64+ 最新のDLLをC#側にコピーするため「ビルド」ではなく「リビルド」を選択します 。
65+ * C#ユニットテストも合わせて実行可能です 。
6766
6867### Linuxでの手動ビルド
69- 利用する Linux は、Unityの対応OSに合わせて Ubuntu 18 とする 。
70- それより新しいバージョンのUbuntuでビルドすると、Ubuntu 18 には存在しないライブラリに依存してしまうのでUnityで実行不能となってしまう 。
68+ 利用する Linux は、Unityの対応OSに合わせて Ubuntu 18 とします 。
69+ それより新しいバージョンのUbuntuでビルドすると、Ubuntu 18 には存在しないライブラリに依存してしまうのでUnityで実行不能となってしまいます 。
7170#### C++のビルド
72- * Ubuntuに入っているデフォルトの cmake ではバージョンが古い可能性がある 。
73- その場合は新しいcmakeをマシンにインストールする 。
74- * Ubuntu 18 はデフォルトでは git lfs がないので、` sudo apt install git-lfs ` する 。
75- * Ubuntu 18 のデフォルトのコンパイラは g++-7 となっているが 、それでは古いので g++-9 を導入する 。
76- * OpenGL API が必要なので、なければ以下のコマンドでインストールする 。
71+ * Ubuntuに入っているデフォルトの cmake ではバージョンが古い可能性があります 。
72+ その場合は新しいcmakeをマシンにインストールします 。
73+ * Ubuntu 18 はデフォルトでは git lfs がないので、` sudo apt install git-lfs ` します 。
74+ * Ubuntu 18 のデフォルトのコンパイラは g++-7 となっていますが 、それでは古いので g++-9 を導入します 。
75+ * OpenGL API が必要なので、なければ以下のコマンドでインストールします 。
7776```
7877sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev
7978```
80- * glTF-sdk のビルドのために PowerShell が必要なので、[ このWebページ] ( https://learn.microsoft.com/ja-jp/powershell/scripting/install/install-ubuntu?view=powershell-7.3 ) を参考に Ubuntu向け PowerShell をインストールする 。
79+ * glTF-sdk のビルドのために PowerShell が必要なので、[ このWebページ] ( https://learn.microsoft.com/ja-jp/powershell/scripting/install/install-ubuntu?view=powershell-7.3 ) を参考に Ubuntu向け PowerShell をインストールします 。
8180
82- * 以下のコマンドを実行する 。
81+ * 以下のコマンドを実行します 。
8382```
8483cd (プロジェクトのルートディレクトリ)
8584cmake -S . -B ./out/build/x64-Release/ -G "Ninja" -D CMAKE_BUILD_TYPE:STRING="RelWithDebInfo" -D CMAKE_INSTALL_PROGRAM="ninja" -D CMAKE_CXX_FLAGS="-w"
8685cmake --build ./out/build/x64-Release/ --config RelWithDebInfo
8786```
8887#### C#のビルド
89- * マシンに dotnet をインストールする 。
90- * 以下のコマンドを実行する 。
88+ * マシンに dotnet をインストールします 。
89+ * 以下のコマンドを実行します 。
9190```
9291cd (プロジェクトのルートディレクトリ)
9392cd ./wrappers/csharp/LibPLATEAU.NET
9493dotnet build -c Release
9594```
96- * 合わせてユニットテストもする場合は以下を実行する 。
95+ * 合わせてユニットテストもする場合は以下を実行します 。
9796```
9897dotnet test -c Release
9998```
@@ -110,54 +109,40 @@ dotnet test -c Release
110109
111110## サンプル
112111### log_skipped_elements
113- パース出来なかった要素をすべて列挙してくれる 。
114- Visual Studioの実行ターゲットを` log_skipped_elements.exe ` にして実行する 。
112+ パース出来なかった要素をすべて列挙します 。
113+ Visual Studioの実行ターゲットを` log_skipped_elements.exe ` にして実行します 。
115114
116115### export_obj
117- .obj, .mtlをエクスポートしてくれる 。
116+ .obj, .mtlをエクスポートします 。
118117
119118## デプロイ
120119### Unity
121- PlateauUnitySDKへの導入については、そちらのREADMEを参照のこと 。
120+ PlateauUnitySDKへの導入については、そちらのREADMEを参照してください 。
122121
123122## ディレクトリ構成
124123- 3rdparty
125- - 外部ライブラリはすべてここにsubmoduleで追加する。
126- - libcitygml
127- - citygmlパースライブラリ。変更するため本家をフォークしている。
128- - xerces-c
129- - libcitygmlの依存ライブラリ。xmlパースライブラリ
124+ - 外部ライブラリはすべてここにsubmoduleで追加します。(fbx_sdkは例外です。)
125+ - 利用ライブラリについては後述の「ライセンス管理」を参照してください。
130126- data
131- - テスト用のデータを置く。ビルド時に出力先ディレクトリにコピーされる 。
127+ - テスト用のデータを置きます。ビルド時に出力先ディレクトリにコピーされます 。
132128- examples
133- - サンプルを置く 。
129+ - サンプルです 。
134130- include
135- - ヘッダファイル一式を置く 。
131+ - ヘッダファイル一式です 。
136132- src
137- - 内部実装のソースコードを置く 。
133+ - 内部実装のソースコードです 。
138134- test
139- - ユニットテスト
135+ - ユニットテストです。
140136- wrappers
141- - 他言語向けのwrapper実装を置く 。
137+ - 他言語向けのwrapper実装です 。
142138- .github/workflows
143- - Github Actions で自動テストを行うための手順を記載する 。
139+ - Github Actions で自動テストを行うためのファイルです 。
144140
145141## テストデータ
146- テストデータの詳細については ``` data/README.md ``` に記載している 。
142+ テストデータの詳細については ``` data/README.md ``` を参照してください 。
147143
148144## モックサーバー
149- モックサーバーについては [ PLATEAU-API-Mock-v2] ( https://github.com/Synesthesias/PLATEAU-API-Mock-v2 ) を参照。
150-
151- # 社外の方へ
152- お手数をおかけして申し訳ございませんが、社外の方が libplateau をビルドするには追加の手順が必要です。
153- ビルドを試みられたなら、このリポジトリを clone して ` submodule update --init ` したとき、` fbx_sdk ` をクローンできないのに気付いたかもしれません。
154- fbx_sdk は Autodesk社が公開するSDKです。これは自由に製品に組み込んで良いものの、オープンソースではなく、再配布は禁止となっております。
155- そのため、libplateau 自体はオープンソースですが、例外的に fbx_sdk のみプライベートリポジトリとさせて頂いております。
156- ビルドするためには、Autodesk社が配布しているSDKを指定のディレクトリに配置する必要があります。
157- - [ Autodesk社のWebサイト] ( https://www.autodesk.com/developer-network/platform-technologies/fbx-sdk-2020-3 ) から、各OS向けのFBXSDKをダウンロードしてインストールします。
158- - インストールして得られるファイルを、次のディレクトリ構成に合うように配置します。
159- - ` 3rdparty/fbx_sdk/2020.3.1 ` 以下に配置します。
160- - ` 2020.3.1 ` 以下のディレクトリ構成は、別添のテキストファイル ` file_tree_of_fbxsdk.txt ` を参照してください。
145+ モックサーバーについては [ PLATEAU-API-Mock-v2] ( https://github.com/Synesthesias/PLATEAU-API-Mock-v2 ) を参照してください。
161146
162147# 実装上の注意
163148## 文字コード
0 commit comments